Trusted Platform Module (TPM) версии 1.2 против 2.0 и количество выводов в заголовке

Я пытаюсь понять заголовок TPM на моей материнской плате, которая является Asrock "H170m Pro4" TPMS1 заголовок на материнской плате, и он имеет 9x2 контактов с 1 отсутствует.

При поиске в Интернете я вижу 14-1-контактный модуль TPM, другие ссылки на 20-контактные. в чем дело?

Вот ссылка на сайт производителя для конкретного mobo, для которого я пытаюсь получить чип TPM. Вы можете скачать руководство здесь: https://www.asrock.com/mb/Intel/H170M%20Pro4/

в H170M Pro4.pdf на страницах 6 и 7 показано TPMS1 расположение заголовка и на странице 22 он сообщает 17-контактный TPMS1 и что делает каждый контакт

  1. PCICLK нижний ряд слева больше всего
  2. Рамка нижнего ряда направо
  3. PCIRST #
  4. LAD3
  5. + 3v
  6. LAD0
  7. нет булавки
  8. + 3VSB
  9. GND нижний ряд справа самый
  10. GND верхний ряд слева больше всего
  11. SMB_CLK_MAIN
  12. SMB_DATA_MAIN
  13. LAD2
  14. LAD1
  15. GND
  16. S_WRDWN # это выше пустого контакта # 7
  17. SERIRQ
  18. GND верхний ряд справа наиболее

меня беспокоит и беспокоит использование TPMS1 и вот на их сайте https://www.asrock.com/mb/spec/card.asp?Model=TPM-S%20Module ссылкой на эти 3 вещи:

  • Модуль TPM-S (V 1.2)
  • Модуль TPM-s (V 2.0)
  • Модуль TPM2-S (V 2.0)

Кто-нибудь может понять это?

2 ответа

TL;DR: Это куча мусора, и на нее нет хорошего ответа.

Поскольку хорошего ответа нет , я хотя бы рассмотрю некоторые нюансы вопроса: в чем дело ?

Приношу извинения, так как это не ответ на вопрос (я полагаю), который вы задумали (т. е. на основе обещаний TPM... то есть покупка устройства, которое я хочу, от производителя, которого я предпочитаю, исходя из его позиции безопасности и реализованных функций. какова распиновка материнской платы, чтобы я мог подключить к плате нужный TPM).

Увы, я могу ответить на этот вопрос, но (как уже упоминалось) это гораздо больше поможет охватить мета-проблему: «В чем дело?»


История доверенного платформенного модуля

Чтобы донести до будущих читателей, о чем вообще этот пост, давайте рассмотрим основы:

Прежде всего, Trusted Platform Module (также известный как TPM) — это реализация спецификации, созданной и поддерживаемой Trusted Computing Group.

Цель TPM — действовать как вторичное вычислительное устройство для выполнения определенных операций полностью независимо от основного процессора. Связь между основным процессором и TPM обычно осуществляется через интерфейс с малым числом контактов (LPC) или (в последнее время) последовательный периферийный интерфейс ¹ (SPI).

Существует две основные версии спецификации: 1.2 и 2.0. Спецификация 2.0 была (более или менее переписанной с нуля²).

В спецификации 2.0 есть четыре определенные области:

  1. Архитектура:

Часть 1 TPM2.0 содержит подробное описание свойств, функций и методов TPM. Если не указано иное, данное повествовательное описание является информативным. Часть 1 TPM2.0 содержит описания некоторых процедур манипулирования данными, которые используются в этой спецификации. Нормативное поведение этих подпрограмм записано в коде C в TPM2.0, часть 3 и TPM2.0, часть 4. Алгоритмы и процессы, описанные в этом TPM2.0, часть 1, можно сделать нормативными посредством ссылки из TPM2.0, часть 2, TPM2.0, часть 3 или TPM. 2.0 Часть 4.2. Конструкции -

Часть 2 TPM2.0 содержит нормативное описание констант, типов данных, структур и объединений для интерфейса TPM. Если не указано иное: (1) все таблицы и код C в TPM2.0, часть 2, являются нормативными, и (2) нормативное содержание в TPM2.0, часть 2 имеет приоритет над любой другой частью данной спецификации.

  1. Команды -

Часть 3TPM2.0 содержит: (1) нормативное описание команд, (2) таблицы, описывающие форматы команд и ответов, и (3) код C, иллюстрирующий действия, выполняемые TPM. В TPM2.0, часть 3, таблицы команд и ответов имеют наивысший приоритет, за ними следует код C, за которым следует описательное описание команды. TPM2.0, часть 3, подчиняется TPM2.0, часть 2. TPM не обязательно реализовывать с использованием кода C в TPM2.0, часть 3. Однако любая реализация должна обеспечивать эквивалентные или, в большинстве случаев, идентичные результаты, наблюдаемые на интерфейсе TPM или продемонстрировано посредством оценки. 4. Поддерживающие процедуры –

