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.

[参考译文] AM2434:在编译期间使用 PKCS 基础架构实现安全启动过程、而不是 PC 上的本地私钥

Guru**** 2575725 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1566784/am2434-implement-secure-boot-procedure-using-pkcs-infrastructure-and-not-local-private-key-on-pc-during-compilation

器件型号:AM2434


工具/软件:

尊敬的团队:  

您能否提供以下帮助:

 

目前、我正在使用 AM243x(ALV 封装)和工业 SDK v11.08 开发应用。

现在、我正尝试在编译过程中使用 PKCS 基础结构而不是 PC 上的本地私钥来实施安全启动过程。

为此、我修改了编译期间调用的 python 脚本、以便生成使用我们的“远程“私钥签名的证书。

特别是在 KeyWriter 项目中、我使用私钥生成 final_certificate.bin 和 keycert.h。

对 KeyWriter–SBL 和应用程序(如 hs.appimage)进行编程后、SBL 无法启动、JTAG 关闭、我无法理解发生了什么以及哪里出错。

您能为我提供一些方法来了解我的问题所在吗?

在过去,我尝试了程序与本地 privare 关键和它的工作.

谢谢  

1 月

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

    您好:

    首先、您是否已使用预期的密钥确认器件是否已成功转换为 HSSE? 您可以使用 e2e.ti.com/.../faq-am6xx-how-to-check-if-device-type-is-hs-se-hs-fs-or-gp 检查器件状态

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

     设备已在 HSSE 中通过、但您可以看到客户 MPK 哈希值为 0。 我想问题就在这里。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但正如您所看到的那样、Cust MPK 哈希值为 0。 我认为问题就在这里。

    我没有看到任何日志显示此哈希为 0。 您能否分享常见问题解答中 python 脚本生成的输出?

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

    您好、Jan、

    感谢您分享快照。

    不幸的是、由于设备是 HSSE、该特定设备已消失/损坏、但未对密钥进行编程。 为将来避免这种情况、请参阅以下主题: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1565012/am6442-how-to-evaluate-keywriter-application-without-a-failure-with-only-one-hs-device

    对于此特定器件、客户是否收集了 TIFS 日志? 这可以让我们深入了解为什么钥匙没有编程。 如果客户可以共享证书 (final_certificate.bin)、我或许能够查看它是否有任何问题。

    此致、

    Prashant  

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

    您好:

    我已经分析了通过邮件共享的证书。 在启用 KEYCNT 和 KEYREV 扩展时、证书禁用了 SMPK 和 BMPK 扩展。 这意味着 TIFS 对 KEYCNT 和 KEYREV 进行编程、但不对 SMPK 和 BMPK 进行编程。 由于对 KEYREV 进行了编程、因此 SoC 已转换为 HSSE。

    有关更多详细信息、请查看您这边的 TIFS 日志。

    请首先禁用 VPP 以确保 TIFS 无法对任何内容进行编程。 在编程之前、它将解析证书并转储 MAIN_UART1 上的输出、可用于分析解析的输出是否符合预期。

    此致、

    Prashant

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

    客户将尝试您提出的建议:   

    在此之前、我想与大家分享我以前用于生成证书和调用的脚本、看看是否有错误。 因为理论上启用了 SMPK、而 BMPK 被禁用。

    因此、答案中的这一点与我所做的不符。

    我已将两个.sh 文件更新到您的驱动器。

    我用于生成 final_certificate.bin 的调用是:  ./gen_keywr_cert.sh -t tifek/ti_fek_public.pem --keycnt 1 --keyrev 1

    谢谢  

    1 月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我用于生成 final_certificate.bin 的调用是:  ./gen_keywr_cert.sh -t tifek/ti_fek_public.pem --keycnt 1 --keyrev 1 [/报价]

    该命令生成用于对 KEYCNT 和 KEYREV 进行编程的证书、而不是对密钥进行编程的证书。 编程的密钥必须使用其标志来明确说明。

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

    您好:

    该脚本使用一个标志 (smpk_info[flag])(由脚本中的“-s|--smpk"参数“参数设置参数设置)来确定是否应启用 SMPK 扩展。 由于客户没有将此“-s|--smpk"标志“标志传递给脚本、因此该标志从未设置为“是“、因此脚本生成了 SMPK 扩展名被禁用的证书。

    我建议在这里显式地将“-s|--smpk"传递“传递给脚本。 客户应将 PKCS 对象名称作为值而不是密钥的路径传递、并在脚本中相应地使用。 这可确保脚本流保持不变。

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

    那么、您的建议是将 PKCS 别名作为“-s|--smpk"参数“参数传递并恢复我所做的更改?

    但通过这种方式、我如何在中使用 PKCS 别名来生成证书? 我无法使用文件或路径。

    我只有一个使用特定命令的别名、我在没有看到私钥值的情况下获得私钥。

    您能否提供脚本草稿并调用.sh 文件?

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

    我刚刚在客户提供的脚本基础上在共享 TI 驱动器文件夹中上传了一个补丁。 我没有测试方法、因此希望它能正常工作。

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

    因此、通过这些更改、可以进行归档 gen_keywr_cert_helpers.sh 恢复并使用 OTP_Keywriter 包中的原始文件吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、通过这些更改、我可以提交文件 gen_keywr_cert_helpers.sh 恢复并使用 OTP_keywriter 包中的原始文件?

    编号 是什么变化 了解客户的变化 在他们拥有的任何文件中。 我只需要修改“gen_keywr_cert.sh",“,以便、以便共享相应的补丁。 他们应该验证我共享的修补程序。

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

    我在没有启用 Vpp 的情况下尝试过、出现了预期的错误:

    根据此错误代码列表 https://software-dl.ti.com/tisci/esd/21_05_01/2_tisci_msgs/security/keywriter.html 、我有 KEYWR_ERR_validation_CERT。

    可能与 VPP 有关、还是我有另一个错误? 抱歉、我没有 MAIN UART 1 的访问权限、也没有 TIFS 日志。

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

    请包含以下功能

    void dump_sysfw_logs()
    {
        uint8_t* ptr = (uint8_t*)0x4405F000;
        uint32_t sz = 0x1000;
    
        DebugP_log("\r\n>> Start SYSFW logs...\r\n");
    
        while(sz)
        {
            DebugP_log("%c", *ptr);
            ptr++;
            sz--;
        }
    
        DebugP_log("\r\nEnd SYSFW logs!!!\r\n");
    }

    并在函数`keywriter_processKeyConfig`中的`Sciclient_service`之后调用它。 该补丁会将 SYSFW 日志转储到 Keywriter 应用所使用的同一 UART 上。

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

    关闭此窗口、因为客户已成功编程 SMPK 以及 SBL 和应用程序成功引导。