
一、STM32H7S基于硬件的安全存储 1、SAES密钥来源 1)硬件唯一密钥HUK ① 每颗芯片出厂时自带HUK,不需要用户烧写,每颗芯片的HUK不同 ②HUK无法被软件读取,只能通过私有总线直接加载到SAES 2)后备域硬件密钥BHK ①使用BHK前,软件需要将密钥写入TAMP Backup registers的前8个寄存器,即TAMP_BKP0R ~TAMP_BKP7R ②BHK可以被锁定,锁定后软件无法读取,此时BHK只能由私有总线导入SAES ③BHK导入SAES前需要通过BKPxR寄存器的读取操作触发BHK向SAES的导入 3)应用硬件密钥AHK ①OBK存储区的前8个index保留为AHK使用,这8个index的数据为write only,写入后无法读取,只能通过私有总线导入SAES ②AHK导入SAES前需要对相应的index做一次OBK读取操作,触发AHK向SEAS的导入 2、硬件唯一密钥HUK➔RHUK和DHUK 1)DHUK 由RHUK派生而来 2)SAES不会直接使用RHUK,而是先进行密钥派生得到DHUK,加解密使用DHUK 3)DHUK的派生受多重因素影响 ①SBS-HDPLx,EPOCH,SAES 密钥使用模式,密钥长度选择,Privilege信号等 ②只有所有密钥派生参数都相同的时候才能得到相同的DHUK ③来自Flash寄存器的EPOCH值在每次通过DA流程将Product State回退到Open时自动+1 3、AES 密钥的安全存储与使用(举例) 二、STM32H7R/S OBK安全存储区 1、专用OBK存储区 (OptionByte Key Area) 1)独立的存储区域 ①不占用User Flash空间 2)带有时域隔离特性,区分针对不同HDPL的区域 ①只有系统处于对应的HDP Level时才能访问 ②针对3 个HDPL级别的安全存储区 HDPL0 → DA-Config HDPL1 → iROT (ST-iROT or OEM-iROT) HDPL2 → uROT 3)Product State回退时OBK区域内容自动擦除 4)存储在OBK区域的数据可以通过硬件密钥加密(H7S) ①加密可使用由HUK派生的DHUK,或者AHK 对应不同HDPLx级别的DHUK派生密钥不同 DHUK派生与EPOCH(version counter)也相关 Regression回退操作将使得通过DHUK加密的数据无法被解密,防止重放攻击 二、H7R/S OBKeys 和 H5类似,但实现方式差异很大 硬件层面上,H7R/S 采用链表方式实现,H5采用地址映射方式实现 (双bank交换模式) 三、举例 学习学习加油 |
《STM32H7R/S信息安全线上课程》学习笔记+4.0 密码学引擎与随机数发生器
《STM32H7R/S信息安全线上课程》学习笔记+3.0 时域隔离,片内与片外存储器保护
《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接口并使用模块进行无线通信(发送和接收)