news 2026/6/15 5:01:28

ARMv8隔离区实体固件全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ARMv8隔离区实体固件全解析

各隔离区运行的实体固件详解

ARMv8架构通过异常等级和安全状态将系统划分为多个隔离区,每个隔离区运行着不同的实体固件,负责不同的功能。理解每个隔离区运行的实体固件,是掌握整个系统架构的关键。

1.1 标准ARMv8隔离区实体

1.1.1 EL3:BL31 Secure Monitor
EL3是整个系统的最高权限等级,运行BL31 Secure Monitor固件。BL31是标准ATF的核心组件,负责以下功能:
  1. 世界切换:负责安全世界与非安全世界之间的切换。
  2. SMC处理:处理来自两个世界的SMC调用。
  3. 中断路由:配置GIC中断控制器,路由安全中断和非安全中断。
  4. 电源管理:提供PSCI(Power State Coordination Interface)电源管理服务。
  5. 系统初始化:初始化系统的核心硬件,如GIC、TZC-400等。
BL31的代码量通常在100KB左右,完全开源,代码位于ATF源码的bl31/目录下。
1.1.2 SEL1:TEE操作系统
SEL1是安全世界的内核态,运行TEE操作系统。主流的TEE操作系统有:
  1. OP-TEE:由Linaro维护的开源TEE,完全符合GlobalPlatform标准,支持多种硬件平台。
  2. Google Trusty:由Google开发的开源TEE,与Android系统深度集成,主要用于Pixel设备。
  3. QSEE:高通开发的闭源TEE,用于骁龙平台。
  4. Trustonic Kinibi:Trustonic开发的闭源TEE,广泛用于三星、联发科等平台。
TEE操作系统负责以下功能:
  1. 可信应用管理:加载、运行和管理可信应用(TA)。
  2. 安全存储:提供基于硬件加密的安全存储服务。
  3. 加密运算:使用硬件加密引擎执行加密、解密、签名、验证等操作。
  4. 可信UI:提供安全的用户界面,防止钓鱼攻击。
  5. 生物识别:处理指纹、人脸等生物识别数据。
TEE操作系统的代码量通常在1MB左右,开源TEE的代码位于各自的源码仓库中。
1.1.3 SEL0:可信应用(TA)
SEL0是安全世界的用户态,运行可信应用(Trusted Application, TA)。TA是专门用于处理敏感操作的应用程序,运行在TEE操作系统提供的隔离环境中。
每个TA都有自己独立的地址空间,相互之间完全隔离。TA只能通过TEE操作系统提供的API访问系统资源,无法直接访问硬件或非安全世界的内存。
常见的TA有:
  1. Keymaster TA:负责密钥的生成、存储和运算。
  2. Gatekeeper TA:负责密码验证,防止暴力破解。
  3. Fingerprint TA:负责指纹模板的存储和比对。
  4. Face TA:负责人脸模板的存储和比对。
  5. Payment TA:负责安全支付相关的操作。
TA的代码量通常在几十KB到几百KB之间,可以是开源的,也可以是闭源的。
1.1.4 NSEL1:Linux内核
NSEL1是非安全世界的内核态,运行Linux内核。Linux内核是Android系统的核心,负责以下功能:
  1. 进程管理:管理系统中的所有进程。
  2. 内存管理:管理系统的物理内存和虚拟内存。
  3. 设备驱动:提供硬件设备的驱动程序。
  4. 文件系统:管理系统的文件系统。
  5. 网络协议栈:提供网络通信功能。
Linux内核的代码量非常庞大,超过2000万行,完全开源,代码位于Linux内核源码仓库中。
1.1.5 NSEL0:Android应用
NSEL0是非安全世界的用户态,运行Android应用。Android应用是普通用户直接交互的程序,运行在Linux内核提供的隔离环境中。
每个Android应用都有自己独立的用户ID和地址空间,相互之间完全隔离。应用只能通过Android系统提供的API访问系统资源,无法直接访问硬件或其他应用的内存。
常见的Android应用有:
  1. 系统应用:如电话、短信、相机、设置等。
  2. 第三方应用:如微信、支付宝、抖音等。
Android应用的代码量差异很大,从几十KB到几百MB不等。

2.2 MT8766隔离区实体

