1、前言
最近有客户在使用 STM32H563 的 OEMiROT。客户发现,OEMiROT 安装的 APP 一定是加密过的。客户询问是否有可能不使用加密解密功能,而只使用签名验签功能。
2、STM32H563OEMiROT 的默认行为
下载的固件默认加密的这一特点可以通过 STM32 Trusted Package Creator 来发现。 文字中的 “encrypted images ”表示生成的供下载使用的固件是加密过的。
同样这一行为也可以通过直接查阅 xml 获知。我们可以看到 xml 文件中有公钥被用于加密。其中加密的对象自然就是固件的 AES 密钥明文。
3、在加密和不加密之间进行切换
OEMiROT 基于 MCUBoot 开发了相应的工具,能够非常方便的切换固件下载时的配置。用户只要做两行改动,就可以配置固件以及 OEMiROT 的行为。例如,只需要注解掉位于STM32CubeRepositorySTM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIApplicationsROTOEMiROT_BootIncmcuboot_config 的 mcuboot_config.h中的两个如下所示的宏,就可以让运行在 MCU 中 OEMiROT_Boot 代码去掉包含相应的固件解密代码,以及让上位机的 STM32 Trusted Package Creator 生成的多个 image 不进行加密。
4、小结
我们可以看到使用 STM32Cube 生态系统可以很容易根据客户自己的 security 需求对OEMiROT 的固件下载时的行为进行定制,例如,打开或者关闭固件下载时加密的功能。
706