1. STM32硬件安全特性概览
STM32 MCU底层硬件具备的安全特性能够覆盖存储访问保护、代码/系统隔离、启动入口限定、防篡改检测、密码学算法加速、身份识别等多方面的安全需求,例如:身份识别:UID, OTP
存储访问保护/软件IP保护:RDP(读保护),WRP(写保护),PCROP(专有代码保护),OTFDEC(On-The-Fly Decryption实时解密模块)
代码/系统隔离:MPU,Firewall(防火墙),TrustZone,Secure User Memory(安全用户存储区)
启动入口限定:RDP2,BOOTLOCK(启动锁定)
防篡改检测:Anti-Tamper
密码学算法硬件:AES,HASH,PKA,TRNG
芯片硬件安全功能结合软件能够实现更多应用层次的安全功能,例如安全启动,安全更新,安全存储,安全通信,可信执行环境等等。
1.1 身份识别
Unique ID芯片唯一标识:STM32全系列产品都带有UID,出厂时已经烧写在STM32芯片的系统Flash区域,UID的长度为96bit,作为芯片的唯一标识号。
UID的常见用途:基于UID通过某种算法生成搭载该芯片的产品的唯一序列号
基于UID进行密钥派生:芯片的参考手册有专门章节描述,请参考Device electronic signature章节
OTP一次性写入区域:STM32 MCU的多数系列都带有OTP区域,例如F2,F4,L4,F7,H7,G0,G4,WB,L5等等(OTP区域的支持以及大小要看具体产品型号)。
OTP的常见用途:一次性写入产品标识信息,写入后无法变更;
一次性写入不可变更数据,例如安全启动用于验证应用合法性的公钥信息
OTP的操作方式请参考芯片的参考手册 Embedded Flash memory (FLASH)章节的相关描述。
1.2 存储保护/软件IP保护
WRP 内部Flash写保护
WRP能够保护片内Flash指定区域的内容不被意外地或者恶意地修改或擦除,STM32全系列产品都带有写保护功能。根据产品系列的不同,WRP的配置方式略有不同,L4、G0、G4、WB、L5系列可以设置受保护的起始和末尾Page,其它系列可以独立设置需要保护的Page/Sector。WRP结合RDP2可以使得一段片上Flash成为相当于ROM的区域,该区域代码或数据将具有不可改变特性。
RDP读保护
RDP读保护所保护的对象包括内部Flash,选项字节,内部SRAM(如SRAM2),OTP区域ÿ