4、芯片级身份认证协议:基于证书的认证、对称与非对称密钥体系、IAT/TCG规范

芯片级身份认证,说白了就是给每一颗芯片发一张「身份证」。这张身份证得防伪、得能验证、还得在供应链里流转时不被篡改。我做了这么多年硬件安全,见过太多因为芯片身份被伪造导致的整条产线被攻破的案例。嗯,咱们今天就把这个事儿彻底聊透。

4.1 为什么芯片需要「身份证」?

你想想看,一颗芯片从晶圆厂流片出来,经过封装、测试、入库、发货,再到整机厂贴片、组装,最后到用户手里。这中间经过了多少手?如果每一颗芯片都没有唯一的、不可伪造的身份标识,那供应链里混入一颗假芯片,谁能发现?

我在一个物联网项目里就遇到过这种事。客户采购了一批MCU,结果整机上线后大批量掉线。追查下来发现,中间商把一批二手翻新片当新片卖,芯片ID被篡改过,安全启动直接崩了。从那以后,我对芯片身份认证这件事就特别较真。

核心观点:芯片级身份认证是供应链安全的「信任锚点」。没有这个锚点,上层所有的安全机制都是空中楼阁。

4.2 基于证书的认证体系

基于证书的认证,是目前工业界最成熟、最通用的方案。它的核心逻辑很简单:用公钥基础设施(PKI)来绑定芯片身份和公钥。

具体流程是这样的:

  1. 证书签发:芯片制造商在安全环境中为每颗芯片生成密钥对,私钥永久锁在芯片内部(比如eFuse或OTP),公钥提交给CA签发证书。
  2. 证书存储:芯片出厂时,把证书(包含公钥、芯片ID、制造商信息、有效期等)烧录到芯片的不可篡改存储区。
  3. 身份验证:验证方(比如整机厂的产线设备)用CA根证书验证芯片证书的签名,确认芯片身份合法。

这里有个关键点——证书链。你不可能让每一颗芯片都直接由根CA签发,那样根CA的私钥一旦泄露就全完了。实际做法是:根CA签发中间CA,中间CA签发设备CA,设备CA再签发芯片证书。这样即使某个中间CA被攻破,也能快速吊销,不影响全局。

我的经验:证书链层级不要超过4层。层级太多,验证时间会显著增加,产线节拍跟不上。我曾经见过一个方案用了7层证书链,结果产线验证一次要3秒多,直接被客户否决了。

4.3 对称密钥体系 vs 非对称密钥体系

这两种体系在芯片身份认证里各有各的用武之地。我习惯用一个简单的对比来帮团队理解:

对比维度 对称密钥体系 非对称密钥体系
密钥数量 每对通信实体共享一个密钥 每个实体拥有一对密钥(公钥+私钥)
密钥分发 需要安全通道分发,难度大 公钥可公开,私钥本地生成
计算开销 低(适合资源受限芯片) 高(需要硬件加速器)
典型算法 AES-128/256, SM4 RSA-2048/4096, ECC-P256, SM2
适用场景 产线批量认证、低功耗传感器 证书签发、安全启动、远程证明

说白了,对称密钥快但管理麻烦,非对称密钥灵活但计算重。实际项目中,我建议混合使用:用非对称密钥做身份认证和密钥协商,协商出来的对称密钥用于后续的数据加密通信。这样既保证了身份可信,又兼顾了性能。

避坑指南:我曾经在一个项目里看到团队直接用对称密钥做芯片身份认证。结果密钥在产线分发时被截获,整批芯片的身份全部失效。记住:对称密钥不适合做「身份标识」,它更适合做「会话保护」。

4.4 IAT/TCG规范解读

聊到芯片级身份认证,绕不开两个组织:IAT(Identity and Access Trust)和TCG(Trusted Computing Group)。它们定义了芯片身份认证的行业标准。

4.4.1 TCG规范:TPM与EK/AK

TCG最核心的贡献是TPM(Trusted Platform Module)。TPM芯片内部有一个不可导出的背书密钥(EK),这是芯片的「根身份」。EK对应的证书由TPM制造商签发,证明这颗TPM是合法的。

但EK不能直接用于日常认证——因为EK是唯一的、永久的,如果每次通信都用EK,很容易被追踪。所以TPM引入了平台身份密钥(AK):

  • EK:芯片的「出生证明」,一辈子不变,只在证书签发和密钥迁移时使用。
  • AK:芯片的「工作证」,可以随时生成、吊销,用于日常的身份认证和远程证明。

我参与过一个服务器可信启动项目,就是用TPM的AK来做平台身份认证。每次服务器启动时,BIOS向TPM发起挑战,TPM用AK签名一个随机数,证明自己是合法的硬件平台。这个机制到现在还在大量使用。

4.4.2 IAT规范:设备身份与供应链溯源

IAT规范更侧重于供应链场景下的设备身份管理。它定义了三个核心概念:

  1. 设备标识符(Device ID):芯片的唯一硬件标识,通常由制造商在晶圆阶段写入。
  2. 设备证书(Device Certificate):绑定Device ID和公钥的数字证书,用于身份验证。
  3. 设备证明(Device Attestation):芯片向验证方证明自己持有私钥的过程,通常用挑战-响应协议实现。

IAT规范特别强调可撤销性。芯片被淘汰或发现安全漏洞时,必须能快速吊销其证书。我建议在产线系统里预置OCSP(在线证书状态协议)或CRL(证书吊销列表)的检查逻辑,否则一旦出现大规模证书泄露,后果不堪设想。

4.5 芯片级身份认证的完整流程

下面这张图展示了从芯片出厂到整机组装的身份认证全流程:

芯片级身份认证全流程 芯片级身份认证全流程 芯片制造 生成密钥对 + 写入ID 证书签发 CA签发设备证书 证书烧录 写入OTP/eFuse 出厂验证 产线自检 + 签名测试 供应链流转 物流 + 仓储 + 分销 整机厂验证 证书链验证 + 挑战响应 整机组装 绑定整机身份 整机出厂 最终验证 + 封存 现场部署 持续身份验证 关键说明: 1. 每个阶段都需要验证上一阶段的身份凭证,形成「信任链」。 2. 证书吊销列表(CRL)需要在整机厂验证环节实时检查。 3. 私钥在任何阶段都不得离开芯片安全存储区。

4.6 实际项目中的选型建议

说了这么多理论,最后给点实在的。如果你正在做芯片选型或安全方案设计,我建议按以下优先级考虑:

  • 资源极度受限(如传感器、RFID标签):优先用对称密钥体系,配合物理不可克隆函数(PUF)做密钥生成。PUF的好处是密钥不需要存储,每次上电动态生成,物理攻击很难提取。
  • 通用MCU/MPU:优先用非对称密钥 + 证书体系,支持TCG TPM规范。如果芯片内置了硬件加密引擎(如ARM TrustZone + CryptoCell),性能完全够用。
  • 高性能SoC(如服务器CPU、AI芯片):必须支持完整的IAT/TCG规范,包括多级证书链、远程证明、安全启动。这类芯片通常有独立的Security Sub-Processor来专门处理身份认证。

重要提醒:无论选哪种方案,私钥的生成环境必须是安全的。我见过一个案例,芯片厂商在普通PC上生成密钥对,结果私钥被恶意软件窃取,整批芯片的证书全部作废。密钥生成必须在离线、物理隔离的安全工作站上完成。