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.

[参考译文] DRA821U-Q1:关于安全引导

Guru**** 2486595 points
Other Parts Discussed in Thread: J7200XSOMXEVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1554939/dra821u-q1-about-secure-boot

器件型号:DRA821U-Q1
主题中讨论的其他器件:J7200XSOMXEVM

工具/软件:

您好、

我们设计了基于 J7200XSOMXEVM 参考设计的定制电路板。

多亏了以下论坛、我们才能够将我们的定制电路板制作成一款 HSSE 器件:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1542364/dra821u-q1-about-keywriter-application-error-codes/5941929?tisearch=e2e-sitesearch&keymatch=%20user%3A298257#

下一步是执行安全启动身份验证检查。

因此、我们测试了以下软件组合的引导:
-使用默认的 custMpk.*生成的引导加载程序和 FitImage
-使用自定义 custMpk.*生成的引导加载程序和 FitImage

下面列出了测试结果。

引导加载程序 FitImage 结果
默认 custMpk.* 默认 custMpk.*  引导加载程序无法启动
默认 custMpk.* 定制客户群* 引导加载程序 无法启动
定制客户群* 默认 custMpk.* 内核启动
定制客户群* 定制客户群* 内核启动

我们假定红色区域中的“FitImage 身份验证失败“。

我们的理解是错误的吗?  此外,如何在 FitImage 中导致未正确签名的身份验证错误?

此致
Mizutani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、 Mizutani

    几个问题。

    • 您使用的引导流程是什么?
    • 您如何验证未婚妻的身份?
    • 您的贴合图像包含哪些组件?

    你的理解是正确的。

    我们的理解有误吗?  此外、我如何在 FitImage 中导致未正确签名的身份验证错误?

    在表格中、我看到您的电路板中刷写了自定义公钥。 这就是由于身份验证失败而导致使用默认密钥映像失败的原因。

     此外、如何在 FitImage 中导致未正确签名的身份验证错误?

    您已经拥有了失败的映像、如果您用错误的密钥唱了映像、您将遇到身份验证失败的问题。

    此致
    Diwakar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    抱歉、我不小心点击了“这解决了我的问题“。

    您使用的引导流程是什么?

    “引导流程“指的是什么? 我们的软件基于“J7200-J7200"<xmt-block0>“ PROCESSOR-SDK-LINUX。

    您的 FIT 图片包含哪些组件?

    FitImage 包含内核和设备树。

    您如何验证封装?

    在 u-boot 中、运行以下命令:
    bootm ${addr_fit}#conf- .dtb

    验证日志如下所示(FitImage 使用“default custMpk.*“构建)。

    ## Loading kernel from FIT Image at 90000000 ...
       Using 'conf-<custom-board>.dtb' configuration
       Verifying Hash Integrity ... OK
       Trying 'kernel-1' kernel subimage
         Description:  Linux kernel
         Type:         Kernel Image
         Compression:  uncompressed
         Data Start:   0x900000e0
         Data Size:    22573568 Bytes = 21.5 MiB
         Architecture: AArch64
         OS:           Linux
         Load Address: 0x81000000
         Entry Point:  0x81000000
         Hash algo:    sha512
         Hash value:   8bcf61cb5e6b011ef674910e00883b03ce1374cd960c8fd3914db382515feee9360c08d3e3ae858a4893c71fdd6aa4b24ca47b5f525cc05053176f1aee59f2dc
       Verifying Hash Integrity ... sha512+ OK
    ## Loading fdt from FIT Image at 90000000 ...
       Using 'conf-<custom-board>.dtb' configuration
       Verifying Hash Integrity ... OK
       Trying 'fdt-<custom-board>.dtb' fdt subimage
         Description:  Flattened Device Tree blob
         Type:         Flat Device Tree
         Compression:  uncompressed
         Data Start:   0x91587418
         Data Size:    75061 Bytes = 73.3 KiB
         Architecture: AArch64
         Load Address: 0x83000000
         Hash algo:    sha512
         Hash value:   5301fcccdfa3d7794ac5dec6fb313ffe4d4df06da92d71e7ed172034e7a9bb35270c67e9926487a6412ada2e6c724bc4f56c9d979373a9f6c03b6ef7414b8690
       Verifying Hash Integrity ... sha512+ OK
       Loading fdt from 0x91587418 to 0x83000000
       Booting using the fdt blob at 0x83000000
    Working FDT set to 83000000
       Loading Kernel Image to 81000000
       Loading Device Tree to 000000008ffea000, end 000000008ffff534 ... OK
    Working FDT set to 8ffea000

    我希望使用“default custMpk.*“构建的 FitImage 的身份验证失败、但身份验证成功。

    您知道为什么身份验证成功吗?

    此致
    Mizutani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、 Mizutani

    我们验证早期引导加载程序映像(如 tiboot3.bin、tispl 或 uboot、img)的方式与 ftimage 的方式不同。

    类似 tispl 的映像使用 TIFS 服务、根据刷写到效率中的密钥对映像进行身份验证。 用于定时验证的公钥存储在 FDT 中。  

    为了获得有关验证的详细信息、我建议您阅读以下文档。

    https://docs.u-boot.org/en/latest/usage/fit/signature.html#u-boot-fit-signature-verification

    如果您还有问题、请告知我。

    此致
    Diwakar