4. 设备身份体系
在TPM设备身份与远程证明工程中,设备身份体系是整个信任链的起点。没有稳定、可验证、可追溯的设备身份,远程证明就失去了断言的主体,零信任架构中的“永不信任、始终验证”也无从落地。本节从设备身份的定义出发,逐层拆解EK证书、EK公钥、设备ID、平台身份与隐私考量,并说明设备身份在零信任架构中的实际作用。
一、设备身份的定义:不是“编号”,而是可验证的密码学断言
设备身份并不是简单的序列号或资产编号,而是一组能够被密码学验证的、与特定物理设备绑定的身份断言集合。它至少回答三个问题:这台设备是谁?它的身份由谁签发?它当前是否仍然可信?
在TPM体系中,设备身份由多个层次共同构成:最底层是TPM芯片内部的背书密钥(Endorsement Key,EK),它是设备出厂时注入的、不可迁移的密钥对;中间层是EK证书,由TPM厂商或平台厂商签发,证明EK公钥确实属于某台真实设备;上层是设备ID与平台身份,用于在业务系统中标识和授权。三者关系可以用下面的结构图表示。
二、EK证书与EK公钥:设备身份的“出生证明”
EK公钥是TPM芯片对外暴露的唯一密码学标识,而EK证书则是权威机构对该公钥的背书。可以把EK公钥理解为设备的“指纹”,EK证书理解为公安机关出具的“身份证”。
EK证书通常包含以下关键字段:
| 字段 | 含义 | 工程作用 |
|---|---|---|
| Subject | 设备制造商或TPM厂商名称 | 确定证书签发主体,用于信任锚选择 |
| Subject Public Key | EK公钥 | 与TPM内EK私钥配对,验证设备身份 |
| Issuer | 签发CA | 构建证书链,验证证书合法性 |
| Serial Number | 设备序列号或TPM标识 | 资产绑定与唯一性识别 |
| Validity | 有效期 | 证书轮换与吊销策略依据 |
在工程实践中,验证EK证书的典型命令如下:
# 读取 TPM 的 EK 证书
tpm2_nvread -C o -s 0x800 0x01c00002 > ek_cert.der
# 转换为 PEM 格式
openssl x509 -inform DER -in ek_cert.der -out ek_cert.pem
# 查看证书详情
openssl x509 -in ek_cert.pem -text -noout
# 验证证书链
openssl verify -CAfile vendor_ca.pem ek_cert.pem
三、设备ID与平台身份:从芯片到业务的映射
设备ID是业务系统对设备的唯一标识,通常由EK公钥的哈希值派生,例如:
DeviceID = SHA256(EK_PublicKey)
这样做的好处是:设备ID与EK公钥一一对应,且不直接暴露EK公钥本身,兼顾了唯一性与隐私性。平台身份则更进一步,它不仅包含设备ID,还包含平台状态度量值(PCR值),反映固件、引导加载程序、操作系统内核等组件的完整性。
平台身份的核心价值在于:它让“设备是谁”和“设备当前是否可信”两个问题同时得到回答。在零信任架构中,仅验证设备ID是不够的,因为设备可能被植入恶意固件;只有结合PCR度量值,才能判断设备是否处于可信状态。
四、隐私考量:EK不能直接暴露
EK公钥是全局唯一的,如果直接将其作为设备标识在网络上传输,会导致设备被长期追踪,形成隐私泄露。因此,TPM规范引入了认证身份密钥(Attestation Identity Key,AIK)作为EK的隐私保护替代方案。
AIK由TPM内部生成,并由隐私CA(Privacy CA)或EK证书签发AIK证书。AIK可以用于签名PCR度量值,而不会暴露EK公钥。这样,验证方可以确认设备身份和平台状态,但无法跨会话追踪同一台设备。
五、设备身份在零信任架构中的作用
零信任架构的核心原则是“永不信任,始终验证”。设备身份在其中扮演三个关键角色:
- 访问控制决策输入:策略引擎根据设备身份、平台状态、用户身份共同决定是否授权访问。
- 持续验证的基础:设备身份不是一次性认证,而是通过远程证明持续验证平台完整性。
- 信任链的锚点:从EK到AIK再到平台度量,形成完整的信任链,确保每个环节可验证。
一个典型的零信任访问流程如下:
- 设备启动,TPM测量固件与OS,生成PCR值。
- 设备使用AIK对PCR值签名,生成远程证明报告。
- 策略引擎验证AIK证书、EK证书链和PCR值。
- 验证通过后,设备获得访问令牌,并持续接受状态检查。
- 若PCR值异常,策略引擎立即撤销访问权限。
在实际部署中,建议遵循以下清单:
- 确认TPM已启用并正确读取EK证书。
- 验证EK证书链是否完整、是否在有效期内。
- 使用AIK替代EK进行远程证明,避免隐私泄露。
- 将设备ID与资产管理系统绑定,实现全生命周期追踪。
- 定期检查PCR值基线,发现异常立即隔离设备。
设备身份体系不是静态的配置,而是贯穿设备生命周期的动态信任机制。从出厂注入EK,到部署时签发AIK,再到运行时的持续证明,每一步都需要工程化落地。只有把身份根、证书链、业务ID和平台状态统一管理,才能让零信任架构中的“设备可信”从理念变为现实。