This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM6422:HS-SE 安全启动 u-boot + Linux 加密时停止

Guru**** 1624225 points
Other Parts Discussed in Thread: AM6422
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1365236/am6422-hs-se-secure-boot-u-boot-linux-stalls-when-encrypted

器件型号:AM6422

大家好!

由于下一次尝试中另一个线程已锁定在此处:

我正在尝试使用 AM6422芯片在我们的平台上实现安全启动。

我们设法使用 otp-keywriter 将 SMPK 和 SMEK 编程到电子保险丝。

使用 SMPK I 成功地对引导过程中的所有二进制文件进行签名、以使其通过器件身份验证。

现在、我尝试启用加密以实现 IP 保护。

这是一个粗略的地方。

我启用了"系统固件加密扩展"、使用 AES256-CBC 借助编程的 SMEK 加密二进制 文件、并补丁了在 HS 器件上安全启动的二进制文件签名后的"系统固件映像完整性扩展"—TISCI 用户指南

我为所有二进制文件都执行了该操作。

在 U-Boot 启动 Linux 内核之前、我们会引导多个阶段的 U-Boot。

我们提供了 tiboot3.bin、tispl.bin 以及使用 Yocto/bitbake 生成的 u-boot.img。

只要我没有对任何可执行的 u-boot 二进制文件进行加密、我就可以成功引导加密的二进制文件。

tiboot3.bin

该证书不使用此处所述的扩展名: 为 HS 器件上的安全启动签名二进制文件- TISCI 用户指南、而是使用  OID 为 1.3.6.1.4.1.294.1.9的 ext_boot_info 扩展名

如果在填充 enrcyption 扩展名时对此文件进行加密、器件不再启动。

我的问题是:

  • 是否可以对 tiboot3.bin 文件进行加密-是否有相关文档说明如何加密?

tispl.bin / u-boot.img

 

如果对两个字段内的 SPL 或 uboot 映像进行加密、器件会在引导期间停止。

当加密最后一个阶段 uboot 时、我在引导停顿之前获得以下日志:

尝试从 MMC2引导
身份验证已通过
身份验证已通过

当使用不同的加密密钥、或操纵加密扩展中填充的魔术值时、会导致身份验证错误。

因此、我假设器件可以成功地对二进制进行解密和身份验证、但没有执行。

所有其他二进制文件(optee、ATF 以及器件树)都支持已启用的加密。

问题:

  • 对 u-boot 二进制文件进行加密时、什么原因会导致引导过程停止? 是否有任何方法可用于调试器件上发生的情况?

非常感谢!

斯特凡