搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Cpp五条
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
十四届蓝桥杯第三期模拟赛(C/C++ C组)_十四届蓝桥杯第三期模拟题
2
MyBatis 源码解析:通过源码深入理解 SQL 的执行过程
3
win10开机自启动python脚本_windows环境下配置python脚本的开机启动
4
Vue前端 更具router.js 中的meta的roles实现路由卫士,实现权限判断。_router.js能做判断吗
5
docker-compose health check unhealthy_docker-compose unhealthy
6
导入导出excel表格EasyExcel操作_@excelproperty
7
Python高级系列教程:Python的进程和线程_python怎么并行调用多个exe文件,且主线程打印内容
8
Ubuntu 18.04安装D435i 相机驱动及Ros1 Wrapper_ubuntu18.04安装realsense d435i相机sdk及realsense-ros
9
面试 CSS 框架八股文十问十答第三期
10
NameError: name ‘time‘ is not defined_nameerror: name 'timer' is not defined. did you me
当前位置:
article
> 正文
TrustZone初探 (二)_truestzone 切换环境 和 drtm有关嘛
作者:Cpp五条 | 2024-02-16 08:07:20
赞
踩
truestzone 切换环境 和 drtm有关嘛
5. trustzone和中断
中断也是隔离的,安全世界和普通世界有独立的VBAR寄存器,中断向量表。唯独monitor模式下有自己的中断向量表,寄存器是MVBAR,smc指令就是跳到这个向量表。GIC可以配置某个中断号属于安全世界还是普通世界的,有关GIC的安全的配置只有安全世界下才有权限配置。通常,IRQ会被配置成普通世界的中断源,而FIQ配成安全世界的,这是因为ARM上的操作系统比如Linux只用IRQ。当中断来的时候,如果该中断属于当前世界,那么中断就在当前世界处理了,如果不属于,那么会触发切换到monitor模式,monitor模式的代码需要考虑是不是切换到另外的世界来处理中断或是丢弃该中断。CPSR里面的F和A位是用来mask FIQ和external abort中断的,普通世界能不能修改两个bit也是安全世界说了算,SCR里面有禁止这两个bit被安全世界修改的位。
6. trustzone的物理内存和外设保护
Trustzone需要物理内存和外设在两个世界之间的隔离,这是安全世界真正在意的东西 --- 因为你所要保护的信息和内容就在内存里或是经过某些外设。
物理内存和外设的隔离保护通过TZASC和TZPC的设置来达到目的。TZASC可以把物理内存分成多个区域,每个区域的访问权限可以灵活配置为安全区域或是非安全区域,甚至可以配置成只有普通世界可以访问。TZPC则是配置不同的外设属于哪个世界。当然了TZASC和TZPC的配置只能在安全世界下进行。
7. trustzone和多核
比如四核的soc,每个核都可以配成两个虚拟核,那么总共会有8个世界。虽然cache一致性、中断处理等机制硬件层都尽量避免不同世界互相干扰。但是在系统软件设计上,cache的一致性,多核之间的普通世界和安全世界之间的状态管理和同步都需要精心设计。 如果使用的场景不复杂,最好就配置安全世界只在一个核上运行,所有其他核上的请求都经过这个核最终产生请求,这样简可以简化软件设计,增加系统的可靠性和稳定性。
8. trustzone和ACP
ACP(Accelerator Coherence Port)作为AXI slave interface,也带有安全属性,比如某个PCIe是连到ACP端口的,如果PCIe是配置为属于普通世界的,那么ACP产生的事务也是non-secure的,这时候打个比方说ACP的作用region是DDR的区域0-128M,那么0-128M必须配置为属于普通世界 ,或者说可以把linux的DMA zone配置在128M以内,并把这个DMA区域配置为属于普通世界,否则ACP功能就没法用了。
总结,soc启动的时候就开始工作在secure世界,secure启动代码需要做所有的安全方面的初始化和资源配置,并load安全内核和普通世界代码(比如Linux),由于硬件单元的支持,理论上现有的普通世界操作系统代码不需要修改或者很少修改就能正常工作,唯一欠缺的是一个通过安全世界的驱动程序。TrustZone技术中,TEE系统代码开发才是大头,现有的开源项目如openvirtualization以及Op-Tee可以提供不少参考。
另外,TEE技术还需要比较重要的一环就是secure boot,这是整个系统的root of secure,从上电boot就保证要启动的image没被篡改,从而从根本上保证系统的安全性。那又是另外一个话题了。
本文内容由网友自发贡献,转载请注明出处:
https://www.wpsshop.cn/w/Cpp五条/article/detail/91905
推荐阅读
article
Python
——画一棵漂亮的
樱花
树
(不同种
樱花
+玫瑰+
圣诞树
喔_
bgcolor
(
0.5
,
0.5
,
0....
原创
Python
——画一棵漂亮的
樱花
树
(不同种
樱花
+玫瑰+
圣诞树
喔) ...
赞
踩
article
网页前端(
Html
)
video
播放
m3u8
(
HLS
)&Vue使用
video
.js播放
m3u8
_htm...
网页前端(
Html
)
video
播放
m3u8
(
HLS
)
HLS
(HTTP Live Streaming)是Apple公司研...
赞
踩
article
Antd之
Modal
+
Form
_
antd
modal
form
...
在react+
antd
的前端开发中少不了使用
Modal
+
Form
的形式来实现添加/编辑等功能!本文主要记录在使用
antd
...
赞
踩
article
Unity
Input
输入
类-
鼠标
键盘检测_
input
鼠标
...
Unity
提供了丰富的
输入
类来帮助你获取用户的
输入
,并做出相应的响应。GetMouseButton、GetMouseBu...
赞
踩
article
QT
笔记
-
QGraphicsView
类
函数
mapFromScene
()、
mapToScene
()说...
QPoint
mapFromScene
(x, y):该
函数
返回的是一个位置的坐标值。首先我们要知道,同一个位置用不同的坐...
赞
踩
article
element
表单
动态
生成多个
表单
项,并验证_
element
ui
form
表单
动态
生成多个
表单
共用...
项目中有需求,一行显示多个
表单
项,同时,这些
表单
项要支持
动态
增加与验证,实现效果如下:点击右侧的加号就会生成一行部门数据...
赞
踩
article
Openharmony
应用
NAPI
详解
--
进阶篇1
_
napi
使用...
NAPI
面向C++的异步接口callback
napi
_
create
_
async
_
work
napi
_
queue
_
async...
赞
踩
article
Unity3d
更改
UI
及物体的
透明度
_
unity
ui子节点
透明度
...
Unity3d
更改
UI
的
透明度
动态
更改
G
UI
纹理的
透明度
void OnG
UI
(){alpha += 0.01f;G
UI
...
赞
踩
article
【内网
穿透
】
搭建
我的世界
Java
版
服务器
,公网远程联机_
minecraft
win
服务器
搭建
...
本次教程将在
win
dows本地
搭建
java版的MC
服务器
,并用cpolar内网
穿透
突破局域网限制,实现在公网环境下跟小伙...
赞
踩
article
小
程序
配置
服务器
域名
流程指南...
根据
小
程序
的需求,选择合适的
服务器
配置和操作系统,安装必要的Web
服务器
软件(如Nginx、Apache等)、数据库系统...
赞
踩
article
python
websocket
库
安装
_
python
怎么连接
websocket
...
展开全部以下有一个例子,是基于
python
27版本的,先要pip
安装
websocket
-client。大概流程如下,具体...
赞
踩
article
el
-
table
设置
show
-
overflow
-
tooltip
属性后,数据
过多时
(超过
3000
字符)...
这里写自定义目录标题
el
-
table
设置
show
-
overflow
-
tooltip
属性后,数据
过多时
(超过
3000
字符)...
赞
踩
article
基于
YOLOv8
的水下生物
检测
,多种优化方法---超
轻量
高效
动态
上
采样
DySample
涨点四个点(五...
水下生物
检测
类别:0: echinus2: scallop数据集大小:1000张
YOLOv8
独家
改进
:上
采样
算子 | 超...
赞
踩
article
Unity
—
Input
类_
unity
input
类...
Input
Manager什么是
Input
Manager属性编辑API练习1.鼠标垂直移动,使摄像机上下旋转,鼠标水平...
赞
踩
article
学习
笔记29-
池化
使用
方法
(
池化
选择法则)
_
自适应
平均
池化
...
池化
意义:
池化
层往往在卷积层后面,通过
池化
来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合)。一般
池化
方法
平均
...
赞
踩
article
YOLOv8
-
Seg
改进:
分割
注意力
系列篇 |
轻量级
上采样
CARAFE
算子,助力小目标
分割
_car...
轻量级
上采样
CARAFE
算子,引入到
YOLOv8
,neck处 Upsanple替换为
CARAFE
,在小目标
分割
领域中应用...
赞
踩
article
JS
特效
第141弹:
jquery
制作非常
可爱
的
火箭筒
返回顶部
代码
...
经典的JS
特效
动画效果,效果实现的全部
代码
已提供,可供学习借鉴JS
特效
第141弹:
jquery
制作非常
可爱
的
火箭筒
返回顶...
赞
踩
article
封装
Antd
中
Modal
对话框
内提交
表单
组件,开发效率翻倍_
u
-
modal
里面放置
form
表单
...
业务背景:在业务管理系统的项目中,几乎每个页面都会出现增、删、改、提交等
对话框
,如下图所示:如果每个弹出的
对话框
,都去拷...
赞
踩
article
EasyPlayer
播放
器
浏览器
ActiveX
/OCX插件
RTSP
播放
/抓拍/录像功能调用说明_ea...
EasyPlayer
Pro与
EasyPlayer
-
RTSP
新增ocx多窗口
播放
功能这里以
EasyPlayer
Pro为例,...
赞
踩
article
Unity
-
Timeline
制作
动画
(快来制作属于你的
动画
吧)
_
unity
timeline
怎么启...
Timeline
是一个线性编辑工具,用于序列化不同元素,包括
动画
剪辑、音乐、音效、摄像机画面、粒子特效以及其它Timel...
赞
踩
相关标签
Vue
Html
m3u8
HLS
react
前端
reactjs
ant
unity
计算机外设
游戏引擎
elementui
vue
openharmony
Unity3d
透明度
java
服务器
开发语言
运维
小程序
python websocket库 安装
机器学习
人工智能