
1. 引言 通常芯片在其整个生命周期中跟随产品的开发生产可能经历如下几个不同阶段 : ![]() 在不同的生命周期阶段需要对芯片资源有不同的访问权限,例如芯片出厂时要开放所有资源供 OEM 进行开发,工厂生产烧录代码和数据后需要关闭某些资源的访问,确保代码与数据的安全性,设备回厂返修时需要再次允许某些资源的访问等等。 STM32MCU 的硬件中能够用来进行芯片生命周期管理的最常见的特性就是 RDP(Read Out Protection)读保护功能。通常 RDP 具有三个级别: • Level0:完全开放,这是芯片出厂的缺省状态 • Level1:调试端口可以连接,但无法通过调试端口访问内部 Flash,部分 SRAM 以及其它一些资源,OptionByte 可以修改。Level1 可以降级回 Level0,但会伴随全片擦除。 • Level2:调试端口永久关闭,进入这种状态后调试端口完全无法访问,且这种状态无法逆转。 在 RDP Level1 调试端口依旧可以连接,虽然不能直接读取内部 Flash 的代码和数据,但是可以看到大部分 SRAM 的内容,并且 RDP Level1 允许随意回退到 Level0,并伴随全片擦除。因而从安全角度讲 Level1 这个级别的安全性不够高,因而通常对于调试端口保护我们会推荐使用 RDP Level2,但是 OEM 可能往往不会选择使用这个级别,原因有多方面,其中一部分的顾虑可能来自两方面,一个是 Level2 级别下 OptionByte 无法进行修改,另一个是设置到 Level2级别会影响芯片失效分析。 STM32L5 在 RDP 功能上带来一些改变,首先针对 TrustZone 架构,增加了 Level0.5, • Level0.5:调试端口可以连接,但是安全测的所有调试功能都被禁止,非安全测的调试功能依旧可以使用,因此在 RDP Level0.5 可以访问被定义为 NonSecure 的部分资源,包括片上 Flash,SRAM,部分 CPU 寄存器以及系统外设等另外,STM32L5 的 RDP Level2 不影响 FA,但 OEM 依旧无法在这种状态下进行RDP 降级或者 OptionByte 修改,依旧有一些局限性。 2. STM32U5 芯片生命周期管理新特性 STM32U5 在芯片生命周期管理方面在 STM32L5 的基础做了进一步的改进,引入了OEM Key 机制,使得 RDP 的级别状态转换能够通过 OEM 设置的 password 进行保护,一方面能够防止 RDP 任意降级,避免设备被远程攻击注入恶意代码后通过 RDP 降级变砖的风险,另一方面也使得 RDP2 降级成为可能,给产品后期维护带来更多的灵活性。 完整版请查看:附件 |
LAT1086_STM32U5带OEM_Key保护的RDP降级_v1.0.pdf
下载942.86 KB, 下载次数: 0
经验分享 | 一个 STM32U5 SBSFU SecureFault 问题定位与分析
经验分享 | STM32U5系列TIMER+DMA+DAC应用演示
兔哥的最强U5图显【000】——U5G9最小系统绘制
经验分享 | STM32U5 ADC+DMA配置演示
STM32U5低功耗测试
STM32怎么选型
内存配置的艺术:STM32为嵌入式系统高端UI优化RAM和闪存的三大策略
【STM32U545】实现CAN数据收发
【我的STM32U5 项目秀】+04-MPU6050在STM32U5上的移植
实战经验 | 基于 STM32U5 创建 USBx_CustomHID 通信