汽车信息安全--如何理解TrustZone(2)

server/2024/10/9 15:25:01/

目录

1.概述

2 如何切换安全状态

TrustZone%E9%87%8C%E5%AE%9E%E7%8E%B0%E4%BA%86%E4%BB%80%E4%B9%88%E5%8A%9F%E8%83%BD%EF%BC%9F-toc" style="margin-left:0px;">3 TrustZone里实现了什么功能?

HSM%E7%9A%84%E6%AF%94%E8%BE%83-toc" style="margin-left:0px;">4. 与HSM的比较


1.概述

汽车信息安全--如何理解TrustZone(1)-CSDN博客讲解了什么是Trustzone,下面我们继续讲解与HSM的区别。

2 如何切换安全状态

在引入安全扩展后,Armv8-M相应地也设计了新的指令,用于支持内核Secure和Non-Secure之间的函数调用。

  • Non-Secure调用Secure侧函数的指令:SG
  • Secure侧返回Non-Secure侧的指令:BXNS、BLXNS

具体使用方式如下图所示:

  • NSC:全称Non-Secure Callable,是一段memory,是Armv8-M处理器允许SG指令调用的唯一类型;
  • SG:Secure Gateway,如果SG如果不在NSC目标地址,则从NS到S的函数调用将产生Fault

上述示例具体实现如下:

对于中断的处理,两种状态可自由切换,硬件入栈上下文并根据条件清除限产,举例如下:

当CPU在Secure状态下运行代码时发生了NS的中断,此时被打断的代码、当前执行的上下文会被硬件自动压到对应状态的堆栈,此外还会自动清零当前寄存器防止数据泄露,当handler处理后,返回到Secure继续运行。

TrustZone%E9%87%8C%E5%AE%9E%E7%8E%B0%E4%BA%86%E4%BB%80%E4%B9%88%E5%8A%9F%E8%83%BD%EF%BC%9F">3 TrustZone里实现了什么功能?

从上面简介里我们可以发现,Armv8-M引入安全扩展的目的是为了实现系统隔离,借用网上对该架构的抽象图,主要是在CPU、资源、访问权限上做出了限制。

那引入TrustZone的目的就很明确了,希望在MCU内部建立一个隔离环境,为Non-Secure里的代码提供通信、数据等保护。 

以IoT产品为例,常见的安全保护功能架构如下:

Non-Secure运行IoT功能相关的代码,但当其需要敏感信息、通信加解密技术时,就可以调用TrustZone中的相关软件功能,而Secure硬件资源则可以实现敏感数据存储、安全OTA等等。 

HSM%E7%9A%84%E6%AF%94%E8%BE%83" style="background-color:transparent;">4. 与HSM的比较

Armv8-M的TrustZone是基于CPU视角的,因此本质上Secure和Non-Secure是基于某种时间片技术分时复用CPU,这与HSM拥有自己独立内核是有区别的;

其次,TrustZone本身是不含密码学相关组件的,相当于它是一个系统级别的隔离框架,具体框架里如何装修是要芯片架构师来把控。如新思提供的HSM IP,它就把这两个概念融合到一起,如下图:

针对单核,它设计了Fx HSM,猜想应该也是在安全和非安全态切片运行,只是在该方案中,它添加了密码学硬件加速引擎、真随机数生成器 ;

针对多核来说,设计了Vx HSM,这与我们常见的evita HSM就很像了。

所以,个人认为:

  • TrustZone是一种安全技术,用于ARM架构的处理器中,如ARM Cortex-A和Cortex-M系列处理器。
  • 它将处理器的安全状态分为安全区域(Secure World)和普通区域(Normal World),实现了硬件级别的隔离和安全保护。
  • 安全区域可以运行受信任的代码和安全应用,而普通区域则运行普通的应用程序。安全区域和普通区域之间的通信通过安全的通信通道进行,保证了安全性。
  • 据了解,该技术广泛应用于移动设备、物联网设备等领域,用于保护敏感数据和执行安全的应用程序。
  • HSM是一种专用的硬件设备,用于生成、存储和管理加密密钥,以及执行加密运算和安全操作。
  • HSM通常包含硬件隔离、加密芯片、随机数生成器等安全组件,能够提供高级的安全保护,防止密钥泄露和恶意攻击。
  • HSM广泛应用于安全领域,如金融行业、电子商务、云计算、汽车行业等,用于保护加密密钥、数字签名、加密数据等重要安全信息。

这两者主要区别在于,TrustZone是处理器级别的安全技术,用于实现硬件级别的隔离和安全保护,而HSM是一种专用的硬件设备,用于管理密钥和执行安全的加密运算。


http://www.ppmy.cn/server/16978.html

相关文章

如何安装sbt(sbt在ubuntu上的安装与配置)(有详细安装网站和图解)

sbt下载官网 选择对应的版本和安装程序 Download | sbt (scala-sbt.org) 安装 解压 将sbt-1.6.1.tgz上传到xshell,并解压 解压: tar -zxvf sbt-1.9.0.tgz 配置 1、在/home/hadoop/sbt中创建sbt脚本 /home/hadoop/sbt 注意要改成自己的地址 cd …

学习java第五十二天

JDK动态代理和CGLIB动态代理的区别? Spring AOP中的动态代理主要有两种方式:JDK动态代理和CGLIB动态代理。 JDK动态代理 如果目标类实现了接口,Spring AOP会选择使用JDK动态代理目标类。代理类根据目标类实现的接口动态生成,不…

web server apache tomcat11-15-proxy

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

RedisHttpSession反序列化UID问题跟踪

1.RedisHttpSession配置 package com.visy.configure;import org.springframework.context.annotation.Configuration; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;Configuration EnableRedisHttpSession(maxInactive…

【对象存储】SpringBoot集成华为云OBS对象存储

总体思路是后端向华为云OBS服务器申请授权信息并设置过期时间&#xff0c;后端再将授权信息以Map形式发给前端&#xff0c;前端将文件和授权信息直接发给华为云OBS服务器。 1. 引入依赖 <dependency><groupId>com.huaweicloud</groupId><artifactId>e…

【threejs教程9】threejs加载360全景图(VR)的两种方法

目录 前言 1.Equirectangular映射背景 实现步骤 1.初始化TextureLoader 2.加载Equirectangular纹理 3.配置映射类型和颜色空间 4.应用背景 完整代码如下 2.立方体贴图背景 实现步骤 1.创建CubeTextureLoader 2.加载立方体贴图 3.应用背景 完整代码如下 …

NLP(8)--利用RNN实现多分类任务

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 循环神经网络RNN&#xff08;recurrent neural network&#xff09;&#xff1a; 主要思想&#xff1a;将整个序列划分成多个时间步&#xff0c;将每一个时间步的信息依次输入模型&#xff0c;同时将模型输出的结果传给下一个…

分类算法——集成学习方法之随机森林(六)

集成学习方法 集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类 器/模型&#xff0c;各自独立地学习和作出预测。这些预测最后结合成组合预测&#xff0c;因此优于任何一 个单分类的做出预测。 随机森林 在机器学习中&#xff0c;随机森林是一…