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