可信报告根 Root of Trust for Reporting (RTR)
概念
The RTR is responsible for establishing platform identities, reporting platform
configurations, protecting reported values, and providing a function for attesting to reported
values. The RTR shares responsibility of protecting measurement digests with the RTS.
- RTR 主要负责:
- estabilishing platform identity 创建平台ID
- reporting platform configurations 报告平台配置数据
- protecting reported values 保护报告数据
- providing a function for attesting to reported value 提供方法验证报告数据
RTR 是唯一的,进行其它 TPM 操作之前,需要首先创建 RTR
EK (Endorsement Key)
EK, 背书密钥,是一组非对称密钥,在 TPM 中,EK 便是 RTR
EK 只用于两种操作:
AIK, 平台身份可信证明密钥,是一组非对称密钥
- 通过 EK 创建,可在创建 EK 后的任何时候创建
AIK 用于数字签名,不能用于加解密数据,由于隐私政策和安全原因,EK 不能用于签名
相关变量和指令
permanent.flag.CEKPUsed
TRUE : EK 通过 TPM_CreateEndorsementKeyPair() 创建
- FALSE : EK 在生产过程中写入
-
permanent.flag.enableRevokeEK
TRUE : 允许通过 TPM_RevokeTrust() 撤销 EK
FALSE : 禁止通过 TPM_RevokeTrust() 撤销 EK
permanent.flag.readPubek
TRUE : 允许 没有所有者授权状态读取 EK 公钥
-
permanent.data.ekReset
用于撤销 EK 是进行验证
- 通过 TPM_CreateRevocableEK() 创建的随机值
调用 TPM_RevokeTrust() 是传入然后验证是否一致
TPM_CreateEndorsementKeyPair()
创建不可撤销的 EK
- 设置 permanent.flag.CEKPUsed 为 TRUE
设置 permanent.flag.enableRevokeEK 为 FALSE
TPM_CreateRevocableEK()
创建可撤销的 EK
- 执行 TPM_CreateEndorsementKeyPair()
设置 permanent.flag.enableRevokeEK 为 TRUE
TPM_RevokeTrust()
撤销 EK
-
TPM_ReadPubek()
读取 EK 公钥
需要 permanent.flag.readPubek 为 false
TPM_OwnerReadInternalPub()
-
TPM_MakeIdentity()
创建平台密钥 AIK
- AIK 公钥作为平台的 ID
-
TPM_ActivateIdentity()
激活平台身份