
方案概览 • STM32L0和STM32L4系列的硬件除了通常的RDP、WRP,还带有Firewall和PCROP硬件安全特性 • 使用STM32的security硬件模块(Firewall和PCROP)实现对关键数据(密钥)的保护:应用代码可以使用加解密功能,但是无法拿到密钥 • 本方案提供了在STM32L073上的参考实现,以及相应测试代码 • STM32L073-Nucleo • 方案包的内容 • 三个IDE下的示例工程:IAR,MDK,STM32CubeIDE • 方案介绍文档 • 脚本工具(生成秘钥相关文件) PCROP 2• 防什么?:来自CPU、DMA以及通过调试端口的数据访问 • 保护什么? • 用户片上Flash的一段区域(由选项字节设置区域范围,保护上电即生效) • 保护机制 • PCROP区域仅能被指令访问,不允许数据访问(包括DMA 、调试访问) • 用途 • 常用于保护关键代码,只可被执行,不能被读出(dump) • 防止内部攻击:注入恶意程序读取关键代码 • 防止外部攻击:来自调试端口的读取 • 也可用于保护“代码化的” 关键常数数据 • 需要先将关键常数转换成代码 • CPU执行这段代码,会把关键数据恢复到SRAM或者寄存器中,这段SRAM再 使用STM32的其他存储和执行保护模块,比如Firewall保护,防止恢复出来的 关键数据被用户代码直接读取;或者寄存器本身是WO属性 ![]() Firewall,防火墙 •防什么?:CPU、DMA • 保护什么? • 用户片上Flash、片上EEPROM 和 片上SRAM上的指定区域(防火墙里的区域) • 保护机制 • 防火墙里的代码、数据不能被墙外的代码直接访问 • 必须走固定入口(Call Gate)进入墙里再访问 • 出去(跳转到防火墙以外的代码)之前必须置位寄存器 • 否则产生系统复位 • 由寄存器设置范围并使能,即上电缺省没有保护 • 一旦防火墙使能,保护生效直到下一次系统复位 完整版请查看:附件 |
关键数据和代码在L0上的保护基于防火墙和PCROP.pdf
下载918.66 KB, 下载次数: 1
STM32如何分配原理图IO
STM32ADC过采样及几种ADC采样的处理方法
分享一个STM32L031的串口调试程序
基于STM32L051使用CubeMX生成工程文件ST系列芯片通用经验分享
基于STM32L051开始添加需要的代码经验分享
STM32L051测试I2C协议设备的添加经验分享
基于STM32L051测试Flash和EEPROM的读写
基于STM32L051串口测试与Enocean模块通讯问题
基于STM32L0的EEPROM读写经验分享
基于STM32L0 ADC使用HAL库关于校准问题经验分享