用户使用调试器可以访问嵌入式系统的大部分资源,调试身份验证(Debug authentication)是系统的一个关键安全特性,可以控制调试端口的安全锁定或回归打开,可用于MCU的开发、和现场返回分析。
在TrustZone使能或禁止情况下,STM32H563/573都支持调试认证。在禁用TZ的情况下,使用密码实现回归。在启用TZ的情况下,可以使用加密证书打开调试端口。
ELprotronic公司的FlashPro是一种用于单件和小批量生产的单通道编程器,一次编程1个目标。FlashPro-ARM编程器支持所有STM32H563/573 MCU产品状态,包括配置密码管理和完全回归。目前支持禁止TrustZone时,实现STM32H563/573的调试验证。
本文介绍如何使用FlashPro-ARM编程器实现STM32H563/573的生命周期管理。
文件准备
要执行密码管理的provisioning,需要通过STM32 Trusted Package Creator工具生成*.obk文件,该文件用于配置进行MCU回归所需的条件。
STM32CubeFW_H5中提供了示例文件,Trusted Package Creator使用位于/Projects/NUCLEO-H563ZI/ROT_Provisioning/DA/Config路径下的DA_ConfigWithPassword.xml来设置该文件。
生成自定义配置文件的步骤如下:
1、打开Trusted Package Creator并选择H5
2、打开Obkey选项卡
3、选择DA_ConfigWithPassword.xml文件
4、根据需要更新密码
点击Generate OBKey生成相应的obk和password.bin文件。
FlashPro-ARM支持的操作
1、使用FlashPro-ARM执行生命周期和配置密码管理
打开FlashPro-ARM,选择STM32H563/573 MCU
打开Setup->Memory Protection对话框,选择Lifecycle management选修卡,勾选”Set Product state enable”,设置产品状态。
点击“DA/PROV”按钮(可选,但是没有密码管理,在移到更高的生命周期状态后不能完全回归),勾选”Enable provisioning”,通过“Browse”按钮设置Trusted Package Creator创建的*.obk文件路径,按“ok”按钮结束STM32 Debug authentication。
在Memory Protection选项卡中按“Ok”按钮,在主窗口中选中内存保护“Enable”框
即可使用FlashPro-ARM编程器中的“AUTO PROG”或“Lock Device”按钮,将MCU置于选定状态,进行密码管理操作。
2、完全回归
要执行完整的回归,需要一个*.bin文件,该文件存放生成*.obk文件的密码。
STM32CubeFW_H5中提供了password.bin示例文件。文件位于/Projects/NUCLEO-H563ZI/ROT_Provisioning/DA/Config目录。
执行完全回归的操作步骤如下:
打开FlashPro-ARM,选用STM32H563/573MCU
打开Setup->Memory Protection选项卡,在lifecycle management选项中,使用“DA/PROV”按钮,勾选“Enable password”,使用“Browse”按钮设置相应的*.bin文件路径,在STM32 Debug authentication选项卡中按“Ok”按钮。
在Memory Protection选项卡中按“Ok”按钮,在主窗口中按“Clear Locked Device”按钮。
操作完成后,MCU回到“Open”状态。
3、设备发现操作
发现操作允许用户读取当前MCU状态和预置状态。
执行发现操作步骤:
打开FlashPro-ARM,选用STM32H563/573 MCU
打开Setup->Memory Protection选项卡,在lifecycle management选项中,按“Discover”按钮,在弹出的“Debug Authentication”窗口中,使用“Discover”按钮从MCU读取信息:
Device ID-MCU ID
Life Cycle-当前MCU状态
Integrity status-provisioning状态(0xeaeaeaea表示provisioned,provisioning失败为0xf5f5f5f5,在Open状态下0xf5f5f5f5)
初始MCU状态
配置后MCU状态
使能TrustZone时的调试验证很快实现。