ESP32生产级设备的安全特性与OTA更新
1. 量产前的关键要点
在进行大规模生产之前,有几个关键要点需要牢记:
- 确保固件的真实性 :运行在ESP32设备上的固件必须是我们自己的固件。实现这一点的方法是启用安全启动(Secure Boot)。这里的关键问题是加密密钥的生成和私钥的安全性。我们要确保私钥的私密性,只与第三方(如生产和组装工厂)共享公钥。
- 防止固件被读取 :安全启动能保证固件的真实性,但它并不对固件进行加密,这意味着固件是以明文形式烧录的,任何人都可以读取并在其他地方使用。此外,如果我们需要在固件中嵌入敏感数据,这种漏洞的影响可能会超出设备本身。闪存加密可用于防止此类攻击。然而,如果我们共享应用固件,那么在组装工厂阶段,固件仍可能被利用。因此,最好使用两种不同的固件二进制文件:第一种用于组装工厂验证硬件,第二种是真正的应用程序,在受信任的工厂区域使用闪存加密进行烧录。
2. 数字签名(DS)
对于物联网设备,安全启动和闪存加密只是安全的一部分。在需要在设备上保存私钥的场景中(例如与安全服务器进行相互认证),我们需要对该密钥提供更高的安全性。为此,Espressif在较新的ESP32系列中引入了数字签名外设。
2.1 数字签名外设的工作原理
常见的保护私钥的方法是在硬件设计中集成安全元件。例如,ESP32 - WROOM - 32SE模块集成了Microchip的ATECC608A芯片。安全元件存储应用程序的私钥,当需要进行加密操作(如签名或验证)时,安全元件会使用关联的私钥运行底层安全算法,并将结果返回给应用程序,无
超级会员免费看
订阅专栏 解锁全文
22

被折叠的 条评论
为什么被折叠?



