使用 TPM2 安全地存储密钥

Posted

技术标签:

【中文标题】使用 TPM2 安全地存储密钥【英文标题】:Storing key securely using TPM2 【发布时间】:2020-12-21 19:17:48 【问题描述】:

我正在开发一个运行 linux for Embedded 的嵌入式系统。 硬件有 TPM 芯片。我已经做了一些准备,我安装了 tpm2-tss 和 tpm2-tools 软件库,并通过使用 TPM 散列一些数据来测试它们。它的工作。

系统正在执行一些射频协议并传输消息。 消息使用 AES128 加密,每个设备都有一个密钥。 我想使用 TPM 功能将密钥安全地存储在设备上,并在发送消息之前对其进行加密。 我知道 TPM 硬件是有限的,但数据流量非常低,所以我认为使用 TPM 加密数据没有任何问题。

有很多关于 TPM 的信息,但所有这些信息让我更加困惑。我需要一些指导方针和简单的解释来帮助我满足我的需求。 根据我的阅读,TPM 使用内部密钥加密数据并将其存储在系统外部存储器中。所以我猜我需要使用这个功能来加密设备密钥并存储它。 我不明白在那之后我如何处理我的密钥,以及我如何“告诉”TPM 用这个密钥加密一些数据。

【问题讨论】:

这能回答你的问题吗? How to load and use a persistent symmetric key in the TPM? 【参考方案1】:

我对 TPM2 也有同样的问题。 O TPM2 对使用 tpm2-tools 感到非常困惑。我建议使用clevis-encrypt tpm2 来抽象加密和解密的复杂性。

如果您有使用 TPM2 密封启动的消息。如果你在这里分享,我感谢你

【讨论】:

以上是关于使用 TPM2 安全地存储密钥的主要内容,如果未能解决你的问题,请参考以下文章

如何安全地存储和使用客户的 AWS 密钥

如何安全地存储加密密钥?

使用带有 JGit 的密钥安全地访问 Git 存储库

Windows 11 小技巧- 安装

使用PHP / MySQLI / Apache时,在哪里安全地存储证书/密钥?

如何安全地存储和处理 JWT 的密钥