搭载measured boot的TPM芯片安全性与防护措施相关咨询
TPM中间人攻击防范与固件度量机制解答
外接TPM总线中间人攻击防范方法
你提到的外接TPM(通常通过SPI/LPC总线接主板插针)的总线中间人攻击确实是有效攻击向量,这类总线默认无加密,明文传输的交互数据可被直接窃听,对应防范方案如下:
- 启用TPM 2.0会话加密与完整性校验:TPM 2.0原生支持在主机和TPM之间建立加密会话,所有命令参数、返回值都会通过会话密钥加密,同时带消息验证码校验,中间人即使抓到流量也无法解密或篡改数据。Windows BitLocker默认启用该机制,只要没有手动修改过系统组策略的TPM相关配置,无需额外操作即可规避此类窃听风险。
- 绑定TPM背书密钥(EK)哈希:EK是TPM出厂内置的唯一不可篡改非对称密钥,你可以提前导出EK公钥的哈希值,在UEFI/系统策略中配置仅和对应哈希的TPM交互,避免攻击者替换TPM模块或伪造中间人应答。
- 高安全场景优先选择片内集成TPM:优先使用CPU内置的固件TPM(fTPM)或集成在PCH中的硬件TPM,这类TPM和主机的通信走片内总线,没有外部暴露的引脚,物理层面就杜绝了总线窃听的可能。
集成TPM的同类攻击风险说明
集成TPM并非完全免疫同类攻击,但攻击门槛极高:
- 分立焊接在主板上的集成TPM芯片,攻击者理论上可以通过拆焊芯片、在引脚飞线的方式做中间人攻击,但需要物理接触设备、熟练的硬件操作能力,攻击成本远高于外接插针TPM的窃听。
- CPU/PCH内置的fTPM/硬件TPM没有外部通信引脚,只有侵入式物理攻击(打磨芯片、修改内部电路)才有可能窃听总线,这类攻击成本极高,普通攻击者完全无法实现。
固件度量到TPM的过程说明
固件度量是单向的信任链传递过程,完全不依赖TPM返回的数据,具体流程如下:
整个度量链的核心逻辑是「可信根先执行,先度量再执行后续代码」,从根源上避免不可信代码篡改度量过程。
- 开机后首先执行CPU/只读UEFI区域固化的核心可信度量根(CRTM),这部分代码不可篡改,是整个信任链的起点。
- CRTM先计算UEFI固件可执行代码的哈希值,调用
TPM2_PCR_Extend命令将哈希值扩展到TPM的平台配置寄存器(PCR)中,再执行UEFI代码。 - 后续每一步要执行的固件驱动、启动加载器、操作系统内核,都会先被上一级已经完成度量的可信代码计算哈希,写入对应PCR寄存器后再执行,完成整个信任链的传递。
整个过程中TPM仅负责接收哈希值、更新PCR寄存器,不会返回任何影响度量逻辑的内容。即使TPM被攻击者篡改替换,也只会导致PCR值和预期不符,依赖PCR值的敏感操作(比如BitLocker密钥解封)会直接失败,不会出现度量结果被篡改的问题。
内容的提问来源于stack exchange,提问作者Alai
相关产品推荐
相关产品推荐

