如何使用 TPM 进行平台认证?

信息安全 验证 可信计算 远程认证
2021-09-09 17:56:53

我目前正在研究 TPM(可信平台模块)并想知道 TPM 如何提供平台身份验证。假设在云上部署了合法主机。如何使用 TPM 确保我连接的主机就是那个主机,而不是其他具有相同配置的主机?

原则上,由于该主机配备了 TPM,其 Endorsement Key 是唯一的,因此我可以通过 EK(Endorsement Key)的公钥对其进行验证。例如,我可以让 TPM 使用其私钥 EK 加密消息。我用 EK 的公钥解密它。但是,我查阅了文档,并没有找到任何 API 可以使用 EK 的私钥显式加密任意消息。

那么,通常情况下,如何使用 TPM 来执行这样的主机身份验证呢?

2个回答

您需要的是远程证明(QUOTE 操作)。

背书密钥 (EK) 不能直接访问,因为这将是隐私问题 - 我们可以使用此唯一标识符跟踪系统。EK 可与证明身份密钥 (AIK) 或直接匿名证明 ( DAA ) 结合使用。

  • AIK 模型利用隐私 CA(证书颁发机构)向第三方声明您的 EK 的有效性。可以创建多个 AIK 来保护您的身份(例如,每个第三方一个 AIK,每个安全域一个 AIK)。
  • DAA 模型使用“零知识证明”来匿名验证您的 EK。请参阅内容以大致了解零知识协议的工作原理。

我建议您看一下来自 Intel、 PrivateCA和这个演示文稿的OpenAttestation开源解决方案

对northox 所说的稍作更正:远程证明使用AIK,这正是您所需要的。您可以使用隐私 CA 或 DAA 获得经过适当认证的 AIK,具体取决于您可用的内容。

但是,对于这种用途,您实际上可能不需要 AIK 证书:如果您对机器有物理访问权限(或等效安全通道),您可以让它生成一个 AIK,然后导出它的公钥并使用它对其进行身份验证。