0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用STM32L5 TrustZon保护片上代码的机密性

STM32单片机 来源:STM32单片机 作者:STM32单片机 2021-06-11 17:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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单片机】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17646

    浏览量

    190261
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154709
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371175

原文标题:干货分享 | 代码保护(2)使用STM32L5 TrustZone 特性控制调试端口访问,保护片上代码安全

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32L010 空开发JLINK仿真无法使用怎么解决?

    CW32L010空开发,MDK KEIL5开发,使用JLINK仿真官网给的BSP包,烧写正常,但是无法进入仿真,RestandRun下报硬件错误。
    发表于 11-18 06:56

    HarmonyOS应用网络连接安全配置方案

    应用与服务器之间的数据传输需确保安全,保护数据的机密性和完整,防止敏感数据被窃取和篡改。推荐使用传输层安全协议(TLS)保护数据安全。
    的头像 发表于 10-24 14:51 4163次阅读
    HarmonyOS应用网络连接安全配置方案

    无线传输方式下如何保障电能质量在线监测装置的数据安全

    漏洞)。需构建 “设备身份认证→数据加密传输→完整校验→网络隔离→运维监控” 的全流程安全防护体系,结合无线传输特性(如带宽、延迟、协议差异)选择适配方案,确保数据的机密性、完整、可用
    的头像 发表于 09-26 16:12 440次阅读

    STM32L073上LCD控制器缺少底层驱动怎么处理?

    如题,在RT-Thread官方的驱动中没有找到stm32l0系列的LCD控制器驱动,而项目需要使用该外设驱动一块段码屏。如果我需要为其添加支持,我需要添加哪些代码?RT-Thread官方文档中似乎没有找到添加此类设备驱动的相关教程。
    发表于 09-12 06:36

    如何在 MCU/MUP 上安全地存储机密数据?

    如何在 MCU/MUP 上安全地存储机密数据
    发表于 09-08 06:44

    TOF传感器(VL53L5),无法得到data ready怎么解决?

    软件环境:基于STSW-IMG023示例代码,将代码移植到KEIL5下使用; 硬件环境:STM32F405芯片和VL53L5CX-SATEL
    发表于 07-10 08:18

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料免费下载
    发表于 06-06 17:06 9次下载

    ESD保护器件ESD0505T5L规格书

    电子发烧友网站提供《ESD保护器件ESD0505T5L规格书.pdf》资料免费下载
    发表于 03-24 10:54 0次下载

    ESD保护器件ESD0512T5L规格书

    电子发烧友网站提供《ESD保护器件ESD0512T5L规格书.pdf》资料免费下载
    发表于 03-24 10:31 0次下载

    ESD0502T5L SOT-523 ESD保护器件规格书

    电子发烧友网站提供《ESD0502T5L SOT-523 ESD保护器件规格书.pdf》资料免费下载
    发表于 03-13 17:36 0次下载

    STM32L476RG数据手册

    电子发烧友网站提供《STM32L476RG数据手册.pdf》资料免费下载
    发表于 03-04 15:30 1次下载

    STM32CubeMX用于STM32配置和初始化C代码生成

    电子发烧友网站提供《STM32CubeMX用于STM32配置和初始化C代码生成.pdf》资料免费下载
    发表于 02-26 17:32 678次下载

    INA226 stm32的demo代码和规格书

    文档包含in226的规格书和stm32的demo代码
    发表于 02-08 17:32 10次下载

    SiliconLabs推出BG22L和BG24L精简版SoC

    SiliconLabs(亦称“芯科科技”)宣布推出用于低功耗蓝牙(Bluetooth LE)连接的BG22L和BG24L上系统(SoC),产品代码中的字母“
    的头像 发表于 02-07 09:09 1128次阅读

    Bootloader解决方案—INTEWORK-EAS-Boot

    芯片、数十家国内外主流 OEM 中有量产产品验证,可保护写入车辆 ECU 中代码和数据的完整机密性,在保障安全的前提下可用于升级刷写、生产刷写、维修刷写,具有较强的稳定性、可靠
    的头像 发表于 12-20 14:13 1112次阅读
    Bootloader解决方案—INTEWORK-EAS-Boot