stm32l5微控制器系列基于 arm cortex-m33 内核,充分利用该内核的安全特性,即适用于 arm v8-m 的 trustzone技术,从内核到整个芯片系统,实现了安全区域和非安全区域之间的有效隔离。
在调试端口保护方面,trustzone 和 rdp(读保护)的配合,同样可以实现灵活的调试端口访问控制,有效阻断来自调试端口对片上代码的窥探。
使用 stm32l5 trustzone 保护片上代码的机密性
调试端口连接可控
在rdp1或者rdp0.5条件下,如果芯片使用了trustzone上电调试接口就不可连接(具有类似rdp2的效果)
比rdp2更灵活,可以由用户代码控制后续调试端口访问权限,实现安全调试,并保留修改选项字节的可能性
用户片上flash进一步隔离
安全闪存区域不能被非安全世界任意访问
非安全世界不能访问安全世界的数据
非安全世界不能访问安全世界的外设
非安全世界访问安全世界的函数,需要按照一定规则,不可随意调用
stm32l5 trustzone 助力代码保护示例
资源在“安全世界”和“非安全世界”之间的分配
示例菜单和测试功能
示例运行注意事项
资源的分配
上电运行安全世界代码,做资源分配
安全世界:
关键操作,关键数据
配合读保护,可以阻断调试端口连接
非安全世界:
人机交互
可以使能调试端口,但是无法访问到安全世界的关键数据和外设
调试端口的连接控制rdp=0
读保护级别为0(芯片缺省状态)
芯片复位可被调试端口连接
调试端口的连接控制rdp=0.5
读保护级别为0.5
硬件保证:cpu处于安全状态时,调试无法连接;包括复位时,运行安全代码时
软件操作:安全代码在跳转到非安全区域之前,关闭调试端口
保护效果
cpu运行在非安全区域时,缺省调试无法连接;可通过身份认证来使能对非安全代码的调试
带身份认证的调试使能
基于“挑战-应答”模型
芯片产生随机序列,合法用户持有匹配私钥对随机序列的签名,才能被芯片使用其存储在安全世界里的对应公钥验签成功
例程运行注意事项
rdp0.5时,s代码自动关闭调试端口。使用stm32cubeprogrammer hotplug也无法连接;ide下载ns代码也不会成功;需要用户通过菜单打开调试端口,之后stm32cubeprogramer才能连接成功,ide下载也才能成功。
rdp非0时,片上flash中如果没有可以跑到非安全状态的有效代码,调试端口不再可连 除非改变启动方式,从系统bl启动(系统bl的代码是一定可以跑到非安全状态的) 需要确保可以从系统bl启动(选项字节中的启动控制:nswboot0)
【q】为何例程没有提供rdp回退的菜单? 【a】trustzone使能时,rdp回退只能由调试接口或者系统bl完成
例程通过硬件和软件两方面一起作用,实现了对非安全代码的可控调试 硬件:读保护级别不为零+tz使能 复位时+ 运行在安全代码区域时,调试不可连接 软件:安全区代码在跳转到非安全区代码之前,软件关闭调试端口 菜单【1】、【2】:测试作用,不会集成到产品中 菜单【d】:即使通过通信端口在非安全区注入恶意代码来调用打开调试端口的功能,由于不知道签名所需要的私钥,验证无法通过,不能打开调试端口
原文标题:干货分享 | 代码保护(2)使用stm32l5 trustzone 特性控制调试端口访问,保护片上代码安全
文章出处:【微信公众号:stm32单片机】欢迎添加关注!文章转载请注明出处。
MAX16031/MAX16032系统监测器的外部温度传感器校准
美国“设计运行区域”(ODD)自动驾驶的现状和前途
mysql8.0流程控制介绍
等离子焊机使用方法及注意事项
ISO/IEC RFID应用技术标准概述
使用STM32L5 TrustZon保护片上代码的机密性
河套IT TALK——TALK 10:编程的技术|艺术|术术 中篇:编程的思想、艺术和哲学
一文搞懂电阻
宏集案例丨宏集PC Runtime软件助推食品行业生产线数字化革新
基于深度学习对在2018年的10个预测解析
WTN6系列语音芯片:PWM与DAC音频输出在PCB设计中的优势
荣耀9、荣耀V9对比评测:荣耀9、荣耀V9有什么区别?从配置参数、外观、性能、拍照体验等全方位细致对比!
LCL331多位显示组合器件的应用电路图
天语首款3G四通道互联网手机提前看
魅族pro7什么时候上市?骁龙835+屏占比90%+无边框设计,这或许才是你想要的魅族手机
卡萨帝双11:均价超行业2倍、3小时破亿、增幅132%!
办理不动产登记过户也可以使用区块链技术吗
农药残留快速测试仪的性能及参数
深刻了解ios10.2,越狱新人也不用担心!
工程师电子制作故事:1000米4路无线遥控窗帘(图文)