esp32 - ESP32 闪存加密
问题描述
致力于在 ESP32 上实现闪存加密和安全启动。第一步是让闪存加密工作。我的目标是以下设置:
- 发布模式
- 没有通过 UART 刷新。
- 使用 esp 生成的密钥(无需重新刷新任何内容)。
MA连同我的 2 个 OTA 应用程序分区,我使用了一个子类型 nvs 的数据分区来存储我的设备安全证书以访问我的云后端。
在我的 partitions.csv 文件中,我认为我不能将 nvs 分区设置为加密,因为它会使我的设备变砖。如何确保安全?
我是否需要在 nvs_keys 分区中添加 nvs 加密?
解决方案
NVS 分区也可以加密,但它与加密 Flash 中的所有其他内容不同。简而言之,您需要两个分区。一种是使用 NVS 加密算法加密的 NVS 数据分区。另一个是“NVS 密钥”分区,它保存着以前的加密密钥,这个分区使用标准的 Flash 加密算法进行加密。如果这听起来令人困惑,欢迎来到俱乐部。但是,一旦您深入研究了这一点,它就可以正常工作。
预先生成带有一些数据(例如您的证书)的加密 NVS 数据分区现在需要一个额外的步骤,您可以在将其写入 Flash 之前在计算机上对其进行加密。
推荐阅读
- c++ - Qt 5.6.2(msvc2015-32bit) 模型/视图只读示例意外行为
- javascript - 将时间转换为浮点数
- c# - 如何在统一C#中使对象可序列化
- c# - .Net Core 2.0 的 AppVeyor CI。nuget包的自动发布不起作用
- javascript - React:只切换一个类而不影响现有类
- python - python django中的名称未定义错误
- javascript - 类属性必须是方法。预期 '(' 但看到 '='
- css - 列表不会随变换移动
- azure-devops - 在 VSTS 中,连接到 dockerized ArangoDB 数据库的异步 Jest 测试超时
- python - 在 numpy 中广播数组