2. TPM基础概念
TPM(Trusted Platform Module,可信平台模块)是一枚独立的安全微控制器,通常以焊接在主板上的芯片形式存在,也可能以固件(fTPM)或虚拟化(vTPM)形式实现。它的核心使命不是"杀毒"或"防火墙",而是为平台提供可信根:通过硬件级密钥生成、安全存储、平台状态度量与密码学运算,让上层系统能够回答两个关键问题——"这台机器的身份是否可信"以及"这台机器当前运行状态是否可信"。
理解 TPM 的关键在于:它是一枚被动的安全协处理器。TPM 不会主动阻止任何操作,它只负责在受控边界内执行命令并返回结果。真正的安全策略由操作系统、引导固件和应用软件调用 TPM 来实现。因此,TPM 是"可信计算"的基石,而非完整的安全解决方案。
一、发展历史:从 TCG 到 TPM 2.0
TPM 的标准化历程由可信计算组织(TCG,Trusted Computing Group)主导。2003 年 TPM 1.1 规范发布,2005 年 TPM 1.2 成为主流并大规模商用,广泛用于 BitLocker、可信引导等场景。2014 年 TPM 2.0 规范正式发布,2016 年后成为新设备的默认选择。TPM 2.0 并非简单版本升级,而是一次架构重构:它引入了算法敏捷性、更灵活的授权模型和更丰富的密钥层级,同时向下兼容部分 1.2 的使用模式。
二、TPM 1.2 与 TPM 2.0 的核心差异
两者最本质的区别在于算法绑定方式与授权模型。TPM 1.2 强制使用 SHA-1 和 RSA,算法被写死在规范中;TPM 2.0 则支持 SHA-1/SHA-256/SM3 等多种哈希、RSA/ECC/SM2 等多种非对称算法,并允许厂商按需裁剪。授权方面,1.2 使用 20 字节的 AuthData 和复杂的授权会话;2.0 改用 HMAC 或策略会话(Policy Session),支持基于 PCR 状态、时间、命令参数等条件的灵活授权。
| 对比维度 | TPM 1.2 | TPM 2.0 |
|---|---|---|
| 哈希算法 | 仅 SHA-1 | SHA-1 / SHA-256 / SM3 等 |
| 非对称算法 | 仅 RSA | RSA / ECC / SM2 |
| 授权模型 | AuthData + OIAP/OSAP | HMAC / Policy 会话 |
| 密钥层级 | SRK 单一根 | Owner / Platform / Endorsement 多层级 |
| NV 存储 | 有限,结构固定 | 灵活索引,支持多种属性 |
| 典型应用 | BitLocker、可信引导 | Windows 11、TPM 密钥、远程证明 |
三、核心术语与结构
要读懂 TPM 的命令与日志,必须先掌握以下术语:
- PCR(Platform Configuration Register):平台配置寄存器,用于记录引导链各阶段的度量值。PCR 采用扩展(Extend)操作,即新值 = Hash(旧值 || 新度量),不可逆,因此能反映平台状态的累积变化。
- EK(Endorsement Key):背书密钥,由厂商在制造时注入,是 TPM 的"身份证",用于证明 TPM 的真实性。
- SRK(Storage Root Key):存储根密钥,位于密钥层级顶端,用于保护下层密钥。
- AIK / AK(Attestation Identity Key):证明身份密钥,用于对 PCR 值签名,实现远程证明。
- Hierarchy(层级):TPM 2.0 的密钥树根,包括 Owner、Platform、Endorsement、Null 四个层级,各自有独立的授权和种子。
- Sealed Data(密封数据):将密钥或机密绑定到特定 PCR 状态,只有平台状态匹配时才能解封。
关键理解:PCR 不是"存储"度量值,而是"累积"度量值。任何一次引导阶段的改变都会导致 PCR 值变化,从而让密封数据无法解封——这正是可信引导与 BitLocker 防篡改的底层机制。
四、典型应用场景
TPM 在实际工程中主要承担四类任务:
- 可信引导与度量:从 CRTM 开始,逐级度量 BIOS、Bootloader、内核,将结果扩展进 PCR,形成可验证的引导链。
- 密钥保护与密封:将磁盘加密密钥、证书私钥密封到 PCR 状态,防止离线窃取。
- 远程证明:通过 AK 对 PCR 签名,向远程服务器证明平台完整性,常用于零信任接入。
- 平台身份与设备认证:利用 EK 和 AK 实现设备唯一身份,用于设备注册、许可证绑定等。
五、常见误区与复盘
误区一:TPM 能防止所有攻击。TPM 只保护密钥和度量值,无法阻止内存抓取、侧信道或物理拆解后的总线嗅探。它提升的是攻击成本,而非绝对安全。
误区二:TPM 1.2 和 2.0 可以混用同一套密钥。两者密钥格式和授权模型不同,迁移需要重新封装,不能直接复制。
误区三:PCR 值固定不变。固件更新、驱动加载、引导配置修改都会改变 PCR,必须同步更新密封策略,否则会导致解封失败。
下面用一张结构图梳理 TPM 2.0 的层级、密钥与 PCR 之间的关系,帮助建立整体认知: