工具与软件:
你(们)好
我们将在基于 AM64X 的定制电路板上实现安全启动。 我们需要使用 HSM 来保持自定义密钥(SMPK、BMPK、SMEK、BMEK)的机密性。
我们认为我们可以通过为引导加载程序和内核签名来实现这一点。 但是、我们发现 Keywriter 应用的编译过程中存在基本缺陷。
为了解释这个缺陷、我们参照 https://software-dl.ti.com/tisci/esd/10_00_08/6_topic_user_guides/key_writer.html?highlight=fek#procedure 这里的图表。此图表明、SMEK 和 BMEK 密钥是使用临时 AES-256密钥进行 AES 加密的。
SMEK 和 BMEK 密钥用于 AES 加密引导加载程序和/或内核、请参见 https://software-dl.ti.com/tisci/esd/10_00_08/6_topic_user_guides/secure_boot_signing.html#signing-an-encrypted-binary-for-secure-boot、 因此必须保密。
为此、我们要将 SMEK 和 BMEK 密钥保留在 HSM 中。 但是、如果这样做、我们就无法再对密钥进行 AES 加密。 这是因为加密密钥需要从 HSM 中简单提取密钥、这是不可能(肯定是不可能的)的。 请注意、我们需要使用 PKCS#11 API 与 HSM 通信。 如果数据本身是位于 HSM 中的密钥、则此 API 不提供任何 AES 编码方法。
有什么想法如何解决此问题?
