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,下面是我自己在学习过程中总结的笔记,也算留下点记忆,给平淡的生活留下点痕迹

image-20240311222055016

2. 嵌入式设备信息安全

image-20240307223956609

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

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

3. STM32 H5 安全特性总览

image-20240307224543254

  • 存储保护(防止未授权保护):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. 使用场景

image-20240307224532057

软件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的安全特性和解决方案

image-20240310112628385

使用场景:


场景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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows中如何将已安装的node.js版本进行更换

第一步:先清除已经安装好的node.js版本 1.按健winR弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑桌面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node…

【Axure教程】能增删改的树形表格

多层级表格又成为树形表格,是在后台常用的一种表格形式,当表格数据存在多层级关系是,可以通过多层级表格,从而更加清晰的呈现数据内容,帮助人们更好地理解和分析数据之间的关系,从而更加有效地传递信息。 …

【吊打面试官系列】Java虚拟机JVM篇 - 关于JVM 新生代、老年代、永久代的区别

大家好,我是锋哥。今天分享关于JVM新生代、老年代、永久代的区别的JVM面试题,希望对大家有帮助; JVM 新生代、老年代、永久代的区别? 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ) 、老年代 ( Old ) 。而新…

【微服务】nacos注册中心

Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 1.1.认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在…

C++ 改造红黑树,封装map和set

C 改造红黑树,封装map和set 一.前言:已经实现好了的红黑树二.简化STL库里面对于map和set的封装1.STL库中红黑树的简化代码2.STL库中set的简化代码3.STL库中map的简化代码4.封装map和set的第一步5.红黑树第一个模板参数的价值6.红黑树节点的定义 三.仿函数1.解除仿函数的误解2.仿…

Android App冷启动耗时优化

Android应用启动过程 Android应用启动过程,主要包含app::onCreate及执行前的Application阶段及Activity::onCreate执行之后的Activity阶段,以及两个阶段之间的间隙handleMessage阶段和最终页面渲染上屏完成前数据加载阶段四个区间组成。 具体来看&#x…

IDEA中配置Tomcat

在IDEA中配置Tomcat 第一步:选择这个方框 第二步:选择号,找到Tomcat Server(Local) 第三步:将红方框内填完整 第四步:创建artifaces,选择Deployment–>Artia…选择 *.war expl…

嵌入式驱动学习第三周——字符设备驱动关键结构体

前言 linux内核将字符设备抽象成一个具体的数据结构,可以理解为字符设备对象,这篇博客就来讲解一下字符设备驱动的关键结构体。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以…

ArcGis Pro Python工具箱教程 02 工具箱工具集添加

ArcGis Pro Python工具箱教程 02 工具箱工具集添加 经过上一章的教程,pyt工具箱已将可以建立一个模板了,但是所建立的工具都是在一个列表,要进行查找会非常麻烦,所以要采用工具集的分类 官方文档中已经给出了添加工具集的方法&a…

以题为例浅谈SSRF

什么是ssrf SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连…

HTML案例-2.标签综合练习

目录 效果 知识点 1.图像标签 2.链接标签 3.锚点定位 4.base标签 源码 页面1 页面2 效果 知识点 1.图像标签 <img src="图像URL" /> 单标签 属性 属性值 描述 src URL 图像的路径 alt 文本

【linux线程(二)】线程互斥与线程同步

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux线程 1. 前言2. 多线程互…

基于大模型和向量数据库的 RAG 示例

1 RAG 介绍 RAG是一种先进的自然语言处理方法&#xff0c;它结合了信息检索和文本生成技术&#xff0c;用于提高问答系统、聊天机器人等应用的性能。 2 RAG 的工作流程 文档加载&#xff08;Document Loading&#xff09; 从各种来源加载大量文档数据。这些文档…

Redis 除了做缓存,还能做什么?

分布式锁&#xff1a;通过 Redis 来做分布式锁是一种比较常见的方式。通常情况下&#xff0c;我们都是基于 Redisson 来实现分布式锁。关于 Redis 实现分布式锁的详细介绍&#xff0c;可以看这篇文章&#xff1a;分布式锁详解open in new window 。限流&#xff1a;一般是通过 …

json-server 安装成功,查看版本直接报错。安装默认版本埋下的一个坑,和node版本不匹配

文章目录 一、作者的错误二、作者安装的过程三、版本问题的解决方式四、安装成功&#xff0c;显示命令不存在的解决思路五、安装失败的解决思路六、json-server运行命令参考文档 一、作者的错误 安装成功 错误原文 file:///C:/Users/ljj/AppData/Roaming/nvm/v14.18.1/node_g…

go语言基础笔记

1.基本类型 1.1. 基本类型 bool int: int8, int16, int32(rune), int64 uint: uint8(byte), uint16, uint32, uint64 float32, float64 string 复数&#xff1a;complex64, complex128 复数有实部和虚部&#xff0c;complex64的实部和虚部为32位&#xff0c;complex128的实部…

Vue首屏优化方案

在Vue项目中&#xff0c;引入到工程中的所有js、css文件&#xff0c;编译时都会被打包进vendor.js&#xff0c;浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多&#xff0c;那么vendor.js文件体积将会相当的大&#xff0c;影响首屏的体验。可以看个例子&#xff1a;…

Unload-labs

function checkFile() {var file document.getElementsByName(upload_file)[0].value;if (file null || file "") {alert("请选择要上传的文件!");return false;}//定义允许上传的文件类型var allow_ext ".jpg|.png|.gif";//提取上传文件的类…

初见Dynamo2.13 for Revit2023~

Hello大家好&#xff01;我是九哥~ 今天我们来聊聊Dynamo2.13 for Revit有哪些新功能&#xff08;后台回复"Revit2013"获取&#xff09;~ 首先&#xff0c;Dynamo2.13版本其实早就发布了&#xff0c;官方博客更是花了三篇文章的篇幅来详细介绍&#xff0c;小伙伴…

Hack The Box-Monitored

目录 信息收集 rustscan dirsearch WEB web信息收集 snmpwalk curl POST身份验证 漏洞探索 漏洞挖掘 sqlmap 登录后台 提权 get user get root 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -b 2250 10.10.11.248 --range0-65535 --…