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**** 2835145 points

Other Parts Discussed in Thread: UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1612832/cc2745r10-q1-secure-boot-key-update-process

器件型号: CC2745R10-Q1
Thread 中讨论的其他器件: UNIFLASHSYSCONFIG

我一直使用使用使用 SDK 中提供的测试密钥签名的二进制文件。 为了添加客户私钥来对二进制签名、执行了以下步骤:  
1.生成密钥使用:  
./ imgtool keygen -- key ~/Desktop/app-rsa-3k-pkcs-priv.pem -- type RSA-3072.

./ imgtool keygen -- key ~/Desktop/ssb-rsa-3k-pkcs-priv.pem -- type RSA-3072.

./ imgtool keygen -- key ~/Desktop/kui-rsa-3k-pkcs-priv.pem -- type RSA-3072.

2.使用以下方法生成密钥更新映像:

./sbtool init --key-update-key Kui-RSA-3k-PKCS-priv.pem --app-key app-RSA-3k-PKCS-priv.pem --SSB-key SSB-RSA-3k-PKCS-priv.pem

3.刷写由主槽位中的测试密钥(来自 SDK)签名的应用程序映像。

4.使用生成的 app_kui.bin 并通过 Uniflash 在主闪存区域中的未使用地址(例如 0xE0000)处进行刷写。

5.调用当前应用程序中的以下代码:

HapiSbSetUpdateImageAddress( 0xE0000 );
HapiSbSetId(3 );
 
6.重置

7.使用生成的 sb_key_ring_init.h 和生成的 APP-RSA-3k-PKCS-priv.pem 密钥对我的新应用程序签名、并在辅助槽位中刷写闪存。

 

但是、我看到只有较旧的应用程序运行、而不是使用客户私钥签名的较新应用程序。

是否有方法可以验证密钥更新是否成功? 或者、流程中是否有遗漏/不正确的内容?

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

    您好:

    新应用程序的版本是否高于之前刷写的版本? 您可以在 SysConfig 中的“Device Configuration“部分查看此图。 此外、启用的 UPDATE 模式是什么?

    相关的 SysConfig 设置:

    此致、

    Nima Behmanesh

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

    是的、新映像的版本更高。  
    更新模式为“XIP 恢复启用“。

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

    您好、是否有更新?

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

    您好、

    很抱歉我们稍后才回复。

    您说您已将映像刷写到闪存的未使用部分、您是否介意向我发送您的安全配置?

    此致、

    Nima Behmanesh

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

    您好、我观察到、如果我擦除较旧的映像(较低版本)并仅刷写使用新密钥(较高版本)签名的映像、则更新过程后将按预期启动。
    但是、如果也存在较旧的映像、那就是启动的映像。 是否有办法在旧映像仍然存在时启动新映像?

    我尝试增加新图像的安全计数器,但它似乎没有帮助.

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

    您好、

    您是否也更改了版本? 您还必须在“安全配置“中更改“版本“。 如果它们具有相同的版本、则将执行最低插槽中的版本。

    此致、

    Nima Behmanesh

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

    您好、是的、我更改了安全配置中的版本。 版本更改反映在生成的二进制标头中。