2. TPM标准与规范:TCG规范族,TPM 1.2 vs TPM 2.0 核心差异,FIPS 140-2/3认证要求

聊TPM,绕不开标准。很多工程师拿到芯片手册就开始调驱动,结果发现不同厂家的TPM行为不一样,甚至同一个厂家不同批次都有差异。为什么?因为TPM背后有一套完整的规范族,你理解了这个体系,选型才不会踩坑。

我个人习惯,先看芯片支持哪个版本的TCG规范,再看它有没有FIPS认证。这两个信息基本决定了这颗芯片能不能用在你的产品里。

2.1 TCG规范族:谁在管TPM的事?

TCG(Trusted Computing Group)是一个产业联盟,成员包括Intel、AMD、Microsoft、IBM这些大厂。他们不生产芯片,但定义了TPM该怎么做。

整个规范族分三层:

  • 核心规范:定义TPM的架构、命令集、数据结构。这是TPM的“宪法”。
  • 平台特定规范:针对PC、移动设备、IoT等不同平台,规定TPM怎么集成。比如PC客户端平台规范,就规定了TPM必须支持哪些PCR、怎么和BIOS交互。
  • 保护配置文件:定义安全等级。比如你要过FIPS认证,就得按对应的保护配置文件来设计。

关键点:选型时,不要只看“支持TPM”,要问清楚支持的是哪个版本的TCG规范。TPM 1.2和2.0的命令集完全不同,驱动不能混用。

我记得有一次帮客户做选型评估,对方说“我们用的TPM是1.2的,没问题”。结果一查,他们用的芯片是2015年停产的,TCG规范版本已经落后了三个大版本。嗯,这种坑我见过不少。

2.2 TPM 1.2 vs TPM 2.0:核心差异

这是选型时最常遇到的问题。我直接说结论:新项目别用TPM 1.2了,除非你有特殊理由。

为什么?看这张对比图就明白了。

TPM 1.2 vs TPM 2.0 核心差异 TPM 1.2 算法:仅支持RSA/SHA-1 命令集:约80条命令 授权:单一HMAC会话 PCR:最少16个 架构:固定功能硬件 TPM 2.0 算法:RSA/ECC/SM2/SHA-256/384 命令集:约120条命令 授权:策略+密码+HMAC PCR:最少24个 架构:灵活接口+可扩展

说几个我实际项目中遇到的差异点:

2.2.1 算法支持

TPM 1.2只支持RSA和SHA-1。SHA-1现在已经被证明不安全了,很多安全审计直接不通过。TPM 2.0支持ECC、SM2(国密)、SHA-256/384。你想想看,如果你的产品要过等保2.0,没有国密支持怎么行?

避坑指南:我曾经帮一个金融客户做方案,他们选了TPM 1.2芯片,结果等保测评时发现SHA-1不被认可,整个方案推倒重来。多花了三个月时间。

2.2.2 授权机制

TPM 1.2的授权只有一种:HMAC会话。说白了就是每次操作都要算一个HMAC,流程固定,不够灵活。

TPM 2.0引入了策略授权(Policy Authorization)。你可以定义复杂的访问策略,比如“只有同时满足PCR值正确且管理员签名有效时,才能使用这把密钥”。这在安全启动场景下特别有用。

2.2.3 PCR数量

TPM 1.2最少16个PCR,TPM 2.0最少24个。别小看这个数字。在安全启动中,PCR 0-7用于固件和BIOS,PCR 8-15用于操作系统,PCR 16-23留给厂商自定义。如果你要做多级启动验证,PCR不够用会很尴尬。

2.3 FIPS 140-2/3认证要求

FIPS 140是美国联邦信息处理标准,专门针对密码模块。140-2是旧版,140-3是2020年发布的新版。如果你的产品要卖到美国政府或金融机构,FIPS认证几乎是硬门槛。

这里有个常见的误解:很多人以为“芯片支持FIPS算法”就等于“芯片通过了FIPS认证”。不对。FIPS认证是对整个密码模块的评估,包括硬件、固件、接口、物理安全。

对比项 FIPS 140-2 FIPS 140-3
发布年份 2001年 2020年
安全等级 Level 1-4 Level 1-4
算法要求 FIPS 186-2 (RSA/DSA) FIPS 186-4 (RSA/ECC/DSA)
物理安全 基本要求 增加非入侵式攻击防护
生命周期 2026年9月退役 当前标准

选型建议:新项目直接选FIPS 140-3认证的芯片。140-2的认证有效期到2026年,但很多客户已经开始要求140-3了。别为了省一点成本,给自己埋雷。

我个人经验,选FIPS认证芯片时要注意三点:

  1. 认证级别:Level 2是常见选择,要求有防篡改封条和角色认证。Level 3要求更高,需要物理防篡改电路。
  2. 认证范围:有些芯片只认证了RSA算法,ECC没认证。你要确认你用的算法都在认证范围内。
  3. 认证有效期:FIPS认证不是永久的,通常每5年需要重新认证。选芯片时看看认证到期时间。

嗯,说到这里,我想起一个案例。有次一个客户选了某款TPM芯片,芯片手册上写着“FIPS 140-2 Level 2 certified”。结果产品送测时,测试机构发现芯片的RNG(随机数发生器)没有通过FIPS的统计测试。为什么?因为芯片厂商只认证了密码算法模块,RNG模块没在认证范围内。这就是典型的“认证范围陷阱”。

2.4 小结:选型决策树

最后,我整理了一个简单的决策逻辑,帮你快速判断该选什么芯片:

TPM选型决策逻辑 新项目选型 需要FIPS认证? 选FIPS 140-3芯片 选TPM 2.0芯片 确认认证范围包含所有算法 确认支持ECC/国密算法 确定芯片型号,开始驱动开发