ESP32 闪存加密
ESP32 Flash Encryption
致力于在 ESP32 上实现闪存加密和安全启动。第一步是让闪存加密工作。我的目标是以下设置:
- 发布模式
- 没有通过 UART 刷新。
- 使用 esp 生成的密钥(无需重新刷入任何东西)。
M连同我的 2 个 OTA 应用程序分区,我使用了子类型 nvs 的数据分区来存储我的设备安全证书以访问我的云后端。
在我的 partitions.csv 文件中,我认为我无法将 nvs 分区设置为加密,因为它会使我的设备变砖。如何确保安全?
我需要在 nvs_keys 分区中添加 nvs 加密吗?
NVS 分区也可以是 encrypted,但它与加密 Flash 中的所有其他内容不同。简而言之,您需要两个分区。一个是您的 NVS 数据分区,它使用 NVS 加密算法进行加密。另一个是“NVS keys”分区,它保存了以前的加密密钥,这个分区使用标准的 Flash 加密算法进行加密。如果这听起来令人困惑,欢迎来到俱乐部。但是一旦你深入了解它,它就可以正常工作。
预生成带有一些数据(例如您的证书)的加密 NVS 数据分区现在需要一个额外的步骤,您可以在将其写入闪存之前在您的计算机上对其进行加密。
致力于在 ESP32 上实现闪存加密和安全启动。第一步是让闪存加密工作。我的目标是以下设置:
- 发布模式
- 没有通过 UART 刷新。
- 使用 esp 生成的密钥(无需重新刷入任何东西)。
M连同我的 2 个 OTA 应用程序分区,我使用了子类型 nvs 的数据分区来存储我的设备安全证书以访问我的云后端。
在我的 partitions.csv 文件中,我认为我无法将 nvs 分区设置为加密,因为它会使我的设备变砖。如何确保安全?
我需要在 nvs_keys 分区中添加 nvs 加密吗?
NVS 分区也可以是 encrypted,但它与加密 Flash 中的所有其他内容不同。简而言之,您需要两个分区。一个是您的 NVS 数据分区,它使用 NVS 加密算法进行加密。另一个是“NVS keys”分区,它保存了以前的加密密钥,这个分区使用标准的 Flash 加密算法进行加密。如果这听起来令人困惑,欢迎来到俱乐部。但是一旦你深入了解它,它就可以正常工作。
预生成带有一些数据(例如您的证书)的加密 NVS 数据分区现在需要一个额外的步骤,您可以在将其写入闪存之前在您的计算机上对其进行加密。