如何开启ESP32 Secure Boot V2 (SBV2)
扫描二维码
随时随地手机看文章
ESP32平台上启动Secure Boot V2的分步指南。安全启动可以在其他ESP32*平台上类似地启用。
这是在ESP32上启用安全引导(secure boot V2 - SBV2)的分步指南。我们将需要一台运行Linux的PC来运行命令并与ESP32设备通信。
我们将假设IDF引导加载程序和相关的应用程序映像,并在本指南中使用它们作为示例。要使用MCUboot引导加载程序和Zephyr应用程序映像启用SBV2,请参考本文档。
有用的参考
下面是一些有用的参考资料,可以帮助您理解ESP32平台的安全引导和安全引导启用操作
•在ESP32开发平台上开启Secure Boot V2
•ESP32平台的安全启动V2功能
•Espressif DevCon23 -在开发和生产的ESP32平台上启用V2安全启动功能
所需的硬件
两个未熔断的ESP32 ECO3及以后版本:一个用于开发熔断,另一个用于生产熔断。在以下开发板上进行了测试
•ESP32-DevKitC-32E (Mouser link;Datasheet)
在开发中:启用SBV2的步骤
•在Linux开发机上安装Docker引擎。
•在开发机器上构建Docker容器映像,用于安全引导熔断和固件签名。
•将未熔化的ESP32开发板通过USB连接到开发机,运行Docker容器
•在容器内,通过闪烁预构建的(和签名的)“void app”固件映像来吹eFuses
现在启用了安全引导。从现在开始,应用程序映像中的任何更新都需要对映像进行签名才能在此板上启动。
在开发中:构建和签名自定义应用程序映像的步骤
•在主机上,将应用程序源文件夹放入共享的/目录中,在容器中,将应用程序源文件夹复制到/home/esp/app/。我们将使用一个ESP-IDF示例应用程序作为示例。内部容器
•在容器中,闪烁已签名的应用程序
在生产中:启用SBV2的步骤
•将未熔化的ESP32开发板通过USB连接到开发机,运行Docker容器
•将void_app固件映像从容器复制到主机。在容器内,在/home/esp/下
•在主机上,从web浏览器打开蓟控制中心,创建一个项目,然后进入“签名固件”菜单。点击“+签名固件包”按钮,添加新的签名固件包:为其选择一个名称,选择“ESP32”和“ESP-IDF”作为硬件类型和固件类型,并上传放在shared/文件夹中的bootloader.bin和void_app.bin。
•单击“Create”按钮,使用云密钥管理系统中管理的生产签名密钥对引导加载程序和应用程序映像进行签名。下载以后缀。patchch_到前面提到的共享/文件夹。
•在容器内部,刷新产品签名引导加载程序和应用程序映像
在生产中:签名自定义应用程序映像的步骤
•将生产融合的ESP32开发板通过USB连接到开发机上,运行Docker容器
•在容器内,按照上面“在开发中构建和签名自定义应用程序映像的步骤”一节中描述的步骤构建应用程序映像,并将开发签名应用程序映像apps/hello_world/build/hello_world.bin和分区表映像apps/hello_world/build/partition_table/partition-table.bin复制到共享/文件夹中。
•在主机上,在对void_app进行签名的同一个项目的TCC中创建一个新的签名固件包,并将开发签名的应用程序映像上传到该项目中(如果引导加载程序没有更改,可以忽略引导加载程序映像)。为签名的固件包选择一个有意义的名称,并分别选择“ESP32”和“ESP-IDF”作为硬件类型和固件类型。单击“Create”按钮,使用云密钥管理系统中管理的生产签名密钥对应用程序映像进行签名。下载以后缀。patchch_到共享/文件夹。
•在容器内部,刷新生产签名应用程序映像
在其他ESP32平台(ESP32- s2、ESP32- s3)开启SBV2
在其他ESP32平台上,例如ESP32- s2和ESP32- s3,可以在开发和生产中以类似的方式启用安全引导V2。
本文编译自hackster.io





