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.

[参考译文] CC2745R10-Q1:有关安全启动的问题

Guru**** 2692065 points

Other Parts Discussed in Thread: SYSCONFIG, UNIFLASH, CC2745R10-Q1

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1578928/cc2745r10-q1-questions-about-the-secure-boot

器件型号: CC2745R10-Q1
Thread 中讨论的其他器件: SYSCONFIG、UNIFLASH

您好的团队、

我支持的工程需要安全启动、但我们对是否需要与您进行配置有一些疑问。

  1. 是否可以手动启用和禁用安全启动?
    启用该功能后、通过 SWD 使用 CCS 的调试会话是否会受到影响?  我们知道它在设备配置中定义的 SCFG 中、根据经验、该区域不可更改。 我们想提前确认这些事情,谢谢。
  2. 安全启动是否必须与更新模式一起使用?
    我怀疑安全启动旨在与次级引导加载程序配合使用、但如果器件未来不需要 OTA、我们应该选择只需要验证单个映像 XIP 禁用 ?   
  3. 我们必须在 SysConfig 中将私钥馈送到器件吗?
    我们有这个问题、因为在实际的生产线中、私钥存储在 HSM 云中、工程师无法获取、只有生产线的工作人员才能获取私钥并将其输入到器件中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hi Island、

    是否可以手动启用和禁用安全启动?
    启用该功能后、通过 SWD 使用 CCS 的调试会话是否会受到影响?  我们知道它在设备配置中定义的 SCFG 中、根据经验、该区域不可更改。 我们希望提前确认这些内容、谢谢您。

    否、无法手动启用/禁用它。 安全启动映像有一个标头、这意味着如果您要关闭安全启动、复位矢量表将不正确、器件会尝试引导至存储器中的错误位置。 启用后、通过安全启动生成的映像将需要启用安全启动、因为它们是以这种方式进行配置的。

    什么是用例?

    安全启动是否必须同时使用更新模式?
    我怀疑安全启动旨在与次级引导加载程序配合使用、但如果器件未来不需要 OTA、我们应该选择只需要验证单个映像 XIP 禁用 ?   [/报价]

    是的、没关系。 如果没有 OTA 计划、那么无论您选择哪种类型的更新模式、都没有实际计划。 只需确保辅助插槽的起始地址和长度均为 F。

    我们必须在 SysConfig 中向器件馈送私钥吗?
    我们有这个问题,因为在实际生产线中,私钥存储在 HSM 云中,工程师无法获取,只有生产线的工作人员才能获取私钥并将其输入到设备中。[/报价]

    我需要更多这方面的信息。 是否计划让每个设备都拥有唯一的私钥?

    此致、

    Nima Behmanesh

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

    嗨、Nima。

    我对安全启动密钥配置有疑问。

    在生产环境中、私钥存储在 HSM 服务器上、且.pem 文件不可用。 如果私钥文件不可用、则无法在 syscfg 中配置安全启动。 为什么我需要在 syscfg 中输入私钥? 我知道公钥存储在 SCFG 文件中。 是否有其他配置方法?

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

    NIMA、

    我需要更多有关这方面的信息。 每个设备是否都有唯一的私钥的计划?

    每个器件都具有唯一的私钥、或者每条生产线都具有唯一的私钥。 或不同时间有不同的私钥。

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

    您好:

    我相信唯一的方法就是直接使用 sbtool。 例如、我们来了解编译后处理步骤:

    突出显示的行是使用该密钥的编译后处理步骤。

    如果我们详细查看步骤、您将看到它从 ti_secure_boot_properties.json 文件中获取信息:

    C:/ti/SDKs/simplelink_lowpower_f3_sdk_9_14_00_xx/tools/common/sbtool/sbtool sign --sb-props C:/workspace_ccstheia/secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang/Debug/syscfg/ti_secure_boot_properties.json --config xcfg.hex secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.bin secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang_sb.bin

    该  ti_secure_boot_properties.json  文件是从 SysConfig 生成的。 但是、如果我们查看此文件、我们可以看到有一个名为“key"的“的字段:

    这是最终需要更新的文件。

    这是我的建议:

    1.首先使用一个密钥生成有效的 ti_secure_boot_properties.json 文件、查看有效的 ti_secure_boot_properties.json 文件是什么样子、以及如何在.json 文件的“key"字“字段中格式化密钥。

    2.使用这个.json 文件、创建一个脚本、在为器件的.hex 文件签名之前更改“key"字“字段。

    此致、

    Nima Behmanesh

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

    嗨、Nima

    关于上述修改 JSON 文件并使用 sbtool 插入密钥和签名十六进制的方法、我有以下问题:

    1.在`ti_secure_boot_properties.json`文件中、是否是需要输入的私钥? 网络​​安全要求明文私钥不能离开 HSM 服务器;服务器最多只能获取公钥。 根据这些规则、如何修改十六进制关键字段?

    2.插入十六进制的密钥是公钥还是私钥? 钥匙插入是否解决了​​SCFG 的钥匙环区域?

    3、签名工具是否需要纯文本私钥才能完成签名? sbtool 能否通过 HSM 服务器接口执行签名和加密? 如果该工具无法调用 HSM 接口、能否提供签名工具的源代码、以便我们在服务器上部署签名过程?

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

    您好:

    [quote userid=“613452" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1578928/cc2745r10-q1-questions-about-the-secure-boot/6111218 在`ti_secure_boot_properties.json`文件中、是否是需要输入的私钥? 网络​​安全要求明文私钥不能离开 HSM 服务器;服务器最多只能获取公钥。 根据这些规则、如何修改十六进制关键字段?

    密钥字段具有指向私钥的路径、而不是密钥本身。 这意味着私钥不会离开服务器。 请考虑以下情形:

    1.生成应用程序映像 app.hex。

    2.将 app.hex 发送到 HSM 服务器进行签名,并在服务器上运行 sbtool。

    3.接收已签名的 app_sb.hex。

    [quote userid=“613452" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1578928/cc2745r10-q1-questions-about-the-secure-boot/6111218 插入十六进制的密钥是公钥还是私钥? 钥匙插入地址是​​SCFG 的钥匙环区域吗?

    它都不是公钥的哈希值。

    请参阅 TRM 中的第 10.4 章以供参考。

    [quote userid=“613452" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1578928/cc2745r10-q1-questions-about-the-secure-boot/6111218 签名十六进制的工具是否需要纯文本私钥才能完成签名? sbtool 能否通过 HSM 服务器接口执行签名和加密? 如果该工具无法调用 HSM 接口、能否提供签名工具的源代码以便我们可以在服务器上部署签名过程?

    我不太确定 HSM 接口的含义。 如果服务器上存在 sbtool、则您将应用映像发送到要签名的服务器、除了已签名的应用映像外、任何其他情况下都不会离开服务器。

    此致、

    Nima Behmanesh

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

    嗨、Nima

      我们计划在 HSM 服务器上使用脚本来实现 sbtool 的签名函数。 您能否向我们提供数据包格式、包括数据包中每个区域的地址和大小、以及所使用的加密方法?  

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

    您好:

    您能否向我们提供数据包格式、包括数据包中每个区域的地址和大小、以及所使用的加密方法?  [/报价]

    C:/ti/SDKs/simplelink_lowpower_f3_sdk_9_14_00_xx/tools/common/sbtool/sbtool sign --sb-props C:/workspace_ccstheia/secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang/Debug/syscfg/ti_secure_boot_properties.json --config xcfg.hex secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.bin secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang_sb.bin

    以上全部是所需的、没有特定的数据包格式或地址。 以下是参数的细分:

    1.--sb-props ti_secure_boot_properties.json  

    此.json 文件由 SysConfig 生成、具体取决于您如何为工程配置安全启动。

      2.--config xcfg.hex secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.bin

    这是您为工程配置的 CCFG 和 SCFG。 这是.hex 文件的一部分、会在编译后处理步骤中被剥离。 您可以通过示例工程了解如何实现此操作: /examples/nortos/LP_EM_CC2745R10_Q1/secureboot:

    C:/ti/ccs2031/ccs/tools/compiler/ti-cgt-armllvm_4.0.4.LTS/bin/tiarmhex -order MS --memwidth=8 --romwidth=8 --intel -o secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.hex secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang
    C:/ti/ccs2031/ccs/tools/compiler/ti-cgt-armllvm_4.0.4.LTS/bin/tiarmobjcopy -O binary secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.out secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.bin --remove-section=.ccfg --remove-section=.scfg
    C:/ti/ccs2031/ccs/tools/compiler/ti-cgt-armllvm_4.0.4.LTS/bin/tiarmobjcopy -O ihex secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.out xcfg.hex --only-section=.ccfg --only-section=.scfg
    C:/ti/SDKs/simplelink_lowpower_f3_source_sdk_9_14_00_35/tools/common/sbtool/sbtool sign --sb-props C:/ti/SDKs/theia_workspaces/cpu_utilization/secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang/Debug/syscfg/ti_secure_boot_properties.json --config xcfg.hex secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang.bin secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang_sb.bin

    第二个参数是工程中取消符号的.bin 文件的路径(该文件去除了 CCFG/SCFG)。 上面的编译后处理步骤展示了一个示例、说明如何从.hex 文件生成该.bin 文件。

     4. secureboot_LP_EM_CC2745R10_Q1_nortos_ticlang_sb.bin

    已签名二进制文件的名称。

    编译后处理步骤是您使用 sbtool 所需的所有步骤和参数。

    此外、我上面包括的项目中的自述文件:  /examples/nortos/LP_EM_CC2745R10_Q1/secureboot

    提供了自述文件、其中包含有关所需步骤和工具的更多信息。

    如果您需要更多信息、请告诉我。

    此致、

    Nima Behmanesh

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

    嗨、Nima

       我们使用了 以下配置的“secureboot_LP_EM_CC2745R10-Q1_nortos_ticlang"示“示例来生成“secureboot_LP_EM_CC2745R10-Q1_nortos_ticlang_sb.hex"签名“签名文件。 使用 UniFlash 将其烧录到 CC2745 后、UniFlash 报告以下错误、并且无法再烧录 HSM。 以下配置是否存在问题、或者无法通过 UniFlash 烧录已签名的十六进制文件来直接验证安全启动?  

    燃烧过程:
    步骤 1. 使用 jflash-lite 擦除整个芯片。
    步骤 2. 使用 UniFlash 进行烧录`secureboot_LP_EM_CC2745R10-Q1_nortos_ticlang_sb.hex`、但 UniFlash 报告错误。
    步骤 3. 刻录 HSM、UniFlash 报告错误。

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

    您好:

    这是因为 在 将 HSM 固件加载到芯片上之前、您要加载一个启用安全启动的项目。 必须颠倒顺序、否则您将最终遇到 ROM 错误。 这是因为安全启动需要 HSM frimmware。

    刷写顺序应为:

    1.首先刷写一个临时 CCFG/SCFG 而没有任何限制。

    2.刷新 HSM 固件。

    3.刷新安全启动项目。

    请告诉我这是否适合您。

    此致、

    Nima Behmanesh

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

    我遇到了类似的事情:

    1.闪存安全启动项目
    2.由于未编程 HSM 固件、因此不运行
    3、编程 HSM
    4、安全启动项目仍然没有运行
    5.重新编程安全启动项目
    6.现在安全启动项目运行

    为什么程序不在第 4 阶段运行?

    根据 TRM 启动流程、在安全启动运行之前对 HSM 进行验证




    ROM 紧急锁存是否会导致安全启动项目即使在随后对 HSM 固件进行编程时也无法运行?

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

    您好:

    这可能是由于 ROM 错误隔离闪存和锁定 HSM 配置所致。

    通常、始终建议在任何启用安全启动的项目之前刷写 HSM 固件。

    此致、

    Nima Behmanesh

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

    讨论离线、关闭此主题。