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

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

    关注

    112

    文章

    15154

    浏览量

    170956
  • FlaSh
    +关注

    关注

    10

    文章

    1547

    浏览量

    146629
  • STM32
    +关注

    关注

    2239

    文章

    10665

    浏览量

    348518

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

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

收藏 人收藏

    评论

    相关推荐

    STM32L5 boot_lock与rdp level配置导致死锁如何解决?

    STM32L5 boot_lock 与 rdp level配置导致死锁,应该如何解决
    发表于 03-20 06:22

    面向STM32L5系列的STM32CubeL5入门

    电子发烧友网站提供《面向STM32L5系列的STM32CubeL5入门.pdf》资料免费下载
    发表于 09-20 11:23 1次下载
    面向<b class='flag-5'>STM32L5</b>系列的<b class='flag-5'>STM32</b>CubeL5入门

    基于Arm上的安全启动和安全固件更新概述TrustZone STM32L5系列微控制器

    电子发烧友网站提供《基于Arm上的安全启动和安全固件更新概述TrustZone STM32L5系列微控制器.pdf》资料免费下载
    发表于 09-20 10:13 0次下载
    基于Arm上的安全启动和安全固件更新概述TrustZone <b class='flag-5'>STM32L5</b>系列微控制器

    STM32L5中如何关闭TrustZone

    电子发烧友网站提供《STM32L5中如何关闭TrustZone.pdf》资料免费下载
    发表于 09-20 09:41 0次下载
    <b class='flag-5'>STM32L5</b>中如何关闭TrustZone

    如何修改STM32L5的存储空间安全属性的设置

    STM32L5在trustzone使能情况下使用,需要用户根据应用要求,规划好Flash和SRAM上的安全区域和非安全区域。由于trustzone环境下CPU对存储区访问规则的限制,这套规划方案会
    发表于 09-12 06:42

    STM32L5的系统新架构

    支持安全启动,信任链锚点• Boot Lock,可保证唯一启动入口• HDP,可隐藏的安全用户闪存区域• TZ赋予STM32L5对隔离的硬件支持• 从内核扩展到全片系统• AHB总线主设备:DMA
    发表于 09-11 08:13

    STM32CubeIDE中基于STM32L5系列的项目入门

    本应用笔记描述如何在意法半导体的 STM32CubeIDE 集成开发环境中开始基于 STM32L5 Series 微控制器的项目。
    发表于 09-08 06:42

    STM32L5系列微控制器和TrustZone开发入门

    本文档为使用 EWARM 和 MDKARM 软件工具链在 STM32L5 系列微控制器上进行应用开发提供参考。本应用笔记提供了为 Arm® Cortex®- m33(Armv8_M 架构)的器件构建
    发表于 09-07 08:15

    STM32L4 STM32L4+和STM32G4系列微控制器上的专利代码读取保护

    基于Arm®(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对全存储器或特定段进行读写保护。读保护
    发表于 09-07 07:45

    STM32U5带OEM Key保护的RDP降级

    STM32U5 在芯片生命周期管理方面在 STM32L5 的基础做了进一步的改进,引入了OEM Key 机制,使得 RDP 的级别状态转换能够通过 OEM 设置的 password 进行保护,一方面
    发表于 09-07 06:38

    Arm TrustZone特性面向STM32L5STM32U5系列

    在 IoT(物联网)应用中,设备很容易受到通过互联网实施的恶意入侵。因此,保护设备和信息并使可信区域和不可信区域彼此隔离,这些安全主题就非常的重要。STM32L5STM32U5 系列器件(本文
    发表于 09-07 06:28

    如何入门STM32CubeU5 TFM应用程序

    应用程序不能直接访问任何关键资产,但可以调用使用关键资产的安全服务:• 安全启动 (可信根服务)是不可变代码段,总是在系统复位后执行。在每次执行前,它检查 STM32U5 静态保护,激活STM
    发表于 09-06 07:52

    ARM CoreLink™NI-700上网络互连技术参考手册

    本文档包含特定于该产品的信息。 有关其他有用信息,请参阅以下资源。 对ARM文件的访问取决于其机密性: ·非机密文件可在developer.arm.com/Documentation上找到。 下表中的每个文档链接都指向文档的在线版本。 ·只有通过产品包才能向被许可方提供
    发表于 08-25 07:12

    STM32CubeIDE中基于STM32L5系列的项目入门

    电子发烧友网站提供《STM32CubeIDE中基于STM32L5系列的项目入门.pdf》资料免费下载
    发表于 08-01 17:27 0次下载
    <b class='flag-5'>STM32</b>CubeIDE中基于<b class='flag-5'>STM32L5</b>系列的项目入门

    STM32L5系列微控制器和TrustZone开发入门

    电子发烧友网站提供《STM32L5系列微控制器和TrustZone开发入门 .pdf》资料免费下载
    发表于 08-01 09:37 1次下载
    <b class='flag-5'>STM32L5</b>系列微控制器和TrustZone开发入门