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.

[参考译文] PROCESSOR-SDK-AM64X:AM64x 回滚保护

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1431773/processor-sdk-am64x-am64x-rollback-protection

器件型号:PROCESSOR-SDK-AM64X

工具与软件:

你(们)好

我们在了解如何实施回滚保护时遇到了一些困难。 此页面 https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/secure_boot_signing.html?highlight=rollback#signing-an-unencrypted-binary-for-secure-boot 声称、"系统固件软件修订扩展"应填充在 X.509证书中、以强制执行回滚保护。

因此、理论上应该可以回滚保护使用此类证书签名的每个映像。

但是 、根据 https://software-dl.ti.com/tisci/esd/10_00_08/6_topic_user_guides/key_writer.html?highlight=msv#supported-fields 、只有三个专用于软件版本信息的 eFuse 字段、即 SWREV-BOARDCONFIG、SWREV-SBL 和 SWREV-SYSFW。

根据我们可获得的文档、我们假设 SYSFW 通过检查映像证书中包含的"系统固件软件修订版本扩展"来实现回滚保护
相应的电子保险丝字段。

这就引出了一些问题:

  1. 我们的假设是否正确?
  2. tiboot3.bin 映像包含多个二进制文件、这些二进制文件使用单个 X.509证书进行签名(忽略内部证书)。 但是、"系统固件软件修订版本扩展"仅适用
    一个数字。 此数字如何映射到 SWREV-BOARDCONFIG、SWREV-SBL 和 SWREV-SYSFW 电子保险丝字段?
  3. 没有提供电子保险丝字段来保留 tispl.bin 和 u-boot.img 映像(ATF、OPTEE、DTB、A53引导加载程序代码)中所保存的二进制文件的软件版本信息。 所有可用的电子保险丝字段均为
    tiboot3.bin 图像相关的其他内容。 是否正确、tispl.bin 和 u-boot.img 映像不支持回滚保护(因此必须在软件中实现)?
  4. SWREV-*字段由 TI 初始化为值1、正确吗?
  5. SWREV-*字段在调试期间通常保持不变(Keywriter 应用)、但使用 TISCI API 进行修改、正确吗?
  6. 使用 TISCI API 修改 SWREV-*字段时、我们是否必须将 VPP 提高至1.8V?

此致

Walter

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

    我建议参考 K3安全硬件架构 TRM
    https://dr-download.ti.com/authenticated/secure/software-development/application-software-framework/MD-W5I8h4voaD/09.01.00.05/SPRUIM0C-C-windows-installer.exe?
    -"8.1在 EFUSE ROM 中引导密钥"
    软件版本值(96位+ 96位冗余): SWRV
    配置修订版本值(64位+ 64位冗余): CFGRV
    -"8.4软件回滚保护概述"

    希望这些部分有助于澄清您的问题。
    此致!
    -hong

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

    我很了解这个部分、但是他们没有回答我的问题。

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

    2/. 其他参考
    https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/security/sec_cert_format.html#swrev-footnote
    3/. 是的、OTP 电子保险丝中的 SWRV 设计为在第一级 ROT 安全启动中 tiboot3.bin 上提供软件回滚保护选项。
    4/. 有。
    5/. 具体取决于用户如何/何时配置 SWRV
    6/. 是的、对 OTP 电子保险丝(包括 SWRV)进行编程时需要 VPP
    此致!
    -hong

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

    答案2)

    https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/security/sec_cert_format.html#swrev-footnote 读取以下内容:"tiboot3.bin:ROM 将对照为器件电子保险丝中的引导加载程序编程的当前 SWREV 值进行检查、并拒绝证书值是否低于电子保险丝值"。

    为了回滚保护我认为的整个 tiboot3.bin 映像、我们必须更新与引导加载程序相关的 eFuse 字段、即 SWREV-SBL、并保持 SWREV-BOARDCONFIG、SWREV-SYSFW 不变。 这是正确的吗?

    答案5和6)

    不确定我是否误解了某项内容并且/或您没有理解到要点:根据我的理解、更新(即在调试后修改值)任何 SWERV-*字段都无法使用 OTP Keywriter 应用、因为这需要 SoC 处于 HS-SoC 模式(FS 也是如此)。 修改字段的唯一方法是使用 TISCI API、例如调用该 API 的用户空间应用程序、正确吗? 如果是、我们需要在该应用程序中提高 VPP (注意、我不讨论 OTP Keywriter 应用程序)?

    很抱歉坚持。 对我们来说、这些是有关我们必须正确处理的主题的关键问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为了回滚保护整个 tiboot3.bin 映像我认为、我们必须更新与引导加载程序相关的 eFuse 字段、即 SWREV-SBL、并保持 SWREV-BOARDCONFIG、SWREV-SYSFW 不变。 这是正确的吗?

    修改字段的唯一方法是使用 TISCI API、例如调用该 API 的用户空间应用程序、正确吗? 如果是、我们需要在该应用中提出 VPP (请注意、我不讨论 OTP Keywriter 应用)?

    是的、是的。

    下面是第6张幻灯片
    https://dr-download.ti.com/authenticated/software-development/application-software-framework/MD-W5I8h4voaD/09.01.00.05/AM62x_OTP_Keywriter_1Q23_v1.pdf?
    "注意:现场 OTP 编程需要 VPP 电源的软件管理选项。
    回滚保护电子保险丝更新(SWRV)和启用备份密钥(KEY_REVISION)需要
    此致!
    -hong