1.1 课程架构介绍:STM32H5信息安全特性概览

1.1 课程架构介绍:STM32H5信息安全特性概览

1. 概述

开发者在打造嵌入式系统时,安全和性能是产品开发设计的考量重点。为实现这一目标,ST推出了STM32H5系列,该系列作为微控制器新标杆面向工业应用市场,将为用户带来更强劲性能和安全性,提供更多设计自由,加快产品上市。

STM32H5系列可提供从安全硬件到完整解决方案的丰富资源,用户可根据需要选择。

STM32H5带来更加出色的安全机制,例如配备永久信任根(iRoT )和可更新可信根(uRoT)的双级可信根。

STM32H5还加入了生命周期管理,基于认证的调试等新功能,这些新功能可帮助开发人员更好地在现场管理调试设备。使用STM32H5系列,工程师可以在不影响安全性的情况下,重新打开调试功能,从而为其他现场工作提供便利。有了全新STM32H5系列的硬件和软件功能,安全性将更加实用。

由ST开发和维护的全新的可信执行环境解决方案------安全管理器,可简化开发人员的工作流程,且不受开发人员专业能力的限制,极大地降低了信息安全功能的开发门槛。

STM32推出《STM32H5信息安全培训课程》:https://c.51diantang.com/columndetail?id=154aaa87d2634480ad9ad5aff3ead364,下面是我自己在学习过程中总结的笔记,也算留下点记忆,给平淡的生活留下点痕迹

2. 嵌入式设备信息安全

嵌入式设别信息安全的典型需求:

  • 调试访问控制与设备生命周期管理:保护调试端口,管理各阶段设备资源的访问;
  • 安全启动与安全升级:保证应用固件完整可信,来源可靠;
  • 软件IP与存储器保护:保护代码与数据的机密性,防止未经授权的访问;
  • 加解密引擎与随机数发生器:用于身份认证,数据加密,安全通信等;
  • 安全存储:实现敏感数据和密钥的安全存储和使用;
  • 关键代码隔离与可信执行环境:保护复杂系统敏感代码和冠军外设相关操作。

3. STM32 H5 安全特性总览

  • 存储保护(防止未授权保护):OTP,HDP(隐藏保护),WRP(写保护),MPU,OTFDec(外部Flash实时解密),Product State(调试端口保护),Active Tamper(动态放拆机保护)。

  • 加解密(带硬件安全防护):带侧信通道攻击防御的SAES,PKA,AES,SHA,TRNG,OTFDec,HUK硬件唯一密钥,NIST-CAVP认证的Cryptolib。

  • 安全启动与系统验证(产品生命周期管理):多级Flash启动保护,ST-iROT / OEM-iROT安全启动方案,带认证的调试Debug Authentication。

  • 代码隔离与安全存储(存储与动态执行保护):7个隔离保护区,Arm TrustZone 系统级隔离技术,专用的安全存储区,HUK硬件唯一密钥。

  • 交钥匙安全服务解决方案:STM32 Trust TEE Secure Manager安全管理器,Easy registration to clouds & servers,多方软件IP保护,预集成第三方PKI生命周期管理,永久信任根。

通过上述的介绍,客户可以根据自己不同的使用场景,来匹配不同的方案,如果在信息安全方面没有经验,可以直接使用ST的交钥匙的安全服务解决方案。

目前主导的两种的信息安全认证:一个是ARM的PSA的level3,Global platform的认证,同样也是Level3.

4. STM32H5 安全特性 vs. 使用场景

软件IP保护:

  1. Product State:管理芯片访问权限
  2. Debug Authentication:安全调试
  3. HDP,WRP:保护Flash上的代码和数据
  4. OTFDEC:保护外部Flash

安全启动/升级:

  1. ST-iROT:安全启动的BootROM,不需要开发,硬件出厂自带安全启动的方案;
  2. OEM-iROT:源代码方式,可以交由OEM任意修改的安全启动方案。

实现安全通信:

  1. 硬件加解密单元
  2. X-Cube-Cryptolib:如果不带硬件加密单元,可以使用软件加密的算法库X-Cube-Cryptolib。

存储机密数据:

  1. SAES+HUK:存储私钥,和云端交互的密钥,用SAES+HUK实现存储秘密数据的时候一机一密,
  2. OBK安全存储区:Flash和Ram数据的隔离
  3. TrustZone:Flash和Ram数据的隔离

可信执行环境与安全服务:

  1. TrustZone:
  2. TF-M:开源的软件方案
  3. Secure Manager: ST提供的安全方案

5. 如何选择使用STM32H5的安全特性和解决方案

使用场景:


场景1:

​ 保护自己产品的软件IP,不希望被抄袭,使用Product State功能,Lock住,保护固件的时候还希望保留调试功能,可以使用Debug Authentication安全调试的功能,通过调试的时候安全认证后,开启调试功能,内部FLash不够用,还希望外挂Flash上,并且不想在和外置Flash通信的数据明文发送,可以使用OTFDEC的功能。

场景2:

​ 安全启动,安全升级等需求,希望能够使用芯片上固化的BootRom,不希望自己开发代码,可以选择STM32H57x系列芯片的ST-iROT的安全启动方案。如果发现ST提供的ST-iROT不能满足自己的安全启动方案,可以使用OEM-iROT方案,可以使用官方提供的源代码,实现定制化的设计安全启动和安全升级。有自己的BootLoader,希望在这个基础上开发信任根的功能,可以利用安全相关的硬件Boot_LOCK,HDP/HDPL,WRP,OBK等来实现安全启动等技术要求。

场景3:

​ 实现安全通信,如果使用的是不带硬件Crypto型号,可以使用X-Cube-Cryptolib,mbedtls。如果需要同时实现通信安全和硬件加速或硬件安全防护,可以使用带Crypto型号,用SAES,PKA,AES,HASH,RNG等硬件加密模块。如果需要安全存储设备密钥等机密数据,联云等,可以用OBK的专用存储区,SAES+HUB这种一机一密来存储机密数据,可以用到TrustZone的隔离保护,对于关键数据只允许关键的代码操作。

场景4:

  • 需要保护关键代码和外设控制:本身自己精通TrustZone技术->直接自己开发TrustZone应用;
  • 希望有TEE架构和内建的安全服务:有开发能力,有定制化修改的需求-> TF-M;
  • 希望有无需开发的安全启动+TEE+安全服务:可以使用ST官方生成的二进制文件,应用于STM32H57x系列芯片-> Secure Manager。
相关推荐
AITIME论道44 分钟前
论文解读 | EMNLP2024 一种用于大语言模型版本更新的学习率路径切换训练范式
人工智能·深度学习·学习·机器学习·语言模型
小菜鸟学代码··3 小时前
STM32文件详解
stm32·单片机·嵌入式硬件
青春男大3 小时前
java栈--数据结构
java·开发语言·数据结构·学习·eclipse
马浩同学4 小时前
【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程
c语言·单片机·嵌入式硬件·mcu
mashagua4 小时前
RPA系列-uipath 学习笔记3
笔记·学习·rpa
沐泽Mu5 小时前
嵌入式学习-QT-Day05
开发语言·c++·qt·学习
锦亦之22335 小时前
cesium入门学习二
学习·html
m0_748256145 小时前
前端 MYTED单篇TED词汇学习功能优化
前端·学习
IT古董6 小时前
【机器学习】机器学习的基本分类-半监督学习(Semi-supervised Learning)
学习·机器学习·分类·半监督学习
jbjhzstsl6 小时前
lv_ffmpeg学习及播放rtsp
学习·ffmpeg