Поведение 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).Все остальные ключи хранятся снаружи в зашифрованном виде.