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

目录

1.车规MCU少见TrustZone

2. 什么是TrustZone

2.1 TrustZone隔离了什么?

2.2 处理器寄存器和异常处理

3.小结


1.车规MCU少见TrustZone

在车规MCU里,谈到信息安全大家想到的大多可能都是御三家的HSM方案:英飞凌的HSM\SHE+、瑞萨的ICU、恩智浦的HSE/CSE,这些都被称为HTA(Hardware Trust Anchors)。

这三家的MCU架构里,Host和HSM分别有自己独立的CPU、密码算法硬件加速器、独占Flash等,如下图:

而当我Review Vector培训材料时,发现了以前经常听到但没有深入研究过的TrustZone也被当做了HTA:

 那么什么是TrustZone?它与HSM区别在哪里?今天就通过Cortex-M33来分析一下。

2. 什么是TrustZone

根据Arm官方介绍,TrustZone最先是Arm A核的一种安全架构的统称,它在SOC系统级别提供硬件隔离机制将系统分成了两个运行环境:TEE(Trusted Execution Environment)和REE( Rich Execution Environment):

在REE中,通常执行复杂且功能丰富的应用软件,意味着其攻击面广,更易遭受网络攻击;在TEE中通常为REE提供授信服务,例如加解密、密钥管理等等,这与HSM/SHE的理念比较相似。

后来随着IoT的发展,M核的处理器也提出了相应的信息安全需求,所以TrustZone在ARM V8-M中作为Security Extension被引入。

2.1 TrustZone隔离了什么?

在Armv8-M架构下引入安全扩展后,从CPU、到系统外设资源再到访问方式上都做了隔离和新的设计。

从内核角度来看,与安全扩展相关的组件包括Processor Core、SAU、SMPU和NSMPU、BusMatrix,总结如下图:

对于Processor Core的运行状态,引入了Non-Secure和Secure状态:

SAU用于定义和识别存储器地址的安全区域和非安全区域,在Secure和Non-Secure状态下分别有各自的MPU

通常情况下,CPU进行数据访问时,根据当前内核运行处于安全或非安全,从而索引到SMPU或者NSMPU的配置,如下图:

当CPU取指时,通过SAU中配置的目标地址安全属性,从而索引到SMPU或者NSMPU,如下:

既然内核、SAU和MPU有Secure和Non-Secure之分,那么在存储器、外设等属性上也应该有该分类。在M33里使用了AMBA5 AHB5,该总线携带安全、非安全访问标记,可实现安全和为安全的访问,因此,在芯片设计之初,从内核到芯片级别的完整硬件隔离机制可按如下示例实现:

2.2 处理器寄存器和异常处理

当安全扩展引入后,处理器分为了Secure和Non-Secure两种状态,因此对应状态的寄存器相应也有变化。如下图所示:

  • R0-R12:Secure和Non-Secure状态共用一套;
  • SP:包含MSP(Main)和PSP(Process)(针对Handler和Thread Mode),在不同状态下有两组Banked寄存器,后缀为S、NS;
  • PSPLIM、MSPLIM:新增寄存器,用于限制MSP和PSP堆栈,在不同状态各有一套;

同样的,在异常也可以被指定为Secure和Non-Secure。那么从软件角度来看,中断向量表也需要分为安全和非安全两个,如下图:

可以看到,Secure和Non-Secure都有各自的Handler,有些中断是Banked,但也有些异常是只有Secure才有,如SecureFault。

需要注意的是,所有外设中断上电默认都指向Secure 向量表,但是我们可以在Secure状态运行的代码里修改权限,将外设指向Non-Secure向量表。

3.小结

本文讲解了什么是Trustzone,下文我们继续讲解与HSM的区别、

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【【gitlab解决git Clone 出现 Permission denied, please try again.】】

【gitlab解决git Clone 出现 Permission denied, please try again.】 问题解决随便找一个地方 点击右键输入ssh -keygen -C "邮件"显示结果输入 登录gitlab然后再次git Clone就可以了。 问题 git clone的时候出现 Permission denied, please try again 解决 随便…

跨语言指令调优深度探索

目录 I. 介绍II. 方法与数据III. 结果与讨论1. 跨语言迁移能力2. 问题的识别3. 提高跨语言表现的可能方向 IV. 结论V. 参考文献 I. 介绍 在大型语言模型的领域,英文数据由于其广泛的可用性和普遍性,经常被用作训练模型的主要语料。尽管这些模型可能在英…

jar依赖批量上传Nexus服务器(二)

jar依赖批量上传Nexus服务器(二) 批量上传脚本 #!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itself explicitly so the script name is important…

华为数字化转型与数据管理实践介绍(附PPT下载)

华为作为全球领先的信息与通信技术(ICT)解决方案提供商,在数字化转型和数据管理领域拥有丰富的实践经验和技术积累。其数字化转型解决方案旨在帮助企业通过采用最新的ICT技术,实现业务流程、组织结构和文化的全面数字化&#xff0…

电子工艺卡在汽车制造流程中的应用

在当今高度发达的汽车工业中,电子工艺卡作为一种重要的工具,在汽车制造流程中发挥着至关重要的作用。它不仅是汽车生产的指导手册,更是确保汽车质量和性能的关键因素。 汽车制造是一个复杂而精密的过程,涉及众多的零部件和系统。电…

