STM32今年推出的新产品STM32H5除了兼具性能、功耗与集成度的优势外还进一步提升了产品的安全特性,在信息安全保护方面带来了很多新的特性以及创新的解决方案,例如:
安全启动BootROM ST-iROT
安全调试Debug Authentication
基于新的Product State机制的生命周期管理
HDP/HDPL Flash隐藏保护区及其多级保护级别
Secure Storage专用安全存储OptionByteKey(obk)区
安全管理器Secure Manager以二进制形式提供的安全解决方案
需要了解更详细的STM32H5信息安全特性,欢迎浏览STM32MCU wiki页面:Security with STM32H5, Getting started with STM32H5 security。
STM32H5无疑给工业物联网产品设计带来了新的优秀选择。在提供更先进的硬件和解决方案的同时,STM32Cube工具作为STM32生态系统的重要组成部分,当然也考虑到如何让开发者能够更便捷地使用这一系列的新安全功能的问题。为此STM32CubeProgrammer及其内嵌的STM32TrustedPackageCreator,STM32CubeMX等工具都进行了升级,全面支持STM32H5的新安全特性。下面就带大家做简要了解。
STM32CubeProgrammer & STM32TrustedPackageCreator
STM32CubeProgrammer是一个集成了多项功能的STM32编程工具,提供Flash以及Memory读写,OptionByte选项字节读取与配置,内核和外设寄存器读写等多种功能。STM32TrustPackageCreator是内嵌在STM32CubeProgrammer的另一个工具,主要包含针对STM32产品信息安全的多种功能。这两个工具都提供了GUI界面,也支持CLI命令行方式,方便开发者使用。STM32CubeProgrammer v2.14.0增加了OBK文件provisioning,Debug Authentication等新功能,来配合STM32H5的新安全特性的使用。其内嵌的STM32TrustedPackageCreator v2.14.0同样也增加了H5的系列配置页面,提供了针对STM32H5安全新特性的一系列功能,例如
Obkey的配置选项卡:可以用于生成多种obk文件,对应不同的安全功能的配置,STM32CubeFW_H5的软件包中会带有对应功能配置的xml文件模板,模板文件可以在Projects目录下开发板的ROT_Provisioning目录中的相关子目录下找到,用户可以在模板xml文件的基础上轻松完成相关配置。
Image Gen配置选项卡页面:可以基于xml模板完成对代码或者数据二进制文件的签名打包,生成对应ST-iROT或者OEMiROT的支持安全启动的应用程序二进制文件,以及用于安全升级的应用程序升级包文件。
DA CertiGen配置选项卡页面:可以生成Debug Authentication安全调试所需要的数字证书,包括根证书、中间证书、叶子证书等。
SFI和HSM相关的几个配置选项卡:提供针对SFI安全固件安装的相关配置功能,例如对OEM固件进行加密生成用于安全烧录的SFI文件,将OEM的加密密钥写入HSM,生成OptionByte配置文件等。
下面举几个例子:
STM32H5安全调试
启用安全调试功能涉及两个阶段,配置阶段和使用阶段。
配置阶段包含Debug Authentication obk文件生成,obk文件烧写和设置产品保护状态等几个步骤。其中STM32TrustedPackageCreator H5的Obkey页面可以生成Debug Authentication安全调试的根密钥及其公钥哈希,或者设置用于安全回退的密码,并生成最终的DA配置obk文件。
STM32CubeProgrammer工具新增加的OBKey Provisioning选项卡页面可以将DA obk文件烧写至STM32H5芯片上对应的obk区域。产品保护状态的设置则可以在OB Option Byte选项字节配置的页面完成。
安全调试功能使用阶段,如果在TrustZone开启的情况下需要重新打开调试连接,那么首先需要通过STM32TrustedPackageCreator生成用于DA所需的数字证书。
然后,再通过STM32CubeProgrammer发起DA请求,开启安全调试模式,或者进行产品状态回退。
当DA请求被STM32H5芯片的DA library验证通过,则会执行相关DA请求的操作。如果请求的操作是重新打开某种调试连接,则该调式功能将被暂时恢复,下电上电之前都可以进行调试;如果请求的操作是回退,则Product State会恢复到Open或者TZ-Closed状态。
如果希望了解如何一步一步配置和使用STM32H5的安全调试,可以参考wiki页面How to start with DA on STM32H5 ,获得更详细的说明信息。
STM32H5安全启动ST-iROT
启用ST-iROT安全启动功能也有几个主要步骤,首先是生成ST-iROT的配置,产生配置obk文件,包括用户代码签名、加密使用的密钥,代码的起始地址偏移量和大小等等,这个步骤可以由STM32TrustedPackageCreator工具完成。生成的obk 文件同样可以通过STM32CubeProgrammer的OBK Provisioning工具进行烧写,类似前面起到过的DA obk文件的烧写。
其次是应用程序固件的签名打包,最终烧写到用户Flash的是带有签名和相关头数据的可以通过ST-iROT进行校验并启动的文件。用户应用程序的签名打包,同样可以由STM32TrustedPackageCreator在Image Gen配置选项卡页面完成。
STM32CubeMX
STM32CubeMX是一个用于对STM32MCU/MPU进行配置的工具,其中包含了管脚分配,IP初始化配置,时钟树配置,工程配置,代码生成以及应用场景功耗预估等,既可以从零开始配置芯片并一站式生成工程架构以及初始化代码,也可以基于现有的配置文件,在此基础上进行修改并更新工程代码。
STM32CubeMX对于带有V8-M TrustZone特性的STM32MCU已经有很好的之支持,当选择任何一个CM33内核带TrustZone功能的STM32MCU或者其对应的开发板时,STM32CubeMX会弹出对话框,询问是否要启用TrustZone,如果选择“with TrustZone activated”,则GUI界面中会出现与TrustZone相关的一系列配置选项。
在最新的STM32CubeMX v6.9.2版本中还增加了对STM32H5 BootPath启动路径配置的完整支持,包含多种启动路径的选择,例如
Application only
OEM-iROT + Secure Application
ST-iROT + Secure Application
ST-iROT + S/NS Application
STiROT + OEM-uROT + S/NS Application等等。
为了让开发者可以更方便从STM32CubeMX中生成用于配合STM32H5 Secure Manager的应用程序,这个版本中也包含了对SecureManager的支持。当使用Secure Manager时,工程师只需要生成一个TrustZone Non-Secure工程,用于开发自己的应用逻辑和功能,而安全启动,安全升级以及TrustZone安全侧的安全服务可以直接由Secure Manager的解决方案来提供支撑,无需另外开发,应用程序只需要调用PSA API就可以直接使用Secure Manager内嵌的安全存储、加解密、Attestation等功能。为达到这个目的,开发者只需要将Project设置为只包含Non-secure application的模式,并且从BootPath选项选择ST-iROT + ST-uROT + Secure Manager,就可以轻松配置。
完成BootPath选择之后,还可以在STM32CubeMX的”Pinout & Configuration”界面使能Secure Manager,并选择需要使用的Secure Service,这样STM32CubeMX就可以生成对应的Non-Secure App工程,这个工程中除了包含外设的始化代码以外,工程的linker会按照Secure Manager默认的存储空间布局进行更新,工程也会包含PSA API相关的头文件和Middleware部分的代码,应用工程可以调用Secure Manager提供的API,使用已经开发好的安全功能,同时工程的Build Action中也添加了postbuild脚本的执行,可以在App工程编译完成后自动产生签名加密打包的hex文件。
如果希望了解更多关于如何使用STM32CubeMX的BootPath配置以及使用Secure Manager请参考wiki链接How to start with STM32CubeMX and STM32H5 security 及其相关页面。
另外如果读者希望了解更多有关Secure Manager解决方案的信息,欢迎访问Secure Manager产品页面:https://www.st.com/en/embedded-software/stm32trustee-sm.html 下载软件包,也 可以从wiki页面Secure Manager for STM32H5,How to start with Secure Manager on STM32H5 等,获取更多详细的使用说明。
来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。