В TPM2.0, часть 4, представлен код C, который описывает алгоритмы и методы, используемые командным кодом в TPM2.0, часть 3. Код в TPM2.0, часть 4, дополняет части 2 и 3, предоставляя полное описание TPM, включая вспомогательную структуру для код, выполняющий действия команды. Любой код TPM2.0, часть 4, может быть заменен кодом, который обеспечивает аналогичные результаты при взаимодействии с кодом действия в TPM2.0, часть 3. Поведение кода TPM2.0, часть 4, не включенного в приложение, является нормативным, как это наблюдается на интерфейсах с TPM. 2.0 Код части 3. Код в приложении предоставлен для полноты, то есть для обеспечения полной реализации спецификации.

Мысленно я предпочитаю сопоставлять их с четырьмя основными аспектами функционирования TPM³:

Программное обеспечение, работающее на основном процессоре, которое будет использовать TPM (например, Bitlocker, OpenSwan и т. д.).

Платформа , которая желает использовать функциональные возможности, реализованные TPM ( обычно это интеллектуальная собственность , разработанная или лицензированная производителем). Часто это скорее интерфейс между основным процессором и самим TPM.

Интегральная схема , обеспечивающая встроенную систему, которая реализует необходимое аппаратное обеспечение для соответствия архитектуре TPM2.0, часть 1 (например, линейка систем на кристалле Optiga от Infineon или аналогичные устройства отST или Nuvoton.

Наконец-то прошивка работает на интегральной схеме. По состоянию на 2020 год это обычно «TSS» (стек программного обеспечения TPM2). Это может быть свободный/открытый исходный код (как в случае с эталонной реализацией TrouSerS , а также TPM2-TSS иTSS.MSR от Microsoft ) или проприетарные реализации.

Так в чем же дело?

::вздох:: В лучшем случае у нас останутся псевдостандарты. В устройствах TPM 1.2 многие поставщики реализовали 20-контактный (19 контактов с 1 шпонкой) или 14-контактный разъем (13 контактов с 1 шпонкой). Выбор того, как это реализовать, был оставлен на усмотрение поставщика «платформы» (например, MSI, Asus, SuperMicro и т. д.) и разработчика оборудования TPM (см. список выше).

Этот уровень выбора был сохранен при внедрении TPM2.0 с добавлением того, что по мере того, как безопасность платформ становится все более важной и появляется больше технологов с опытом (и мнениями) о том, как следует использовать TPM, растет количество вариантов . .

Давайте посмотрим на документ « TPM2.0: Краткое введение », опубликованный Trusted Computing Group. В этом документе автор призывает:

Таким образом, TPM может быть полностью интегрированным и необслуживаемым на месте, доступным через сменный контактный разъем или через 100% программное обеспечение.

Что касается распиновки 14-контактного варианта, мне удалось найти несколько изображений с общими распиновками (поэтому я называю это псевдостандартом), например:

и

Конечно, опять же... причина, по которой я вообще здесь, - это попытка выяснить распиновку AOM-TPM-9670 от SuperMicro, которая основана на Infineon 9670... с 10-контактным разъемом.

Я ломал голову над реализацией 10-контактного разъема , пока не увидел это на странице 288 первой части спецификации реализации TPM2.0:

TPM может иметь один или несколько контактов ввода-вывода, которые вводят или выводят логическое состояние. TPM2_NV_Read и TPM2_NV_Write могут использоваться для доступа к значению GPIO с использованием обычных средств управления доступом. Спецификация для конкретной платформы определяет сопоставление индексов NV с отдельными вводами-выводами общего назначения (GPIO). Резервирует ли TPM какое-либо хранилище NV для указанного GPIO, зависит от платформы.

Это... насколько я понимаю, различное количество контактов (и в некоторых редких случаях расположение контактов) является функцией этого «выбора», предоставляемого разработчику платформы, позволяющего использовать такие вещи, как вторичные доказательства несанкционированного доступа или внеполосное взаимодействие с другими аппаратные устройства.

Примечания/Цитаты

¹: вариант SPI («расширенный последовательный периферийный интерфейс» или «eSPI») был разработан Intel как преемник LPC.

²: Из « Практического руководства по TPM2.0 » (Глава 1: История TPM):

Говорят, что лучшие проекты получаются, когда архитекторы создают проект, а затем, узнав все проблемы, с которыми они могут столкнуться, выбрасывают первый проект и начинают заново со второго. TPM2.0 дал архитекторам возможность сделать это. Однако им все равно нужно было убедиться, что возможности разработки программного обеспечения, которые открывались в TPM 1.2, не были потеряны с новой архитектурой.

Артур В., Челленер Д., Голдман К. (2015) История TPM. В: Практическое руководство по TPM2.0. Апресс, Беркли, Калифорния. https://doi.org/10.1007/978-1-4302-6584-9_1

³: Этот пример не работает в случае «виртуальных» TPM, подобных тем, которые реализованы QEMU, а также на некоторых мобильных телефонах и других встроенных устройствах. Для получения дополнительной информации о виртуальных TPM ознакомьтесь с документом 15-го симпозиума USENIX по безопасности: vTPM: Virtualizing the Trusted Platform Module .

Если ввести в поиск «модуль tpm», на AliExpress можно найти множество товаров. Обычно они имеют множество вариаций для разных поставщиков в зависимости от количества контактов. У них там есть 18-контактные TPM 2.0.

Другие вопросы по тегам