TPM (Trusted Platform Module) — аппаратный криптографический сопроцессор, изолированный от основного CPU. Версия 2.0 (ISO/IEC 11889:2015) принесла поддержку расширяемых алгоритмов и иерархическую модель авторизации.
Архитектура TPM 2.0
TPM 2.0 содержит несколько ключевых компонентов: криптографический движок, энергонезависимую память (NV Storage), защищённые иерархии ключей и PCR-регистры для измерений платформы.
Storage Hierarchy — для постоянных ключей и данных, защищённых паролем владельца
NULL Hierarchy — эфемерные ключи без постоянного хранения
PCR регистры и измерения
Platform Configuration Registers (PCR) — 24 32-байтных регистра, доступных только для расширения (extend). Каждое расширение: PCR_new = SHA256(PCR_old || новые_данные). Это позволяет строить цепочку измерений, которую невозможно подделать без физического доступа к TPM.
// Для ИИ-систем
При запуске ИИ-модели в доверенной среде: хэш весов модели записывается в PCR[7], конфигурация среды — в PCR[4]. Attestation Quote содержит подпись всех PCR, позволяя удалённо верифицировать что именно эта модель запущена в этом конкретном окружении.
Команды TPM 2.0 для разработчика
TPM2_CreatePrimary — создаёт корневой ключ в иерархии
TPM2_Create — создаёт дочерний ключ под родительским
TPM2_Quote — формирует подписанный отчёт о состоянии PCR
TPM2_PCR_Extend — расширяет PCR-регистр новым измерением
TPM2_Seal / TPM2_Unseal — привязывает данные к конкретному состоянию PCR
1. Сколько PCR-регистров содержит стандартный TPM 2.0?
8 регистров
16 регистров
24 регистра
32 регистра
2. Какая иерархия TPM 2.0 используется для подтверждения подлинности чипа производителем?
Storage Hierarchy
Endorsement Hierarchy
Platform Hierarchy
NULL Hierarchy
3. Каков правильный порядок вычисления при расширении PCR?
PCR_new = SHA256(новые_данные)
PCR_new = SHA256(новые_данные || PCR_old)
PCR_new = SHA256(PCR_old || новые_данные)
PCR_new = PCR_old XOR SHA256(новые_данные)
// Документация
TPM 2.0 Specification Part 1-4 — Trusted Computing Group
ISO/IEC 11889:2015 — официальный стандарт TPM 2.0
TSS 2.0 Enhanced System API — спецификация API для разработчиков
// Инструменты для лаб. работы
tpm2-tools — набор CLI-утилит для работы с TPM 2.0 tpm2-tss — референсная реализация TSS 2.0 на C ibmswtpm2 — программный симулятор TPM 2.0 от IBM swtpm — TPM-эмулятор для QEMU/libvirt
// Рекомендованное чтение
"A Practical Guide to TPM 2.0" — Will Arthur, David Challener
"Trusted Computing Platforms" — Siani Pearson
NIST SP 800-155 — BIOS Integrity Measurement Guidelines