当前位置: 首页 > news >正文

trustZone学习

安全状态(放重要的信息),正常状态(放一些正常信息的放在这里)

在armv7-m 是两个状态一个线程模式一个异常模式
在armv8-m时分成了四个状态,一个是正常状态的线程模式和异常模式
另外一个是安全状态下的线程模式和异常模式

引入trustZone后中断也有差异,最主要的差异存在一个清0的操作

先把所有的寄存器入栈,入栈后把全部寄存器清0,然后在切换cpu的运行状态,
中断运行完以后先切换cpu的运行状态,在把全部寄存器进行出栈,

为什么要把寄存器清0,清0的作用,把PSR寄存器复位了,让黑客找不到栈的一些内容

另外一个变化是整个cortex -m的4GB地址空间在每一块空间里面分成了安全状态下的一块
正常状态的一块

在切换安全和正常状态下的cpu寄存器状态也做了更改

之前的时候R13只有msp和psp
在v8带了trustZone的
MSP_NS,MSPLIM_NS
psp同理

在v8时系统加入了栈溢出检测,还有栈溢出中断

引入了,non-secure内存和secure内存那程序之间怎么调用?
arm引入看sg列表的概念

比如在non-secure中调用了一个secure里的函数,先call在sg列表中
在到sg列表找到你的函数入口地址,在把函数地址送到pc,然后在运行secure里的函数
整个运行环境切换到安全状态,在这个环境下访问cpu会受到各种安全条件的检测和限制
(在m33的权威指南)

sg列表怎么实现的,通过代码对你的各个函数的安全的函数的注册(可能是)以后,、
c编译器会自动产生一个sg列表放在一个区域中


在renesas的RA MCU怎么用trustzone

renesas会有一个安全加密引擎v9


安全的软件可以同时访问安全的和非安全的内存和资源,而非安全的软件只能访问非安全的内存和资源。


内存分离代码闪存、
数据闪存和SRAM被分为安全(S)、
非安全(NS)和非安全可调用(NSC)区域。
当设备生命周期为“安全软件开发(SSD)”状态时,

通过串行编程命令将这些内存安全属性设置到非易失性内存中。


瑞萨IDAU区域设置IDAU(实现定义的属性单元)区域只能在引导模式下使用SCI( 串行通信接口)或USB进行设置,
不能在远程更新期间进行操作(例如,OTA)

调试和编程接口可以通过设备生命周期管理进行完全锁定。
支持Arm®TrustZone®的RAMCU使用设备生命周期管理系统来控制三个调试级别:
DBG2:允许使用调试器连接,并且不限制访问内存和外设。
DBG1:允许使用调试器连接,并且仅限于访问非安全的内存区域和外设。
DBG0:不允许使用调试器连接。

定义属性单元(IDAU)来设置安全区域。


后面靠jlink来,从一种状态到另一种状态的转换
 

相关文章:

  • USB转多串口设备固定串口号
  • 七牛云 OSS 文件上传demo
  • 我的VS2013版本
  • .NET DataGridView数据绑定说明
  • 商业化广告--体系学习--1
  • apk反编译和重新打包流程
  • Spring Security -- 前后端分离时的安全处理方案
  • 使用HttpServlet和@WebServlet注解
  • Arthas使用指北——命令、原理及案例
  • 简历撰写——Java与.NET(当年毕业生版本)
  • zookeeper知识点扫盲
  • UE5学习笔记 判断物体是否在相机视野内
  • 移动安全实战分享
  • Springboot操作mongodb的两种方法:MongoTemplate和MongoRepository
  • 流畅的Python读书笔记-第九章-符合Python风格的对象
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2017-09-12 前端日报
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6之路之模块详解
  • extjs4学习之配置
  • Lucene解析 - 基本概念
  • PHP的类修饰符与访问修饰符
  • Python语法速览与机器学习开发环境搭建
  • Redis在Web项目中的应用与实践
  • TypeScript实现数据结构(一)栈,队列,链表
  • 从PHP迁移至Golang - 基础篇
  • 从零搭建Koa2 Server
  • 力扣(LeetCode)22
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端之Sass/Scss实战笔记
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 思否第一天
  • 新书推荐|Windows黑客编程技术详解
  • zabbix3.2监控linux磁盘IO
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #14vue3生成表单并跳转到外部地址的方式
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (1)SpringCloud 整合Python
  • (1)常见O(n^2)排序算法解析
  • (Forward) Music Player: From UI Proposal to Code
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (一)RocketMQ初步认识
  • (一)SpringBoot3---尚硅谷总结
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET MVC之AOP
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .Net中的设计模式——Factory Method模式
  • .NET中两种OCR方式对比
  • :如何用SQL脚本保存存储过程返回的结果集
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下