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

📅 2026/6/17 5:34:01
TEE 全架构世界划分、切换节点与软件组件清单
TEE 全架构世界划分、切换节点与软件组件清单整个 OP-TEE 体系基于 ARM TrustZone 硬件隔离技术构建分为2 个硬件隔离世界 1 个中间监控层对应 3 套独立软件系统所有跨世界交互必须经过 EL3 监控层中转由 CPU 硬件强制保证隔离性不存在直接跨世界跳转的路径。一、核心世界与对应软件系统划分基于 ARMv8-A 特权级架构三个执行环境的安全属性、运行层级与软件系统严格对应执行环境安全属性运行特权级对应软件系统核心定位非安全世界REE富执行环境非安全态EL0用户态、EL1内核态Android/Linux 操作系统普通业务、系统服务、应用进程的主要运行环境EL3 监控层安全态最高特权EL3ATFARM 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 OSS-EL1ATF 行为保存非安全世界寄存器上下文 → 修改 SCR_EL3.NS 切换为安全态 → 恢复安全世界上下文 → 跳转至 OP-TEE 的 SMC 处理入口3. 第二次切换TEE → REERPC 反向请求触发点OP-TEE OS 发现目标 TA 未加载构造 RPC 请求后执行 SMC 返回指令中转层再次陷入 EL3运行 ATF 固件终点切回非安全世界回到 Linux 内核的 SMC 调用返回点ATF 行为保存安全世界上下文 → 切换为非安全态 → 恢复非安全世界上下文 → 返回 Linux 内核驱动逻辑4. 第三次切换REE → TEERPC 结果回传触发点Linux 内核完成 RPC 处理tee-supplicant 读取 TA 文件到共享内存再次执行 SMC 指令中转层EL3 ATF 固件终点切回安全世界OP-TEE OS 继续执行 TA 校验与加载逻辑5. 第四次切换TEE → REE业务最终返回触发点OP-TEE OS 完成 TA 校验加载、会话创建执行 SMC 返回指令中转层EL3 ATF 固件终点最终回到非安全世界Linux 内核将会话建立结果逐层返回用户态应用三、各世界的软件组件明细1. 非安全世界REEAndroid/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.10TEE 核心子系统通用抽象层注册/dev/tee0字符设备统一管理上下文、会话、共享内存drivers/tee/tee_core.ctee_shm.ctee_bus.cOP-TEE 驱动OP-TEE 硬件适配层封装消息协议、SMC 调用、中断处理、RPC 分发逻辑drivers/tee/optee/core.ccall.cshm.csupp.cSMCCC 架构层ARM SMC 调用标准封装底层汇编触发SMC #0指令处理寄存器参数arch/arm64/kernel/smccc-call.Sinclude/linux/arm-smccc.h2. 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. 安全世界TEEOP-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 等四、架构安全边界总结硬件强制隔离两个世界的内存、外设、寄存器完全隔离非安全世界无法直接访问安全世界的任何资源。唯一入口管控所有跨世界交互只能通过 SMC 指令发起必须经过 EL3 ATF 的校验与分发不存在旁路。分层权限收敛从 REE 应用 → 内核驱动 → ATF → TEE OS → TA权限逐层收敛每一层都做参数与边界校验。单向可信传递安全世界可以访问非安全共享内存但会做严格地址校验非安全世界绝对无法访问安全内存。