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绑定。
四、方法流程:一次远程证明的密码学路径
- 建立信任锚:挑战者获取厂商根CA证书,验证EK证书合法性。
- 生成AK:在TPM内创建AK,私钥不可导出,公钥由EK或隐私CA签发AK证书。
- 发起挑战:挑战者发送随机数nonce和PCR选择集,防止重放。
- 执行Quote:TPM用AK私钥对“PCR值 + nonce”签名,返回Quote结构和签名。
- 验证:挑战者验签AK证书链,检查nonce新鲜性,将PCR值与基线比对。
- 决策:若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 |
| 证书与PKI | EK证书、AK证书 | 身份绑定与信任链 | TPM2_ActivateCredential |
六、误区与复盘
误区1:把PCR当成“加密存储”。PCR只保存摘要,不保存原始度量值,原始值需由事件日志重建。
误区2:认为EK私钥可导出。EK私钥通常不可迁移,证书只证明公钥属于某TPM。
误区3:忽略nonce。没有nonce的Quote可被重放,远程证明必须绑定新鲜随机数。
误区4:只看签名不看证书链。签名有效不等于身份可信,必须验证CA路径、有效期和吊销状态。
复盘要点:TPM安全性的根基不是“芯片很神秘”,而是哈希链、非对称密钥、签名和PKI四者协同。工程落地时,先确认算法族与密钥属性,再设计证书生命周期,最后把PCR基线纳入运维配置管理。