2. TPM基础概念
TPM(Trusted Platform Module,可信平台模块)是一枚独立的安全微控制器,也可以是以固件形式实现的等效功能模块。它的核心职责不是“杀毒”或“加密整块硬盘”,而是为平台提供可信根:以硬件保护的密钥、度量和报告能力,回答两个关键问题——“这台设备现在处于什么状态”以及“它能否证明自己就是它声称的那台设备”。在远程证明工程中,TPM 是设备身份与状态证据的源头。
一、TPM的定义与核心能力
从工程视角看,TPM 提供四类基础能力:
- 受保护的密钥存储与运算:私钥在 TPM 内部生成、永不外泄,签名和解密在芯片内完成。
- 平台状态度量:通过 PCR(Platform Configuration Register)记录启动链各阶段的哈希值。
- 可信报告:用 AK(Attestation Key)对 PCR 值签名,形成可验证的证明证据。
- 安全存储:NV 索引(Non-Volatile Index)用于保存证书、标志位和策略数据。
这些能力共同构成“设备身份 + 平台状态 + 可验证证据”的三角关系,也是远程证明协议能够成立的前提。
二、发展历史:从 TPM 1.2 到 TPM 2.0
TPM 1.2 由 TCG(Trusted Computing Group)在 2003 年前后标准化,主要面向 PC 平台,使用 SHA-1 和 RSA,算法固定、扩展性有限。随着 SHA-1 被证明不再安全,以及云计算、服务器、嵌入式场景对算法敏捷性的需求上升,TCG 在 2014 年正式发布 TPM 2.0 规范。TPM 2.0 不再绑定单一算法,而是引入算法敏捷(Algorithm Agility)设计,支持 SHA-256、SHA-384、ECC、AES 等多种算法,并允许通过库(Library)和层次(Hierarchy)灵活组织密钥。
TPM 2.0 的另一大变化是授权模型:从 1.2 的“物理存在 + 授权数据”演进为基于策略(Policy)的授权,支持口令、PCR 状态、NV 索引、时间等复合条件。这使得远程证明和条件释放密钥成为可能。
三、TPM 1.2 与 TPM 2.0 差异对比
| 对比维度 | TPM 1.2 | TPM 2.0 |
|---|---|---|
| 主要哈希算法 | SHA-1 | SHA-256/384,可扩展 |
| 密钥算法 | RSA 为主 | RSA、ECC、AES、HMAC |
| 密钥层次 | SRK 单一根 | Endorsement/Platform/Storage/Null 多层次 |
| 授权方式 | 口令 + 物理存在 | Policy 策略(PCR、NV、时间等) |
| NV 存储 | 有限,结构固定 | 灵活索引,支持策略读写 |
| 典型应用 | BitLocker、早期可信启动 | 远程证明、云可信、设备身份 |
四、核心术语与关系
理解 TPM 的关键在于理清几个核心对象之间的层次与用途:
- EK(Endorsement Key,背书密钥):由厂商在制造时注入,是设备身份的根,通常不可迁移,用于证明“这是一颗真实的 TPM”。
- SRK(Storage Root Key,存储根密钥):存储层次的根,用于保护下层密钥,TPM 1.2 中尤为重要;TPM 2.0 中由 Storage Hierarchy 的种子派生。
- AK(Attestation Key,证明密钥):专门用于对 PCR 值签名,是远程证明中“状态证据”的签名者。
- PCR(Platform Configuration Register,平台配置寄存器):记录启动链度量值,只能扩展(Extend)不能直接改写。
- NV 索引(Non-Volatile Index):非易失存储区,用于保存 EK 证书、AK 证书、设备标志等。
关系链:EK 证明设备身份 → AK 由 EK 或 SRK 保护并签名 PCR → PCR 反映平台状态 → NV 索引保存证书与策略。远程证明验证方正是沿着这条链逐级校验。
五、典型应用场景
TPM 在工程中的落地场景非常集中,主要包括:
- 设备身份与零信任接入:以 EK 和 AK 证书作为设备唯一身份,替代易被复制的软件证书。
- 远程证明:服务器或网关向验证方提交 Quote,证明启动链未被篡改。
- 磁盘加密:BitLocker 等使用 TPM 绑定密钥,实现“只有可信启动状态才能解锁”。
- 密钥封装与条件释放:通过 Policy 将密钥释放条件绑定到 PCR 或 NV 状态。
- 云与虚拟化可信:vTPM 为虚拟机提供独立身份,支撑云上可信计算。
六、常见误区与复盘
误区一:把 TPM 当成“加密芯片”。TPM 不负责批量数据加密,它提供的是密钥保护和状态证明,数据加密通常由 CPU 或软件完成。
误区二:认为 EK 可以直接用于签名。EK 通常只用于解密和身份证明,远程证明应使用 AK,避免隐私泄露和密钥滥用。
误区三:忽略 PCR 的扩展特性。PCR 不能直接写入,只能 Extend,因此基准值必须来自可信的参考清单,否则比对无意义。