MT8766的隔离区实体与标准ARMv8基本一致,但在EL3和SEL1做了一些定制化修改。
2.2.1 EL3:Preloader中的Secure Monitor
MT8766的EL3运行preloader.img中的Secure Monitor模块。与标准BL31不同,MT8766的Secure Monitor与BL2合并为一个单一的preloader.img镜像,全程运行在EL3。
MT8766的Secure Monitor负责以下功能:
  1. 世界切换:负责安全世界与非安全世界之间的切换。
  2. SMC处理:处理来自两个世界的SMC调用。
  3. 中断路由:配置GIC中断控制器,路由所有中断到EL3,然后转发给对应的世界。
  4. 电源管理:提供MTK特有的电源管理服务。
  5. 系统初始化:初始化DDR、时钟、电源等核心硬件。
preloader.img的代码量通常在200KB左右,部分开源,包含大量闭源二进制blob,代码位于MTK ATF源码的plat/mediatek/目录下。
2.2.2 SEL1:Kinibi TEE内核
MT8766的SEL1运行Trustonic Kinibi TEE内核。Kinibi是一款闭源的微内核TEE,具有体积小、安全性高、实时性好等特点。
Kinibi TEE内核负责以下功能:
  1. 微内核管理:提供最基本的进程调度和内存管理功能。
  2. 驱动管理:管理安全外设的驱动程序,所有驱动都运行在S-EL0。
  3. TA管理:加载、运行和管理可信应用。
  4. 安全存储:提供基于RPMB分区的安全存储服务。
  5. 加密运算:使用MTK的HACC硬件加密引擎执行加密运算。
Kinibi TEE内核的代码量非常小,只有约200KB,完全闭源,只有二进制镜像tee.img。
2.2.3 SEL0:Kinibi TA与驱动
MT8766的SEL0运行Kinibi TA和驱动。与标准TEE不同,Kinibi采用微内核架构,所有驱动和服务都运行在S-EL0,作为独立的TA。
常见的Kinibi TA和驱动有:
  1. Keymaster TA:负责密钥的生成、存储和运算。
  2. Gatekeeper TA:负责密码验证。
  3. Fingerprint TA:负责指纹模板的存储和比对。
  4. HACC驱动:硬件加密引擎的驱动程序。
  5. RPMB驱动:RPMB分区的驱动程序。
Kinibi TA和驱动都是闭源的,编译为MCLF格式,内置在tee.img中。
2.2.4 NSEL1:LK Bootloader与Linux内核
MT8766的NSEL1首先运行LK(Little Kernel)Bootloader,然后由LK加载和启动Linux内核。
LK是一款轻量级的Bootloader,负责以下功能:
  1. 硬件初始化:初始化非安全世界的硬件设备。
  2. 镜像加载:从eMMC加载Linux内核和Android系统镜像。
  3. 安全启动验证:验证Linux内核和Android系统镜像的签名。
  4. 启动参数传递:将启动参数传递给Linux内核。
Linux内核的功能与标准Linux内核基本一致,但包含了大量MTK特有的驱动程序和补丁。
2.2.5 NSEL0:Android应用
MT8766的NSEL0运行Android应用,与标准Android应用完全一致。

3.3 对比总结

隔离区

标准ARMv8实体

MT8766实体

EL3

BL31 Secure Monitor

Preloader中的Secure Monitor模块

SEL1

OP-TEE/Trusty TEE内核

Trustonic Kinibi TEE内核

SEL0

可信应用(TA)

Kinibi TA与驱动

NSEL1

Linux内核

LK Bootloader + Linux内核

NSEL0

Android应用

Android应用


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 4:59:55

【前端】多线程 worker

VUE3 引用npm install worker-loader在vue.config.js文件的defineConfig里加上配置参数chainWebpack: config > {config.module.rule(worker-loader).test(/\.worker\.js$/).use({loader: worker-loader,options: {inline: true}}).loader(worker-loader).end()}先在src目录…

作者头像 李华
网站建设 2026/6/14 3:22:44

AI辅助开发lz4解压器,智能适配文件特征并优化解压性能

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请扮演AI编程助手,分析并生成一个智能的lz4文件解压解决方案,请先分析输入文件的大小和特征,然后自动选择最合适的解压缓冲区大小和并发策略&am…

作者头像 李华
网站建设 2026/6/14 3:22:43

APC先进过程控制定义及在生产制造业的核心作用|学习笔记

一、APC先进过程控制基本定义APC,全称先进过程控制(Advanced Process Control),是一套依托现代控制理论、大数据建模、动态仿真与计算机运算技术构建的智能化工业过程优化控制体系,并非单一固定的算法或设备&#xff0…

作者头像 李华