
一、STM32H7R/S HDP/HDPL时域隔离保护 1、HDP:Flash隐藏保护区 1)System Flash隐藏保护区 ①用于保护system flash中的RSS代码(例如SFI功能)或者ST-iROT代码 ②受保护区域已经预先定义,用户不可配置 2)User Flash隐藏保护区 ①HDP区(Hide Protection区)是用户可以自定义的一块User Flash上的受保护区域 ②HDP区的范围设置:通过选项字节配置HDP区 HDP_AREA_START,HDP_AREA_END分别用于定义User Flash中的HDP区的起始和结束地址 HDP区大小以256字节为单位,实际受保护区大小:(HDP_AREA_END − HDP_AREA_START + 1) × 256 3) HDP区保护使能:由HDPL隐藏保护级别控制 ①一旦保护使能,HDP区的内容在复位之前都不可访问(禁止该区域的读、写、擦) ② HDP区内容只允许M7内核访问 2、HDPL:HDP Level隐藏保护级别 1)HDP Level由SBS控制 ①HDPL从0到3一共四个级别 ②在一个Power Cycle中,HDPL级别只能向上增加,不能降低 2) 系统上电/复位后 ①如果从User Flash启动,则默认处于HDPL1 ② 如果从RSS启动,则默认处于HDPL0 3)系统的HDP Level影响多个功能 ①与DA相关的允许进行调试访问的级别 ②HDP区的保护开启和访问控制 ③OBK存储区的访问控制 ④SAES对HUK的密钥派生(DHUK) 3、HDP/HDPLx用于管理Code和Data的访问控制 4、HDPL保护片上User Flash中的代码和数据 1)HDPL0仅用于system flash的ST RSS代码 2)通常执行User Flash代码时HDPL处于Level 1 ①当HDPL>1, User Flash HDP保护区不可见 ②一旦保护开启,状态将保持到下次复位 5、HDPL保护片上OBK区域存储的数据: 1)Flash OB-Keys (Physical Access Control) ①3 个安全存储区域 HDPL0 ---DA-Config (保留给ST RSS使用) HDPL1 ---iROT (ST-iROT or OEM-iROT) HDPL2 ---uROT ②HDPL0-2有各自对应的OBK区 ③HDPL3没有对应的OBK区 6、HDPL保护片上User Flash中的代码和数据 1)如果通过选项字节选择从ST-iROT启动(STM32H7Sxx) ①ST-iROT将作为第一级安全启动bootloader在RSS之后首先执行 ②ST-iROT执行期间处于HDPL1级别 2)执行User Flash代码时HDPL处于Level 2 ①当HDPL>2,User Flash HDP保护区不可见 ②一旦保护开启,状态将保持到下次复位 二、HDP/HDPL的主要用途和应用场景 三、STM32H7S MCE (Memory Cypher Engine) 1、主要功能 ①内存映射操作模式下,MCE可实现对外部存储器数据的实时加解密 ②管理外部Memory的访问属性(特权/非特权模式访问权限,只读或读写权限) ③内置防火墙,用户可定义不同区域的加解密配置以及访问权限 2、三组MCE单元 ①分别对应XSPI和FMC接口 ②每个MCE可以配置4个region ③MCE1采用AES块加密或流加密算法 ④MCE2/3采用Noekeon块加密算法 3、MCE主要特性 1)用于保护存储在外部Memory的代码和数据, ①例如xSPI外挂NOR Flash或PSRAM,FMC外挂SDRAM,FRAM 2)支持memory map模式的读和写,读写过程自动完成解密和加密 ① 写操作必须使用DMA,以16字节为单位 3)每个MCE可以配置4个region ①每个region可配置其memory地址段,以及访问权限(Privileged, Write) ②每个region可以选择自己的密钥(master key, fast master key, context key) 4)通过对称密钥算法加解密实现外挂Memory上数据的机密性保护 ①MCE1可以配置为AES block模式(AES-128 ECB + Key derivation)或stream模式(AEC-128 CTR) Key derivation 采用 Keccak-400算法,每两个block进行一次密钥派生,即每256位使用一个新密钥 密钥派生带有侧信道攻击防御,无比特翻转攻击,加密区的任何部分都可以随时更新 ② MCE2/3只能工作在Noekeon block cypher模式 4、MCE Cipher的密钥来源与Cipher模式 1)Master Key ①每个MCE有一组Master Key ②可用于Block Cipher模式或Stream Cipher模式 2)Fast Master Key ①每个MCE有一组Fast Master Key ②可用于Fast Block Cipher模式或Stream Cipher模式 3)Context Key ①每个MCE可以定义两个Cipher Context ②每个Cipher Context对应自己的一组Key ③Context Key只用于Stream Cipher 5、MCE Region Cipher 模式 & 密钥来源选择 1)Region控制寄存器: ①ENC【1:0】:选择cipher模式,CTXID【1:0】:选择Context和密钥 ②PRIV:选择是否允许非特权模式访问region定义的memory范围,BREN:是否使能base region 6、MCE Block Cipher 模式 1)Block Cipher模式 ①可以使用Master Key,或Context Key②AES或者Noekeon算法 2)Fast Block Cipher模式 ①可以使用Fast Master Key,或Context Key ②AES或者Noekeon算法 3)Block加解密使用派生密钥 ①基于地址进行密钥派生 Master key的密钥派生具备侧信道攻击防; Faster Master key的密钥派生没有侧信道攻击防御 ②一个派生密钥用于连续两个block的加解密 7、MCE Stream Cipher模式 8、MCE的使用:region配置举例 又是学习的一天,增加新知识 |
《STM32H7R/S信息安全线上课程》学习笔记+2.2 如何使用DA功能(certificate模式)
《STM32H7R/S信息安全线上课程》学习笔记
《STM32H7R/S信息安全线上课程》学习笔记+2.1 如何使用DA功能(password模式)
NUCLEO-H723ZG开发板试用 ——串口点灯测试
经验分享 | STM32H7 EXTI + SPI +DMA 双缓冲应用演示
【经验分享】STM32H7时钟
拷打cubemx【003】——找不到的芯片包
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享4-使用MVP架构从硬件外设读取数据并显示到图形界面、从图形界面发送指令控制硬件外设
【2025·STM32峰会】GUI解决方案实训分享3-搭建空白TouchGFX例程并实现简单的功能(含硬件部分的串口打印)