来源 | STM32
STM32L5基于Cortex-M33 内核,其内核基于ARMV8-M架构,自带有TrustZone安全技术,从内核到整个芯片系统,实现了安全区域和非安全区域之间的有效隔离。
在调试端口保护方面,TrustZone 和 RDP(读保护)的配合,同样可以实现灵活的调试端口访问控制,有效阻断来自调试端口对片上代码的窥探。
TrustZone 保护片上代码的机密性
TrustZone 助力代码保护示例
资源在“安全世界”和“非安全世界”之间的分配
示例菜单和测试功能
示例运行注意事项
资源的分配
调试端口的连接控制RDP=0
运行示例
调试端口的连接控制RDP=0.5
带身份认证的调试使能
例程运行注意事项
RDP0.5时,S代码自动关闭调试端口。使用STM32CUbeProgrammer hotplug也无法连接;IDE下载NS代码也不会成功;需要用户通过菜单打开调试端口,之后STM32Cubeprogramer才能连接成功,IDE下载也才能成功。
RDP非0时,片上Flash中如果没有可以跑到非安全状态的有效代码,调试端口不再可连
除非改变启动方式,从系统BL启动(系统BL的代码是一定可以跑到非安全状态的)
需要确保可以从系统BL启动(选项字节中的启动控制:nSWBOOT0)
【Q】为何例程没有提供RDP回退的菜单?
【A】TrustZone使能时,RDP回退只能由调试接口或者系统BL完成
例程通过硬件和软件两方面一起作用,实现了对非安全代码的可控调试
硬件:读保护级别不为零+TZ使能\r复位时+ 运行在安全代码区域时,调试不可连接
软件:安全区代码在跳转到非安全区代码之前,软件关闭调试端口
菜单【1】、【2】:测试作用,不会集成到产品中
菜单【D】:即使通过通信端口在非安全区注入恶意代码来调用打开调试端口的功能,由于不知道签名所需要的私钥,验证无法通过,不能打开调试端口
------------ END ------------
●嵌入式专栏精选教程
●精选汇总 | ST工具、下载编程工具
●精选汇总 | 嵌入式软件设计与开发
●精选汇总 | STM32、MCU、单片机
欢迎关注我的公众号,回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
欢迎关注我的视频号:
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。