1. 目的(Purpose)

验证 TPM Endorsement Key (EK) certificate:

  • 是否有效
  • 是否属于正确厂商
  • 是否可构建完整信任链
  • 是否能验证到对应 Root CA

2. 适用范围(Scope)

  • TPM 2.0(Infineon OPTIGA TPM)

3. 前置条件(Prerequisites)

  • 系统已识别 TPM 设备

  • 安装工具:

    1
    2
    3
    tpm2-tools
    openssl
    curl
  • 网络可访问(用于下载 CA,可选)

4. 操作步骤(Procedure)

Step 1:获取 EK Certificate

1
tpm2_getekcertificate > ekcert.der

说明:

  • 输出为 DER(二进制)

Step 2:转换为 PEM 格式

1
openssl x509 -inform der -in ekcert.der -out ekcert.pem

Step 3:确认 EK cert 有效性

1
file ekcert.der

期望:

1
Certificate, Version=3
1
openssl x509 -inform der -in ekcert.der -noout -issuer

注意:subject= 为空是允许的(TPM EK cert 规范允许)。

Step 4:提取 Intermediate CA URL

1
openssl x509 -text -noout -in ekcert.pem | grep "CA Issuers"

记录 URL,例如:

1
https://xxxxx/xxxxx.crt

Step 5:下载 Intermediate CA

1
curl -o inter.crt <URL>

转换:

1
openssl x509 -inform der -in inter.crt -out inter.pem

Step 6:提取 Root CA URL

1
openssl x509 -text -noout -in inter.pem | grep "CA Issuers"

记录 URL,例如:

1
https://xxxxx/xxxxx.crt

Step 7:下载 Root CA

1
curl -o ca.crt <URL>

转换:

1
openssl x509 -inform der -in ca.crt -out ca.pem

Step 8:验证证书链(核心步骤)

1
2
3
4
openssl verify \
-CAfile ca.pem \
-untrusted inter.pem \
ekcert.pem

5. 期望结果(Expected Result)

1
ekcert.pem: OK

6. 验证标准(Validation Criteria)

项目 要求
EK cert 是否可解析 允许
证书格式 X.509 v3
Issuer xxxx CA
AIA URL 存在
Intermediate CA 可下载
Root CA 可下载
Chain Validation PASS
Subject 为空 允许

7. 常见问题(Troubleshooting)

问题 1:乱码输出

原因:

1
DER 为二进制

解决:

1
使用 openssl 查看

问题 2:验证失败(error 20)

原因:

1
缺少 intermediate CA

解决:

1
加 -untrusted inter.pem

问题 3:subject 为空

原因:

1
TPM EK 规范允许

不影响验证。

问题 4:openssl 无法解析

原因:

  • 文件损坏
  • 非 X509 数据

解决:

1
重新获取 ekcert

问题 5:tpm2_getekcertificate 输出异常

解决:

1
tpm2_getekcertificate > ekcert.der

或:

1
tpm2_getekcertificate --offline > ekcert.der

8. 最终判定(Pass / Fail)

PASS 条件

  • EK cert 有效
  • CA chain 完整
  • 可验证到 Infineon Root CA
  • 无 openssl 验证错误

FAIL 条件

  • 证书不可解析
  • Chain 不完整
  • Root CA 不匹配
  • openssl verify 失败