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

TEE 全架构世界划分、切换节点与软件组件清单

TEE 全架构世界划分、切换节点与软件组件清单

整个 OP-TEE 体系基于 ARM TrustZone 硬件隔离技术构建,分为2 个硬件隔离世界 + 1 个中间监控层,对应 3 套独立软件系统;所有跨世界交互必须经过 EL3 监控层中转,由 CPU 硬件强制保证隔离性,不存在直接跨世界跳转的路径。

一、核心世界与对应软件系统划分

基于 ARMv8-A 特权级架构,三个执行环境的安全属性、运行层级与软件系统严格对应:
执行环境
安全属性
运行特权级
对应软件系统
核心定位
非安全世界(REE,富执行环境)
非安全态
EL0(用户态)、EL1(内核态)
Android/Linux 操作系统
普通业务、系统服务、应用进程的主要运行环境
EL3 监控层
安全态(最高特权)
EL3
ATF(ARM Trusted Firmware-A)固件
世界切换的唯一硬件枢纽,负责 SMC 分发、上下文保存、安全状态切换
安全世界(TEE,可信执行环境)
安全态
S-EL0(用户态)、S-EL1(内核态)
OP-TEE OS 可信操作系统
敏感逻辑、密钥、机密数据的安全运行环境,硬件级隔离防护
关键说明:EL3 不属于任何一个世界,是独立的最高特权监控环境;两个世界的所有切换、状态变更都必须由 EL3 固件完成,这是 TrustZone 安全隔离的硬件根基。

二、全流程中的世界切换节点

以「TA 动态加载 + 会话建立」完整流程为例,全程共发生 4 次 SMC 触发、4 次世界状态切换,所有跳转均经过 EL3 中转:

1. 初始状态

运行于非安全世界,软件系统为 Linux 内核(EL1),正在处理应用发起的 TEEC_OpenSession 请求。

2. 第一次切换:REE → TEE(业务请求下发)

  • 触发点:Linux 内核 OP-TEE 驱动执行 SMC #0 汇编指令
  • 中转层:CPU 自动陷入 EL3,运行 ATF BL31 固件
  • 终点:切换到安全世界,软件系统为 OP-TEE OS(S-EL1)
  • ATF 行为:保存非安全世界寄存器上下文 → 修改 SCR_EL3.NS 切换为安全态 → 恢复安全世界上下文 → 跳转至 OP-TEE 的 SMC 处理入口

3. 第二次切换:TEE → REE(RPC 反向请求)

  • 触发点:OP-TEE OS 发现目标 TA 未加载,构造 RPC 请求后执行 SMC 返回指令
  • 中转层:再次陷入 EL3,运行 ATF 固件
  • 终点:切回非安全世界,回到 Linux 内核的 SMC 调用返回点
  • ATF 行为:保存安全世界上下文 → 切换为非安全态 → 恢复非安全世界上下文 → 返回 Linux 内核驱动逻辑

4. 第三次切换:REE → TEE(RPC 结果回传)

  • 触发点:Linux 内核完成 RPC 处理(tee-supplicant 读取 TA 文件到共享内存),再次执行 SMC 指令
  • 中转层:EL3 ATF 固件
  • 终点:切回安全世界,OP-TEE OS 继续执行 TA 校验与加载逻辑

5. 第四次切换:TEE → REE(业务最终返回)

  • 触发点:OP-TEE OS 完成 TA 校验加载、会话创建,执行 SMC 返回指令
  • 中转层:EL3 ATF 固件
  • 终点:最终回到非安全世界,Linux 内核将会话建立结果逐层返回用户态应用

三、各世界的软件组件明细

1. 非安全世界(REE):Android/Linux 软件系统

(1)用户态组件(EL0 特权级)
组件名称
核心职责
对应源码路径(Android 生态)
CA(客户端应用)
TEE 服务的调用方,通过标准 API 发起加密、密钥存储等安全请求
第三方应用、系统应用(如 Keystore 客户端)
libteec 库
GlobalPlatform TEE Client API 标准实现,封装 ioctl 系统调用,对接内核驱动
external/optee_client/libteec/
tee-supplicant 守护进程
特权守护进程,独占/dev/teepriv0
设备,处理安全世界反向 RPC,代理 TA 加载、文件访问、RPMB 操作
external/optee_client/tee-supplicant/
(2)内核态组件(EL1 特权级)
组件名称
核心职责
对应源码路径(Linux 5.10)
TEE 核心子系统
通用抽象层,注册
/dev/tee0
字符设备,统一管理上下文、会话、共享内存
drivers/tee/tee_core.c
tee_shm.c
tee_bus.c
OP-TEE 驱动
OP-TEE 硬件适配层,封装消息协议、SMC 调用、中断处理、RPC 分发逻辑
drivers/tee/optee/core.c
call.c
shm.c
supp.c
SMCCC 架构层
ARM SMC 调用标准封装,底层汇编触发
SMC #0
指令,处理寄存器参数
arch/arm64/kernel/smccc-call.S
include/linux/arm-smccc.h

