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.2TPM 2.0
主要哈希算法SHA-1SHA-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 背书密钥 厂商注入 · 设备身份根 不可迁移 SRK 存储根密钥 保护下层密钥 Storage Hierarchy 根 AK 证明密钥 对 PCR 签名 生成 Quote 证据 PCR 平台配置寄存器 PCR0 固件 · PCR1 配置 PCR4 引导 · PCR7 策略 只能 Extend,不可改写 NV 索引 EK 证书 / AK 证书 设备标志 · 策略数据 支持策略读写 远程验证方 校验 EK 证书 验证 AK 签名 比对 PCR 基准值 判定设备可信 保护 派生 签名 Quote 证书 信任链:EK 证明设备身份 → AK 签名 PCR → PCR 反映平台状态 → NV 保存证书与策略 → 验证方逐级校验

五、典型应用场景

TPM 在工程中的落地场景非常集中,主要包括:

  1. 设备身份与零信任接入:以 EK 和 AK 证书作为设备唯一身份,替代易被复制的软件证书。
  2. 远程证明:服务器或网关向验证方提交 Quote,证明启动链未被篡改。
  3. 磁盘加密:BitLocker 等使用 TPM 绑定密钥,实现“只有可信启动状态才能解锁”。
  4. 密钥封装与条件释放:通过 Policy 将密钥释放条件绑定到 PCR 或 NV 状态。
  5. 云与虚拟化可信:vTPM 为虚拟机提供独立身份,支撑云上可信计算。

六、常见误区与复盘

误区一:把 TPM 当成“加密芯片”。TPM 不负责批量数据加密,它提供的是密钥保护和状态证明,数据加密通常由 CPU 或软件完成。

误区二:认为 EK 可以直接用于签名。EK 通常只用于解密和身份证明,远程证明应使用 AK,避免隐私泄露和密钥滥用。

误区三:忽略 PCR 的扩展特性。PCR 不能直接写入,只能 Extend,因此基准值必须来自可信的参考清单,否则比对无意义。