主题:SysConfig 中讨论的其他器件
工具/软件:
尊敬的团队:
我正在探索如何使用我们公司的 PKS 服务器对我们的固件进行签名、然后在 MCUBOOT imgtool 中使用它进行签名。
我在 SDK 公钥中看到、私钥和根密钥可用、但未找到有关如何创建这些文件的文档。
请告知我们这方面的一些信息。 这对我们有很大帮助。
方面
Ilan T
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.
工具/软件:
尊敬的团队:
我正在探索如何使用我们公司的 PKS 服务器对我们的固件进行签名、然后在 MCUBOOT imgtool 中使用它进行签名。
我在 SDK 公钥中看到、私钥和根密钥可用、但未找到有关如何创建这些文件的文档。
请告知我们这方面的一些信息。 这对我们有很大帮助。
方面
Ilan T
你好、 Ilan T、
在我们的 SDK 中、我们提供了有关此方面的文档:
OAD 存储和安全性—SimpleLink 低功耗 F3 SDK BLE5-Stack 用户指南9.10.00文档
而在我们的培训中:
正如 MCUBoot 本身所记录的、由于我们在这里使用 imgtool、因此我建议阅读以下内容:
谢谢、
Alex F
尊敬的 Alex F:
我们的目标是使用我们公司的密钥生成服务器来生成密钥对。
此外、我们希望在我们的产品中使用硬件安全存储元件来保护密钥、然后是 MCU 启动
是否应该从硬件安全存储元素中读取密钥以便执行映像签名验证?
是否必须使用 imgtool 来生成用于固件签名的密钥对?
是, imgtool 命令"./scripts/imgtool.py keygen -k filename.pem -t ecdsa-p256 "是需要生成 keyfile
或者应该使用任何其他外部密钥生成程序(比如我们公司的安全服务器生成密钥)?
-如果使用外部密钥生成器工具,其中一个输入可以是签名算法,
您是否看到外部密钥生成器工具需要任何其他输入?
我已阅读 docs.mcuboot.com/imgtool.html 、其中提到了3个步骤、
1.用于生成私钥:
/scripts/imgtool.py keygen -k filename.pem -t ecdsa-p256
-这里提到了这个密钥文件[ ]是用于对图像进行签名的内容。
-所以这应该是私人密钥文件,是我的理解正确
2.下一个步骤是如何从 keyfile 中提取公钥。
/scripts/imgtool.py getpub -k filename.pem
-是[ ]、与使用命令生成的相同
/scripts/imgtool.py keygen -k filename.pem -t ecdsa-p256
3.签署映像:
${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/tools/common/mcuboot/imgtool 符号--header-size 0x100 --align 4
--插槽尺寸0x3B000 --版本1.0.0 --垫-接头-垫
--- key ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/source/third_party/mcuboot/root-ec-p256.pem
${BuildArtifactFileBaseName}_noheader.bin
${BuildArtifactFileBaseName}_v1.bin
在上述步骤中、用于对固件"basic_ble_oad_dual_image_LP_EM_CC2340R53_freertos_ticlang"签名
输入"root-ec-p256.pem"密钥、
是使用命令[./scripts/imgtool.py keygen -k 生成的密钥文件 root-EC-P256.pem -t ecdsa-p256]、
您能否确认?
是"root-EC-P256.pem"是 MCU 引导在他们的文档中提到的密钥文件,如
"开发密钥分布式 MCUboot、可用于测试"??
另外在 SDK 中也可以看到"C:\ti\simplelink_lowpower_f3_SDK_8_40_00_61\source\third_party\mcuboot"
以下密钥可用、请详细说明这些密钥用于 MCU 引导的用途
安全启动过程。
enc-ec256-priv.pem
enc-ec256-pub.pem
root-EC-P256.pem
方面
Ilan
您好: Ilan、
要评论您的帖子:
是的、您需要执行上面列出的步骤。
1.我们需要使用 imgtool 脚本使用您的特定目标密钥为您的映像签名
2.我们需要再次使用 imgtool 脚本生成公钥
3.最后在项目的编译后步骤中,您需要将"通用"密钥更改为目标密钥。
-在编译后步骤主题上,应该可以只"覆盖" SDK 中的原始密钥。
"注意:密钥 root-EC-P256.pem 仅用于示例。 为您的应用程序提供您自己的密钥。"
另请注意、在 MCUBoot 工程本身中、我们有一些关键相关的文件:
进入安全启动:
"
MCUboot 也可以作为安全启动的次级安全引导加载程序启用。
打开项目的 *.syscfg
文件。 安全启动配置可在"TI Devices"->"Device Configuration"-> Security Configuration"下找到。 If 次级安全引导加载程序已启用 这会在 SysConfig 和中选中 SSB 定义插槽后、安全启动可以验证 MCUboot、验证完成后、将控制权转移给它。 然后、MCUboot 可以验证每个槽位中的映像。 启动加载程序的基础和大小由安全启动确定、这意味着 MCUboot SysConfig 中的那些选项将被安全启动覆盖。 在本例中、MCUboot 仍然能够控制插槽定义。
请注意、MCUboot 不支持安全启动支持的相同身份验证算法。 这意味着由 imgtool 签名的应用程序将无法用于安全启动。 同样、由 sbtool 签名的应用程序也不能用于 MCUboot。
secure_boot
有关如何启用安全启动并对安全启动映像签名的更多详细信息、请参阅 SDK 示例。"
谢谢、
Alex F