乐鑫技术交流
直播中

rosa

12年用户 1232经验值
私信 关注
[问答]

在ESP32-C3中安全启动v2支持三个密钥签名的提交,请问具体怎么操作?

IDFv4.3.2版本中,在安全启动V2的文档中提到"How To Enable Secure Boot V2",但是在其中只有指定密钥,没有提到密钥烧录的位置。

那么我想烧录三个密钥,具体的步骤是什么?
                        

回帖(1)

迷你洼哇

2024-6-17 17:26:57
要在ESP32-C3中使用安全启动V2并支持三个密钥签名的提交,您需要按照以下步骤操作:

1. **生成密钥**:首先,您需要生成三对密钥(共6个密钥),分别是三个私钥和三个公钥。您可以使用`espsecure.py`工具或其他工具生成这些密钥。

2. **配置项目**:在您的ESP-IDF项目中,确保已经安装了v4.3.2版本。然后,根据您的需求修改`sdkconfig`文件,启用安全启动V2。您可以在`sdkconfig`文件中找到以下选项并设置为`y`:
   ```
   CONFIG_SECURE_BOOT_ENABLE
   CONFIG_SECURE_BOOT_V2_ENABLED
   ```

3. **烧录密钥**:在ESP-IDF中,您可以使用`espsecure.py`工具烧录密钥。首先,确保您的设备已连接并可识别。然后,执行以下命令烧录三个密钥:
   ```
   ./espsecure.py --port /dev/ttyUSB0 --baud 115200 write_flash_key secure_boot_v2_key0.bin 0x8000
   ./espsecure.py --port /dev/ttyUSB0 --baud 115200 write_flash_key secure_boot_v2_key1.bin 0x9000
   ./espsecure.py --port /dev/ttyUSB0 --baud 115200 write_flash_key secure_boot_v2_key2.bin 0xa000
   ```
   这里的`secure_boot_v2_key0.bin`、`secure_boot_v2_key1.bin`和`secure_boot_v2_key2.bin`分别是三个公钥文件,`0x8000`、`0x9000`和`0xa000`是它们在设备上的烧录位置。

4. **生成签名**:使用三个私钥对您的固件进行签名。您可以使用`espsecure.py`工具生成签名:
   ```
   ./espsecure.py sign_data --keyfile private_key0.pem --output signed_app0.bin app.bin
   ./espsecure.py sign_data --keyfile private_key1.pem --output signed_app1.bin app.bin
   ./espsecure.py sign_data --keyfile private_key2.pem --output signed_app2.bin app.bin
   ```
   这里的`private_key0.pem`、`private_key1.pem`和`private_key2.pem`分别是三个私钥文件,`app.bin`是您的固件文件。

5. **烧录固件**:将签名后的固件烧录到设备上。您可以使用以下命令:
   ```
   esptool.py --port /dev/ttyUSB0 write_flash 0x10000 signed_app0.bin
   esptool.py --port /dev/ttyUSB0 write_flash 0x20000 signed_app1.bin
   esptool.py --port /dev/ttyUSB0 write_flash 0x30000 signed_app2.bin
   ```
   这里的`0x10000`、`0x20000`和`0x30000`是固件在设备上的烧录位置。

6. **启动设备**:完成以上步骤后,设备将使用安全启动V2进行启动,并验证烧录的固件是否有效。

请注意,这些步骤可能需要根据您的具体硬件和软件环境进行调整。在实际操作过程中,确保遵循ESP-IDF的文档和指南。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分