2. 安全基础

TPM不是一台“加密黑盒”,而是一组围绕密码学原语构建的可信执行与密钥管理设施。理解TPM的工程价值,必须先理解它依赖的五类基础构件:对称加密用于数据机密性,哈希用于度量与完整性,非对称加密用于密钥交换与身份绑定,数字签名用于不可否认与授权,证书与PKI用于把公钥和真实身份连接起来。TPM的规范、命令参数、密钥属性、PCR度量、Attestation流程,几乎都能映射到这五类构件上。

一、核心原理:从密码原语到TPM对象

密码学基础在TPM中不是抽象数学,而是具体对象和字段。TPM 2.0支持RSA、ECC、AES、SHA-1/SHA-256/SHA-384、HMAC、KDF等算法族。其中,哈希把任意长度数据压缩为固定长度摘要,TPM用PCR寄存器保存平台度量链;非对称密钥分为签名密钥和加密密钥,TPM内部以“密钥对象”形式存储,并受父密钥保护;数字签名把私钥操作与消息摘要绑定,用于Quote、Certify、ActivateCredential等命令;证书与PKI则把TPM内的公钥(如EK、AK)与厂商、平台或组织身份关联,使远程挑战者能够验证“这个密钥确实来自某型号TPM”。

关键映射:PCR = 哈希链;EK = 厂商内置非对称密钥;AK = 隐私CA签发的证明密钥;Quote = 对PCR选择集签名;Certify = 对密钥属性签名;PKI = 把公钥变成可验证身份。

二、哈希与PCR:平台度量的不可逆链条

哈希函数具有单向性、抗碰撞性和雪崩效应。TPM启动时,CRTM先度量BIOS,把摘要写入PCR[0];BIOS度量Option ROM和MBR,扩展PCR[1]至PCR[3];后续Boot Loader、OS Kernel、驱动、应用依次扩展。扩展操作不是覆盖,而是:

PCR_new = Hash(PCR_old || measured_data)

因此PCR值代表一条有序的度量历史,任何一步被篡改都会导致最终PCR值不同。远程挑战者拿到Quote签名后,将PCR值与已知良好基线比对,即可判断平台是否处于可信状态。这里哈希的作用不是保密,而是完整性证据。

三、非对称加密、数字签名与证书链

非对称加密使用公钥加密、私钥解密,或私钥签名、公钥验签。TPM中私钥通常永不离开芯片,签名操作在内部完成。数字签名流程为:对消息做哈希,用私钥对摘要签名,验证者用公钥验签。证书则是由CA签名的结构化数据,包含公钥、主体、有效期、扩展项和CA签名。PKI通过根CA、中间CA、终端实体证书形成信任链。TPM的EK证书通常由厂商CA签发,AK证书可由隐私CA签发,从而在不暴露EK身份的前提下证明AK与同一TPM绑定。

TPM 2.0 密码学基础构件与信任链 哈希 / PCR SHA-256 度量链 完整性证据 非对称加密 RSA / ECC 密钥交换与封装 数字签名 Quote / Certify 不可否认与授权 证书与 PKI EK / AK 证书链 身份绑定与信任锚 TPM 内部密钥与证明对象 EK 背书密钥 AK 证明密钥 SRK 存储根密钥 PCR 寄存器 远程证明与信任决策 挑战者发送 nonce + PCR 选择集 TPM 执行 Quote AK 私钥签名 验证证书链 比对 PCR 基线

四、方法流程:一次远程证明的密码学路径

  1. 建立信任锚:挑战者获取厂商根CA证书,验证EK证书合法性。
  2. 生成AK:在TPM内创建AK,私钥不可导出,公钥由EK或隐私CA签发AK证书。
  3. 发起挑战:挑战者发送随机数nonce和PCR选择集,防止重放。
  4. 执行Quote:TPM用AK私钥对“PCR值 + nonce”签名,返回Quote结构和签名。
  5. 验证:挑战者验签AK证书链,检查nonce新鲜性,将PCR值与基线比对。
  6. 决策:若PCR匹配且证书有效,则授予网络访问、磁盘解密或密钥释放权限。

五、案例场景:BitLocker与TPM的密钥释放

Windows BitLocker启用TPM保护器时,磁盘卷主密钥由TPM密封。启动时,TPM检查PCR[0]、PCR[2]、PCR[4]、PCR[7]等是否与密封时一致。若一致,TPM解封密钥,系统自动解锁;若引导链被修改,PCR变化,TPM拒绝释放,系统要求恢复密钥。这里同时用到哈希(PCR)、非对称加密(密封)、授权(策略)和证书(TPM身份)。

构件TPM中的典型对象作用常见命令/字段
哈希PCR、Digest度量与完整性TPM2_PCR_Extend
非对称加密EK、SRK、存储密钥密钥封装与保护TPM2_Create、TPM2_Unseal
数字签名AK、Quote证明与不可否认TPM2_Quote、TPM2_Certify
证书与PKIEK证书、AK证书身份绑定与信任链TPM2_ActivateCredential

六、误区与复盘

误区1:把PCR当成“加密存储”。PCR只保存摘要,不保存原始度量值,原始值需由事件日志重建。

误区2:认为EK私钥可导出。EK私钥通常不可迁移,证书只证明公钥属于某TPM。

误区3:忽略nonce。没有nonce的Quote可被重放,远程证明必须绑定新鲜随机数。

误区4:只看签名不看证书链。签名有效不等于身份可信,必须验证CA路径、有效期和吊销状态。

复盘要点:TPM安全性的根基不是“芯片很神秘”,而是哈希链、非对称密钥、签名和PKI四者协同。工程落地时,先确认算法族与密钥属性,再设计证书生命周期,最后把PCR基线纳入运维配置管理。