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

【ARM】Trustzone和安全架构

Trustzone的基本概念&背景和历史

什么是Trustzone? 什么是TEE?

Trustzone是一个技术,是一个技术的设计,一个安全架构,既不是软件也不是硬件。
TEE (Trusted Execution Environment) 可信执行环境。就是依托Trustzone所实现的一个安全操作系统。
图1
TZC400,内存过滤单元,要不要挡住,不允许访问。
TAPC,配置controler的安全属性
在这里插入图片描述
在这里插入图片描述
2013 年 Apple 推出了第一款搭载指纹解锁的 iPhone:iPhone 5s,用以保证指纹信息安全的Secure Enclave 技术据分析深度定制了 ARM trustzone 架构,印象中这大概是 Trustzone 技术第一次走进大众视线
在这里插入图片描述
一个大系统中有很多操作系统。从图中可以看出有四个安全状态,Realm state、Non-secure state、Secure state、Root state。还有四个特权等级,每个志状态都可以跑多个虚拟机。

Runtime模型

任意时刻cpu都可能会跳过来进行工作叫做runtime
在这里插入图片描述

交互接口

在这里插入图片描述
从用户交互层到核心业务层的交互,从APPs调用GP Client API,该API是在llbteec.so中实现的。llbteec.so调用在KernelSpace中的tee_driver,KernelSpace中的tee_driver调用ATF中的opteed,opteed把消息转给optee_os,optee_os再把消息转给TA,TA再调用GP Internal Core API使用optee_os上的各种资源。

Processor (v8)

和core、cpu是一个概念
在这里插入图片描述NS=1表示是非安全的processor,程序跑在EL3时可以是安全也可以是非安全。SCR寄存器只有一个,只有SCR_EL3,只有EL3可以操作。

Processor (v9)

在这里插入图片描述
到了v9多了一个NSE比特位,有四种安全状态。后面也主要讨论v8。

安全和非安全状态的切换

在这里插入图片描述
从non-secure切到secure就是切cpu context,切换一堆系统寄存器。
所以只要经过ATF切换cpu context,就能达到SCR寄存器中NS比特位从0到1或从1到0的切换。

Secure Boot

业务安全<—APP安全<—操作系统安全<—SecureBoot<—efuse和签名私钥
<— 依赖关系,业务安全依赖APP安全

efuse

efuse每个比特只能下一次,从0到1

Boot模型

启动模型
在这里插入图片描述
BootROM(BL1)就相当于开机程序,只跑一次。BL1、BL2、BL31统称ATF。

编译和生产流程

在这里插入图片描述
首先对preloade签名,签名后变为preloade,img,sig,签名时首先把preloade,img放到xxxx,img,拿私钥对preloade.img进行签名,签名后生成一个证书cert1,证书中包含公钥。再拿root_priv.pem
密钥对cert1进行签名,签完名生成cert2证书。
私钥签名,公钥验签;


http://www.kler.cn/news/310090.html

相关文章:

  • [SDX35+WCN6856]SDX35 + WCN6856 WiFi导致系统crash问题分析及解决方案
  • (娱乐)魔改浏览器-任务栏图标右上角加提示徽章
  • 线性链条件随机场(Linear Chain Conditional Random Field)-有监督学习方法、概率模型、生成模型、对数线性模型、参数化模型
  • 力扣(LeetCode)每日一题 1184. 公交站间的距离
  • 前后端分离Vue美容店会员信息管理系统o7grs
  • Java-使用反射来处理对象,并构建新的JSON数据结构
  • 换个手机IP地址是不是不一样?
  • spring boot admin集成,springboot2.x集成监控
  • .net core8 使用JWT鉴权(附当前源码)
  • Python 之数据库操作(Python Database Operations)
  • Linux(ubuntu)(c语言程序)
  • C++(C++的文件I/O)
  • nanoGPT用红楼梦数据从头训练babyGPT-12.32M实现任意问答
  • Redis 5.0.4 安装教程
  • NFT Insider #147:Sandbox 人物化身九月奖励上线;Catizen 付费用户突破百万
  • PDF转图片的思路思考
  • Leetcode—环形链表||
  • 脚本基本规则
  • C++:日期类的实现
  • java 递归读取前10个匹配的文件所在的全路径
  • 松散绑定是什么?
  • 切换淘宝最新镜像源:优化NPM包管理的极致体验
  • windows C++ 并行编程-异步消息块(一)
  • 【系统架构设计师-2016年真题】案例分析-答案及详解
  • Java从入门到精通学习框架(三)
  • Mybatis+Druid+MybatisPlus多数据源配置
  • 闲鱼网页版开放,爬虫的难度指数级降低。
  • LDD学习启程(TODO)
  • 【React】React18新特性 - startTransition
  • vue-ts-demo