2. EL3 监控层:ATF 固件系统

该层为纯固件代码,运行在 CPU 最高特权级,随系统启动固化执行:
组件名称
核心职责
对应源码路径
ATF BL31 核心固件
EL3 运行时主体,实现异常向量表、SMC 通用处理、电源管理、安全状态切换
arm-trusted-firmware/bl31/
OP-TEE SPD(安全负载分发器)
ATF 内置的 OP-TEE 专属分发模块,负责 TEE 类 SMC 请求路由、OP-TEE 生命周期管理
arm-trusted-firmware/services/spd/opteed/

3. 安全世界(TEE):OP-TEE OS 软件系统

(1)内核态组件(S-EL1 特权级)
组件名称
核心职责
对应源码路径
OP-TEE OS 内核
安全世界操作系统主体,提供任务调度、内存管理、中断处理、驱动框架
optee_os/core/
TA 加载管理模块
负责 TA 镜像的签名校验、内存加载、会话创建、资源隔离
optee_os/core/tee/ta_load.c
加密服务框架
硬件加密引擎驱动、密码算法实现,为上层 TA 提供标准加密接口
optee_os/core/crypto/
RPC 框架
反向调用封装,向 REE 侧发起文件、RPMB 等服务请求
optee_os/core/arch/arm/kernel/
(2)用户态组件(S-EL0 特权级)
组件名称
核心职责
说明
TA(可信应用)
安全业务逻辑的载体,每个 TA 运行在独立沙箱中,对应唯一 UUID
例如指纹校验 TA、支付签名 TA、密钥管理 TA、安全存储 TA 等

四、架构安全边界总结

  1. 硬件强制隔离:两个世界的内存、外设、寄存器完全隔离,非安全世界无法直接访问安全世界的任何资源。
  2. 唯一入口管控:所有跨世界交互只能通过 SMC 指令发起,必须经过 EL3 ATF 的校验与分发,不存在旁路。
  3. 分层权限收敛:从 REE 应用 → 内核驱动 → ATF → TEE OS → TA,权限逐层收敛,每一层都做参数与边界校验。
  4. 单向可信传递:安全世界可以访问非安全共享内存,但会做严格地址校验;非安全世界绝对无法访问安全内存。
http://www.jsqmd.com/news/1027805/

相关文章:

  • 机器学习中的数据可视化:从探索分析到模型诊断的全流程实践
  • 打破音乐平台壁垒:如何用一个工具听遍全网所有歌曲?
  • 镇江漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 2026年不锈钢电缆桥架品牌推荐:多维度评测与选购指南 - 优质品牌商家
  • 手写神经网络:用NumPy解剖前向传播与反向传播
  • 2026年碳钢水箱与不锈钢水箱行业优选指南:资深从业者甄选7家靠谱企业 - 优质品牌商家
  • MiniMax-M2.7本地大模型部署实战:面向生产环境的工程化落地指南
  • 2026年北京精密机械加工与机器人零部件制造企业实力调研:技术装备与行业口碑推荐甄选 - 优质品牌商家
  • Code Interpreter深度解析:ChatGPT内置Python沙盒的架构与实战
  • 嵌入式虚拟化高可用实战:Hypervisor设备共享与故障转移机制解析
  • KeStudio DriveManage:伺服驱动器集成化调试与优化实战指南
  • Colab加载Kaggle数据集的三行稳定代码与实战避坑指南
  • 瑞芯微RV1126B开发板(EASY-EAI-PI2) 看门狗
  • 钦州漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 2026年绵阳租房中介口碑实力榜单甄选:这些本土机构值得关注 - 优质品牌商家
  • 微信群如何发起投票,西瓜评选+云帆投票+腾讯投票,2026 最新投票平台深度测评:测了 23 款,这 3 个值得选 - 投票小程序
  • 机场鸟类数据集构建指南:从数据采集到AI模型落地的全流程实践
  • 2026年青石园林雕刻栏杆推荐榜:官方甄选四川诚信厂家与真实案例深度评测 - 优质品牌商家
  • 华为MateBook 14s系统重装全攻略:从备份到优化,解决卡顿与驱动问题
  • AI入门避坑指南:问题驱动的机器学习实战路径
  • RAG项目初期为何不该盲目用向量数据库?NumPy轻量检索实战指南
  • 量子热力学与Jarzynski等式的光子模拟实验研究
  • 数据竞赛实战指南:从EDA到模型集成,攻克初赛核心难点
  • 2.4GHz射频硬件设计实战:从PCB布局到FCC认证的完整指南
  • 7856423
  • 混合搜索RAG实战:BM25+向量+重排序三段式架构
  • UIS-Digger:AI驱动的未索引信息智能检索系统
  • 2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
  • 2026年网络连接器行业甄选:多场景兼容型RJ45接口解决方案深度分析 - 优质品牌商家
  • Python数据科学实战地图:12个核心库的流水线级选型指南