Можно ли запрограммировать модуль доверенной платформы Intel - PullRequest
6 голосов
/ 07 декабря 2011

Мне интересно, возможно ли запрограммировать TPM (http://en.wikipedia.org/wiki/Trusted_Platform_Module), присутствующий в большинстве микросхем Intel, таким образом:

- decide what to store in the persistent memory
- decide which cryptographic algorithms to implement.

Очевидно, что его не следует перепрограммировать после того, каконо начинает работать (вы знаете, правильно ли это утверждение?).

Ответы [ 3 ]

5 голосов
/ 07 декабря 2011

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

Однако Intel TPM могут отличаться.Некоторые чипсеты включают в себя эмулированный / программный TPM вместо реального аппаратного TPM.Эти TPM могут быть обновлены с помощью обновления BIOS.Но и в этом случае обновление должно быть предоставлено Intel.Последние платы, такие как DQ67SW, имеют автономные аппаратные TPM, не производимые Intel.

Итак, ответ на ваш второй вопрос: Нет, вы не можете программировать / определять криптографические алгоритмы , которые использует TPM.


Относительно вашего первого вопроса: Да, вы можете определить, что хранить в постоянном хранилище в некоторой степени.Эта область памяти называется Энергонезависимое хранилище или NV .Сначала вы должны определить пространство, используя команду TPM_NV_DefineSpace .После этого вы можете читать и писать из / в местоположение, используя TPM_NV_ReadValue и TPM_NV_WriteValue .Определение резервирует определенный объем памяти в NV, а также устанавливает атрибуты безопасности этого расположения.Эти команды являются низкоуровневыми командами TPM, поэтому для взаимодействия с TPM настоятельно рекомендуется использовать Trusted Software Stack (TSS) .Вы можете использовать jTSS с jTpmTools или TrouSerS .

Некоторые примечания относительно NV:

  • Естьочень ограниченное пространство в NV, но точная сумма зависит от поставщика (обычно менее 5 КБ).Минимальная сумма для платформы ПК составляет 2048 байт.
  • Модуль TPM является пассивным устройством, он ничего не может сделать без выданной ему команды.Если вы хотите сохранить что-то в TPM, у вас должен быть какой-то активный компонент (BIOS, Software, Chipset, CPU), который выдает эти команды.
  • Даже большинство криптографических ключей не хранятся в TPM.Существует иерархия ключей, и в TPM хранится только корневой ключ (Storage Root Key - SRK).Все остальные ключи хранятся снаружи в зашифрованном виде.
3 голосов
/ 07 декабря 2011

TPM не предназначен для программирования.Имеет фиксированный набор поддерживаемых алгоритмов.Код хранится в ПЗУ (или, если это не так, он хранится в ЭСППЗУ, находящемся в несколько защищенном от взлома пакете, и вы не можете перезаписать его).

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

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

Существует стандартный профиль защиты TPM .Я не знаю, был ли TPM Intel оценен по отношению к нему.На рисунке 1 показана схема жизненного цикла доверенного платформенного модуля, показывающая, когда можно генерировать ключи.

На практике вы, вероятно, будете взаимодействовать с доверенным платформенным модулем через TrouSerS (полностью TPM API с открытым исходным кодом) или ограниченным образом через Bitlocker в Windows.

2 голосов
/ 07 декабря 2011

Да, вы можете использовать микросхему TPM именно для таких операций и многих других.

TrouSerS - это реализация открытого программного обеспечения стека доверенного вычислительного программного обеспечения, необходимая длянадежное использование чипа TPM.

...