1、前言
最近有客戶在使用 STM32H563 的 OEMiROT??蛻舭l(fā)現(xiàn),OEMiROT 安裝的 APP 一定是加密過的??蛻粼儐柺欠裼锌赡懿皇褂眉用芙饷芄δ?,而只使用簽名驗簽功能。
2、STM32H563OEMiROT 的默認(rèn)行為
下載的固件默認(rèn)加密的這一特點可以通過 STM32 Trusted Package Creator 來發(fā)現(xiàn)。 文字中的 “encrypted images ”表示生成的供下載使用的固件是加密過的。
同樣這一行為也可以通過直接查閱 xml 獲知。我們可以看到 xml 文件中有公鑰被用于加密。其中加密的對象自然就是固件的 AES 密鑰明文。
3、在加密和不加密之間進行切換
OEMiROT 基于 MCUBoot 開發(fā)了相應(yīng)的工具,能夠非常方便的切換固件下載時的配置。用戶只要做兩行改動,就可以配置固件以及 OEMiROT 的行為。例如,只需要注解掉位于STM32CubeRepositorySTM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIApplicationsROTOEMiROT_BootIncmcuboot_config 的 mcuboot_config.h中的兩個如下所示的宏,就可以讓運行在 MCU 中 OEMiROT_Boot 代碼去掉包含相應(yīng)的固件解密代碼,以及讓上位機的 STM32 Trusted Package Creator 生成的多個 image 不進行加密。
4、小結(jié)
我們可以看到使用 STM32Cube 生態(tài)系統(tǒng)可以很容易根據(jù)客戶自己的 security 需求對OEMiROT 的固件下載時的行為進行定制,例如,打開或者關(guān)閉固件下載時加密的功能。