ESP32-c3 Flash 加密未达到预期效果

问题描述 投票:0回答:1

我尝试使用 VScode 和 esp-idf 扩展在 ESP32-c3-mini-1 项目上实现 Flash 加密。任务是锁定闪存,这样就没有人可以读取固件。在对官方文档页面进行一些研究后,Flash 加密似乎是我需要的解决方案。因此,我首先使用自己的密钥实施开发模式加密。我按照指南如何生成密钥,如何将其刻录到 eFuse 中。然后通过menuconfig调整设置。禁用引导加载程序消息以适应分区大小。完成所有操作后,我刷新测试 fw 以查看是否刷新成功。它工作得很好,然后我稍微改变了我的代码(基本上,我打印了不同的文本)并再次刷新它。然后,我尝试使用此命令读取闪存数据

esptool.py --port COMX --baud 115200 read_flash 0 0x400000 on_off.bin

我成功地读出了 .bin 文件。然后使用此命令刷新后:

esptool.py --chip esp32-c3 --port COMX --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x00 C:\Users\pkasu\Desktop\test_workspace\on_off.bin

一切似乎都很顺利。总而言之,我成功地读出了加密的闪存数据,那么如果我可以简单地读出我的固件并再次闪存它,那么加密的全部意义是什么?有人可以解释一下 Flash 加密及其作用吗?

另外,我也想使用发布模式,但据我了解,我无法使用 USB 刷新我的固件(目前我正在使用内部 USB/UART 转换器):

在Release模式下,UART Bootloader无法执行Flash加密操作。新的纯文本图像只能使用无线 (OTA) 方案下载,该方案将在写入闪存之前对纯文本图像进行加密。

所以如果我想使用COMPORT和USB线刷新我的固件,我只能使用开发模式加密?

encryption esp32 esp-idf flash-memory
1个回答
0
投票

您已经正确理解了 Flash 加密。如果设置安全,发布模式闪存加密将禁用通过 UART 引导加载程序对系统的所有访问和操作。这是永久性的并且是有意为之的。如果您想再次更新该芯片上的固件,则必须在启用 Flash 加密之前实施一些 OTA 解决方案,否则您将根本无法更新固件。曾经。

开发模式是一种中间开发工具,可帮助您试验闪存加密,而不会因简单的错误而导致芯片变砖。它并不意味着安全,它只是帮助您达到可以启用发布模式的模式。

© www.soinside.com 2019 - 2024. All rights reserved.