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…

相机学习的知识积累

六个问题理解ISP全流程_哔哩哔哩_bilibili ISP (Image Signal Processing) - NPTEL公开课_哔哩哔哩_bilibili ISP Pipline_isp pipeline-CSDN博客 摄像头camera基础知识_哔哩哔哩_bilibili

PHP将HTML标签转化为图片

composer require yangshuanlin/php-html2img test.php <?php require vendor/autoload.php; use Html2image\Assets\html2Img;/*** html&#xff1a;可以是html文件 或者网页URL 或者为参数 必填* $data 额外的参数 必填* $back_url 回调地址 必填*/ $htmlfile_get_con…

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

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

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

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

前端React篇之React-Router的实现原理是什么?React-Router的路由有几种模式?

目录 React-Router的实现原理是什么&#xff1f;React-Router的路由有几种模式&#xff1f;HashRouterBrowserRouter React-Router的实现原理是什么&#xff1f; 基于hash的路由&#xff1a;通过监听浏览器的hashchange事件来感知URL中hash部分的变化。当hash发生变化时&#x…

名字空间和类型增强C++

一、名字空间 关键字&#xff1a;namespace&#xff1b; 作用&#xff1a;一个大项目中多个文件里的函数和变量名容易发生冲突&#xff0c;名字空间用来解决这种冲突 语法&#xff1a; namespace namespace_name {}例如&#xff1a; namespce Sample {int i;float f;void d…

PYTHON 120道题目详解(118-120)

118.解释Python中的迭代器&#xff08;Iterator&#xff09;和可迭代对象&#xff08;Iterable&#xff09;的区别和联系。 在Python中&#xff0c;迭代器&#xff08;Iterator&#xff09;和可迭代对象&#xff08;Iterable&#xff09;是两个非常重要的概念&#xff0c;它们在…

【微服务】nacos注册中心

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

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

IDEA中配置Tomcat

在IDEA中配置Tomcat 第一步&#xff1a;选择这个方框 第二步&#xff1a;选择号&#xff0c;找到Tomcat Server&#xff08;Local&#xff09; 第三步&#xff1a;将红方框内填完整 第四步&#xff1a;创建artifaces&#xff0c;选择Deployment–>Artia…选择 *.war expl…

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

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

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

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

以题为例浅谈SSRF

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

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

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

javase day04笔记

第四天课堂笔记 运算符★★★ 算数运算符 数值&#xff1a;相加、求和字符串&#xff1a;拼接表示正号 -相减 /%&#xff1a;求余数&#xff0c;取模/–&#xff1a;自加自减 后置&#xff1a;先自身加1&#xff0c;然后将加1之前的值&#xff0c;再做其他运算m 5 ; n m …

【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; 从各种来源加载大量文档数据。这些文档…

Apache Paimon 使用 Postgres CDC 获取数据

a.依赖准备 flink-connector-postgres-cdc-*.jarb.Synchronizing Tables&#xff08;同步表&#xff09; 在Flink DataStream作业中使用 PostgresSyncTableAction 或直接通过flink run&#xff0c;可以将PostgreSQL中的一个或多个表同步到一个Paimon表中。 <FLINK_HOME&g…