您现在的位置是:首页 >生活 > 2022-04-14 10:30:48 来源:

基于MCUboot的Arduino安全启动介绍

导读 官方Arduino开发团队本周宣布推出基于MCUboot的新引导加载程序,以帮助他们改进Arduino产品上可用的安全功能和固件范围。对于那些不熟悉MCU

官方Arduino开发团队本周宣布推出基于MCUboot的新引导加载程序,以帮助他们改进Arduino产品上可用的安全功能和固件范围。对于那些不熟悉MCUboot的人,它采用安全引导加载程序解决方案的形式。提供故障安全固件身份验证和安全固件更新机制,以及许多其他功能,例如更新加密、更新回滚和应用程序引导。

“为了支持ArduinoOTA,更新文件被写入内存并由引导加载程序处理以更新应用程序。对于Portenta产品,该文件被放置在开发板QSPI闪存的第二个分区中。这意味着我们的SLOT1被放置在QSPI闪存中。它使用的默认交换方法是交换暂存。“

“暂存区域,映射到一个名为scratch.bin的文件,被放置在QSPI闪存中。Whenencryptedimagesarechosenfirmwarecopiesbetweenexternalmemoriesarealwaysencrypted;默认情况下,MCUboot在将更新写入暂存区之前解密更新,处理所需的偏移量。为了保证数据安全,在写入之前执行了一个额外的步骤,对整个暂存数据进行重新加密。当图像被回滚时,来自未加密内部存储器的数据在写入SLOT1之前被加密。”

“默认情况下,密钥不会加载到闪存中,引导加载程序将启动任何草图。加载密钥后,MCUboot将始终验证映像签名并仅启动有效的草图;如果通过读取TLV检测到加密更新,MCUboot将解开加密密钥并即时解密图像,同时将其移动到内部闪存中。”