可信报告根 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 只用于两种操作:

    • estabilishing the TPM Owner
    • estabilish Attestation Identity Key (AIK)

      AIK (Attestation Identity Key)

  • 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 公钥

  • FALSE : 禁止 没有所有者授权状态读取 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()

  • 通过 所有者授权读取 EK 公钥

    TPM_MakeIdentity()

  • 创建平台密钥 AIK

  • AIK 公钥作为平台的 ID
  • AIK 私钥作为平台的 签名密钥

    TPM_ActivateIdentity()

  • 激活平台身份