云LIS系统概述JavaScript+前端框架JQuery+EasyUI+Bootstrap医院云HIS系统源码 开箱即用

云LIS系统概述JavaScript前端框架JQueryEasyUIBootstrap医院云HIS系统源码 开箱即用 云LIS(云实验室信息管理系统)是一种结合了计算机网络化信息系统的技术,它无缝嵌入到云HIS(医院信息系统)中,用于连…

粘合/胶合/粘接/聚酰亚胺PI材料使用UV胶,具有高强度粘接的优势,这一点具体要如何操作?(三十五)

前面文章说明使用UV胶粘合聚酰亚胺PI材料时,有一点优势是:具有高强度粘接,UV胶粘剂对聚酰亚胺PI材料具有良好的附着性,能够提供高强度的粘接。这对于需要承受重负载或高应力的应用来说尤为重要。 这一点提到UV胶在粘合聚酰亚胺&am…

03-JAVA设计模式-状态模式

状态模式 什么是状态模式 Java中的状态模式(State Pattern)是一种行为型设计模式,主要用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。状态模式允许一个对象在其内部状态改变时改变它的行为,使得对象看起来似乎…

Stable Diffusion WebUI 使用 VAE 增加滤镜效果

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 本文主要介绍 VAE 模型,主要内容有:VAE 模型的概念、如果下载 VAE 模型、如何安装 VAE 模型、如…

STL——List常用接口模拟实现及其使用

认识list list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素…

FlyFlow:全新开源版问世,支持SpringBoot3+Flowable7

经过精心打磨和严格测试,我们隆重推出全新FlyFlow开源版,这款源自商业版的强大工具,如今已完美融入SpringBoot3和Flowable7两大核心框架,为开发者带来前所未有的便捷与高效。 SpringBoot3的加持,让FlyFlow在简化开发流…

【计算机网络】成功解决 ARP项添加失败:请求的操作需要提升

最近在用Wireshark做实验时候,需要清空本机ARP表和DNS缓存,所以在cmd窗口输入以下命令, 结果发生了错误:ARP项添加失败:请求的操作需要提升 一开始我还以为是操作的命令升级了,但是后面发现其实只是给的权…

python 中使用 ESP8266 实现语音识别(或热词检测)

介绍 我的大部分家庭自动化都是通过对网络中的设备执行 HTTP 请求来控制的。 (例如:开灯、打开收音机、控制加热系统...... 这可以使用ESP8266轻松完成。我有一个控制器和一个触摸传感器,当我在床上时用它来控制灯光和音乐。 像 Amazon Echo 或 Google Homepod 一样添加语…

Rime 如何通过 iCloud 实现词库多端同步,Windows、iOS、macOS

Rime 如何通过 iCloud 实现词库多端同步,Windows、iOS、macOS 一、设备环境 最理想的输入环境就是在多端都使用同一个词库,这样能保持多端的输入习惯是一致的。 以我为例,手头每天都要用到的操作平台和对应的输入法: 操作系统设…

《R语言与农业数据统计分析及建模》学习——方差分析

方差分析是研究一种或多种因素的变化对试验结果的观测值是否有显著影响,从而找到较优试验条件或生产条件的一种常用数理统计方法。 方差分析根据平方和的加和原理,利用F检验,进而判断试验因素对试验结果的影响是否显著。 分为:单因…

【Ajax-异步刷新技术】什么是Ajax之续章 !

文章目录 Ajax第五章1、layui的后台布局2、layui的数据表格1、在jsp页面中编写table2、在页面中引入文件3、编写代码4、参照文档修改表格属性 **3、最终效果** 第六章1、继续第五章内容1、layui组件2、添加数据3、查看数据4、修改数据5、删除数据 2、批量删除核心 3、数据表格重…

金融级国产化替代中间件有哪些?

过去,国内中间件市场一直由IBM、Oracle等国际大型企业所主导,这在一定程度上限制了对国内企业多样化和个性化需求的满足,尤其是在实现底层硬件与上层应用软件之间高效、精准匹配方面。面对日益复杂的国际局势,金融安全已成为国家整…

算法项目(9)—— 大模型实现PDF检索加QA

本文包含什么? 使用大语言模型进行多个PDF问答检索加QA.gradio实现的网页界面操作,全套代码以及代码介绍运行有问题? csdn上后台随时售后.项目说明 本项目实现使用大语言模型为核心,gradio框架,调用vicuna实现多个pdf QA 代码运行 python3 main.pyimport gradio as gr fr…

vscode 创建代码模版

在vscode中快捷创建代码模版 1.在VSCode中,按下Ctrl Shift P(Windows/Linux)或Cmd Shift P(Mac)打开命令面板。 2.然后输入"Preferences: Configure User Snippets"并选择该选项。打开一个json文件用户…

关于5V继电器模块使用问题记录

1、stm32f103c8t6信号引脚设置为开漏输出模式 2、发现无论高低电平继电器都是闭合的,无法控制 3、单片机复位时,继电器会有异响滋滋声 4、烧录器是一直连接单片机的,后面测试拔掉烧录器后,继电器模块正常工作。 原因是单片机供…