基于 ESP32-C3 开启 Flash 加密和安全启动并举行 OTA 测试

耶耶耶耶耶  金牌会员 | 2024-7-31 01:58:02 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 860|帖子 860|积分 2580

软件:



  • esp-idf v5.1.2
硬件:



  • ESP32-C3 board

1. 起首,预备一个明文固件 hello-world.bin



  • 基于 esp-idf-v5.1.2\examples\get-started\hello_world 例程,使用如下指令,直接编译,获取明文固件 hello-world.bin
  1. idf.py set-target esp32c3
  2. idf.py build
复制代码
2. 接下来,基于 esp-idf-v5.1.2\examples\system\ota\simple_ota_example 例程举行测试



  • 将明文固件 hello-world.bin 放到 esp-idf-v5.1.2\examples\system\ota\simple_ota_example 目录下

3. 使用如下指令获取 secure boot V2 key

  1. espsecure.py generate_signing_key secure_boot_signing_key.pem --version 2
复制代码
4. 使用如下指令,通过生成的 secure_boot_signing_key.pem 文件对 明文的 hello-world.bin 举行签名,生成被签名的 SIGNED_hello_world.bin

   待 OTA 的固件必须被雷同 Secure Boot Key 举行签名
  1. espsecure.py sign_data --version 2 --keyfile secure_boot_signing_key.pem --output SIGNED_hello_world.bin hello_world.bin
复制代码

5. 为了方便 OTA 测试,我们在当地开启一个 HTTP Server 服务器,将签名的 SIGNED_hello_world.bin 上传到 HTTP Server 中


6. 基于 esp-idf-v5.1.2\examples\system\ota\simple_ota_example 例程,开启如下软件设置



  • 开启 Flash 加密 和 安全启动模式
    → Security features

  • 增大 partition-table 偏移地址
    → Partition Table

  • 设置待 OTA 的 SIGNED_hello_world.bin 文件路径
    → Example Configuration

  • 与 PC 毗连雷同的路由器
    → Example Connection Configuration

  • 开启 HTTP Server OTA 的支持
    → Component config → ESP HTTPS OTA

  • 关闭 NVS 加密
    由于 开启 Flash 加密后,默认也会使能 NVS 加密,但我们这里没有举行 NVS 加密的相关设置,因此需要关闭 NVS 加密的设置
    → Component config → NVS

7. 使用如下指令编译 bootloader ,并下载被签名的 bootloader.bin

  1. idf.py bootloader
  2. idf.py -p COM* boorloader-flash
复制代码
8. 使用如下指令,对工程举行编译,并下载编译后的固件

  1. idf.py build
  2. idf.py -p COM* flash monitor
复制代码
9. 查抄固件运行日志

   注意:确保稳定的供电环境
  

  • 固件首次运行启动后,会先查抄 secure boot 签名验证,然后实行 Flash 加密

  • Flash 加密完成后,会举行软件重启,然后开始运行用户固件

  • 运行 factory 分区的固件,开启 OTA

   OTA 过程会对签名的 OTA 的固件举行加密,并写入 OTA 分区。
  

  • OTA 完成,会再次软件重启,以运行 OTA 分区的固件,此时 OTA 分区的固件已经被 Flash 加密



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表