NXP MCU 技术论坛
直播中

刘军

7年用户 1346经验值
私信 关注
[问答]

如何使用CST签署二进制文件并使用HSM而不是srk.pri/pub本地文件?

对于目标 LS1043AE,我可以使用 NXP CST 工具对 ATF 和 U-Boot 进行签名,以获得安全的引导信任链。
这个工具 CST 依赖于 ATF 源代码树根目录下的 srk.pri 和 srk.pub 本地文件来签署二进制文件。
我想使用由 PKCS#11 访问的我公司的 HSM,以避免公开这些文件(并在其中生成它们)。
这可能吗 ?
我可以使用实现 PKCS#11 的引擎并使用 CST 标志 OPENSSL_INC_PATH 和 OPENSSL_LIB_PATH 构建一个特殊版本的 OpenSSL,但是如何告诉 CST 使用 PKCS#11 而不是本地文件 srk.pri ?

回帖(1)

477289

2024-3-29 15:34:17
实际上,您可以使用 CST 的 -key和-cert标志来使用通过 PKCS#11 访问的 HSM。这些标志允许您指定要使用的密钥和证书,这些密钥和证书可以在 HSM 中存储,并且不需要本地的 srk.pri 和 srk.pub 文件。

下面是使用 HSM 进行签名的一个例子:

cst --no-caam-keys --key pkcs11 engine:pkcs11:id= --cert pkcs11 engine:pkcs11:id= --o signed.bin unsigned.bin

在这个例子中,--key 和 --cert 标志指定了要在 HSM 中使用的密钥和证书的 ID,并将其作为 PKCS#11 引擎加载。

请注意,使用 PKCS#11 引擎需要构建特殊版本的 OpenSSL,以便 CST 能够使用它。您可以通过设置 OPENSSL_INC_PATH 和 OPENSSL_LIB_PATH 来将编译器路径设置为 PKCS#11 引擎所需的路径,然后使用从 OpenSSL 源代码编译的 CST 来进行签名。

希望这可以帮助您实现使用 HSM 进行 CST 签名。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分