(参考资料:TrustZone for V8-A. pdf,来源ARM DEVELOPER官网)
TEE(Trusted Execution Environment,可信实验环境)是用于实验敏感代码和处置惩罚敏感数据的独立安全区域;以ARM TrustZone为例,TEE和普通实验环境(REE)通过硬件和软件的结合实现隔离和保护。TEE在移动终端领域重要用于移动付出(微信、付出宝)、数字版权保护、生物识别(指纹、虹膜、人脸)等。
1 ARMv7 和 ARMv8 架构
1)ARMv7 架构
1.1)PL0 (USR):用户模式,最低特权级别。
1.2)PL1 (SVC/ABT/IRQ/FIQ/UND/SYS):内核模式,较高特权级别,包括多个异常模式。
- SVC (Supervisor Call):管理模式。
- ABT (Abort):数据或预取中断异常。
- IRQ (Interrupt Request):制止哀求。
- FIQ (Fast Interrupt Request):快速制止哀求。
- UND (Undefined Instruction):未定义指令。
- SYS (System):体系模式,运行体系级软件。
1.3)Hyp:虚拟化扩展,支持 Hypervisor 模式。
1.4)Monitor:TrustZone 安全监控模式,用于安全世界和正常世界的切换。
2)ARMv8 架构
2.1)EL0 (Exception Level 0):用户模式,等同于 ARMv7 的 PL0。
2.2)EL1 (Exception Level 1):内核模式,等同于 ARMv7 的 PL1。
2.3)EL2 (Exception Level 2):虚拟化模式,等同于 ARMv7 的 Hyp。
2.4)EL3 (Exception Level 3):安全监控模式,等同于 ARMv7 的 Monitor。
3)对应关系
通过以上机制和结构,ARM TrustZone 能够有效地在硬件上实现安全世界和正常世界的隔离,从而提高体系的整体安全性。
2 TrustZone技术
1)概述
ARM TrustZone 是一种体系级的安全架构,最早在 ARMv6K 中引入,而且在 v7、v8和v9中得到了支持。TrustZone 提供两个实验环境,并通过硬件强制实现它们之间的隔离:Normal World正常世界和Secure World安全世界。
正常世界:运行复杂的操作体系(例如 Linux)和丰富的软件堆栈,包括大量的应用步伐和可能存在的虚拟机监控步伐。只管可以接纳步伐增强其安全性,但由于其攻击面较大,更容易受到攻击。
安全世界:运行较小且简单的软件堆栈,通常称为可信实验环境(TEE)。TEE 包罗若干提供关键管理等功能的可佩服务,由轻量级内核托管;由于其攻击面较小,因而淘汰了被攻击的可能性。
2)安全状态切换
在 ARM TrustZone 中,处置惩罚器支持两个安全状态:安全和非安全状态,如下图所示状态之间的切换通过安全监控调用(Secure Monitor Call,SMC)指令和硬件机制(如 AXI 总线的 NS 位)完成。
2.1)状态切换步调示例
- 进入更高的异常级别必要一个异常,通常这个异常会是FIQ(快速制止哀求)或SMC(安全监控调用)异常。
- 在得当的异常向量处进入EL3,在EL3中运行的软件会切换SCR_EL3.NS位。
- 异常返回操作将处置惩罚器从EL3带回到S.EL1。
2.2)SMC异常实验
为了标准化接口,Arm 提供了 SMC 调用约定(DEN0028)和电源状态协调接口规范(DEN0022)。这些规范阐明白如何使用 SMC 哀求服务。在 EL1 实验 SMC 可以被捕获到 EL2;在任何安全状态下,SMC 指令在 EL0 都不可用。
3)硬件组件支持
· AXI 总线安全位(NS):用于区分总线上的安全和非安全事务。
· TZASC(TrustZone Address Space Controller)和 TZMA(TrustZone Memory Adapter):为内存管理单元(MMU)增加安全位以区分安全和非安全的内存地点访问,每种状态下的虚拟地点转换表是独立的,每一条页表标识符包罗安全状态位体现被映射的内存属于安全照旧非安全内存,确保安全和非安全数据的隔离。
· TZPC(TrustZone Protection Controller):区分哪些外设是安全设备,哪些是非安全设备。
· TZIC(TrustZone Interrupt Controller):根据配置判断制止类型,确保非安全态无法获取。
4)虚拟地点和资源隔离
TrustZone 通过虚拟化和资源隔离技术实现安全。
4.1)非安全状态
非安全状态下,仅可看到非安全的资源和访问地点。
4.2)安全状态
安全状态下,可以访问安全和非安全的地点空间。
4.3)Secure EL2
S.EL2 通常托管一个安全分区管理器(SPM)而不是一个完备的管理步伐,SPM 允许创建隔离的分区,这些分区无法看到其他分区的资源。体系可以有多个包罗可信内核及其可佩服务的分区,也可以创建一个分区来容纳平台固件,从而无需在 EL3 运行该代码。
启用 Secure EL2
当支持 S.EL2 时,是否启用 S.EL2 由 SCR_EL3.EEL2 位控制。
0:禁用 S.EL2,举动与不支持 S.EL2 的处置惩罚器雷同。
1:启用 S.EL2。
安全状态下的二级转换
与一级表不同,二级表项中没有 NS 位,对于给定的 IPA 空间,所有转换结果要么是安全的物理地点要么是非安全的物理地点,这由寄存器位控制。通常非安全 IPA 转换为非安全 PA,而安全 IPA 转换为安全 PA。
3 体系架构
1)从设备强制隔离
TrustZone 有时被称为slave-enforce保护体系,主设备发出其访问的安全性信号,内存体系决定是否允许访问。那么内存体系的检查是如何完成的呢?
在大多数当代体系中,内存体系的检查由互连(interconnect)完成。例如Arm 的 NIC-400 允许体系设计职员为每个连接的从设备指定:
- 安全:如上图所示只有安全访问才会通报到蓝色标识设备。互连会对所有非安全访问生成故障,而不向设备通报访问哀求。
- 非安全:只有非安全访问才会通报到设备。互连会对所有安全访问生成故障,而不向设备通报访问哀求。
- 引导时可配置:体系初始化软件可以将设备配置为安全或非安全,默认是安全。
- 支持TrustZone:互连允许所有访问通过,连接的设备必须实现隔离。
如上图所示,这种方法对于较大的内存如芯片外 DDR,TrustZone 地点空间控制器(TZASC)类似于内存保护单元(MPU),允许将设备的地点空间分割成多个区域。每个区域可以指定为安全或非安全,控制 TZASC 的寄存器仅供安全访问。Arm TZC-400 是一个 TZASC 的例子,支持多达九个区域。
注意:芯片外内存比芯片内内存安全性低,由于攻击者更容易读取或修改其内容;芯片内内存更安全,但成本更高且容量有限。我们必须在成本、可用性和安全性之间找到平衡,决定哪些资产放在芯片外内存和哪些资产必要保存在芯片内存时要小心。
2)总线主设备
大多数当代 SoC 还包罗非处置惩罚器总线主设备,例如 GPU 和 DMA 控制器,像从设备一样,我们可以将体系中的主设备大抵分为两组:
2.1)支持 TrustZone
一些主设备像处置惩罚器一样,陪同每次总线访问提供安全状态信息。例如按照 Arm SMMUv3 规范构建的体系 MMU(SMMU)。
2.2)不支持 TrustZone
这些主设备通常在其总线访问中不提供安全信息,或总是发送雷同的值:
设计时固定:如果主设备只必要访问单个物理地点空间,体系设计职员可以通过固定得当的信号来限定其访问的地点空间。
可配置逻辑:提供逻辑以将安全信息添加到主设备的总线访问中,安全软件可以在引导时使用这些寄存器来设置连接的主设备访问的安全性。这会覆盖主设备自己提供的值,仍旧只允许主设备访问单个物理地点空间,但比固定方法更灵活。
SMMU:对于受信托的主设备,SMMU 的举动像安全状态下的 MMU,包括转换表项中的 NS 位,控制访问哪个物理地点空间。
3)制止管理
通用制止控制器(GIC)支持TrustZone,每个制止源被分配到三个组中的一个:
• Group 0:安全制止,FIQ信号;用于由EL3固件处置惩罚的制止,与低级体系管理函数相干。
• Secure Group 1:安全制止,IRQ或FIQ信号;用于所有其他安全制止源,通常由S.EL1或S.EL2软件处置惩罚。
• Non-secure Group 1:非安全制止,IRQ或FIQ信号。
这由软件通过写入GIC[D|R]_IGROUPR<n>和GIC[D|R]_IGRPMODR<n>寄存器控制,配置不是静态的,软件可以在运行时更新分配:
- 对于配置为安全的INTID,只有总线安全访问可以修改状态和配置,对应于安全制止的寄存器字段在非安全总线访问时读取为0。
- 对于配置为非安全的INTID,安全和非安全总线访问都可以修改状态和配置。
如何配置异常路由控制,上图展示了一种可能的配置。另一个常见的选项是,在安全状态下将FIQ路由到EL1,可信操作体系将FIQ视为向固件或非安全状态让步的哀求,这种制止路由的方法使得可信操作体系有时机以受控方式退出。
4)测试模式
当代Arm体系包括广泛的功能来支持调试和性能分析,关于测试模式功能,考虑到一个新SoC的开辟,所有调试功能都应该被启用。当芯片出货到OEM时,他们仍旧必要调试非安全状态软件堆栈,但OEM可能会被禁止调试安全状态的代码,仅为应用步伐开辟者提供一些调试功能,同时限定硅提供商和OEM调试代码的能力。
启用不同调试、跟踪和性能分析功能的信号包括:
- DBGEN:最高级的侵入式调试使能,控制两个安全状态下的外部调试。
- SPIDEN:安全侵入式调试使能,控制安全状态下的外部调试能力。
示例如下:
- 芯片设计者的早期开辟:DGBEN==1和SPIDEN==1,启用完备的外部调试;
- OEM的产品开辟:DBGEN==1,启用非安全状态下的外部调试;SPIDEN==0,禁用安全状态下的调试;
- 出货产品:DGBEN==0 和 SPIDEN==0,禁用两个安全状态下的外部调试,仍旧可以调试应用步伐。
如上图所示,通常会使用e-fuses或认证模块来连接这些信号,通过在制造过程中烧毁保险丝,可以永久禁用测试模式。
4 软件架构
- 在安全状态下的TEE托管诸如密钥管理或数字版权管理(DRM)之类的服务,会使用由用户空间库提供的高级API,该库处置惩罚与可佩服务的通讯,类似于图形API如何从底层GPU提供抽象。
- 服务库与可佩服务之间的通讯通常使用内存中的消息队列或邮箱来处置惩罚,有时候使用“World Shared Memory”(WSM)来形貌用于这种通讯的内存,这些队列必须位于两组软件都能看到的内存中,即非安全内存。
- 服务库将哀求或哀求放置在邮箱中,然后调用内核空间中的驱动步伐,驱动步伐负责与可信实验环境(TEE)进行低级交互,包括为消息队列分配内存并将其注册到TEE中。安全世界与正常世界在不同的虚拟地点空间中运行,因此它们不能使用虚拟地点进行通讯。
- 驱动步伐通常使用SMC调用安全状态,控制会通过EL3安全监视器通报到TEE中的可信内核。内核调用所哀求的服务,然后可以从队列中读取哀求。
1)OP-TEE
OP-TEE(Open Portable Trusted Execution Environment)是一个开放源代码的可信实验环境(TEE)实现,它旨在提供安全和隔离的实验环境,以保护关键数据和实验敏感操作。
1.1)OP-TEE的架构
- Trusted OS Kernel: OP-TEE的核心部分是运行在安全状态下的可信操作体系内核,提供一个受保护的环境用于实验安全应用步伐和服务。
- TEE Client API: 为正常世界提供了一个高级API,使应用步伐能够与TEE进行通讯,而不必要了解底层的TrustZone技术细节;这些API允许应用步伐发送哀求到安全世界,实验敏感操作并接收返回结果。
- Secure Monitor: 在ARM平台上,OP-TEE使用EL3层的Secure Monitor作为安全世界和非安全世界之间的中介,通过SMC来处置惩罚从非安全状态到安全状态的调用。
- TEE Core Services: 包括安全存储、加密服务、密钥管理、数字版权管理(DRM)、安全认证等核心折务,这些服务由TEE内核提供并受到严格的安全控制。
- Communication Channels: OP-TEE使用消息队列或邮箱等通讯机制,用于在安全世界和非安全世界之间通报数据和哀求。
1.2)工作机制
OP-TEE内核在S.EL1中运行,托管在S.EL0中的可信应用步伐通过TEE内部API与OP-TEE内核进行通讯。TEE内部API是由GlobalPlatform组织开辟的标准API。
如上图所示,在非安全状态下,内核空间中有一个低级OP-TEE驱动步伐,这个驱动步伐负责处置惩罚与OP-TEE内核的低级通讯;在非安全用户空间(EL0)中,有一个实现另一个GlobalPlatform API的用户空间库;TEE客户端API是应用步伐用来访问可信应用步伐或服务的接口;Tee-supplicant处置惩罚由OP-TEE支持且必要肯定程度富操作体系交互的服务例如安全存储。
2)可信启动
只有我们信托在启动运行的所有软件组件,才华信托软件组件,下图表现了简化的信托链:
- 第一个运行的代码是引导ROM,必须隐式信托引导ROM,由于没有更早的引导阶段来验证其内容。引导ROM代码通常简单,重要功能是从闪存加载和验证第二阶段引导代码。
- 第二阶段引导代码实验平台的体系初始化,如为片外DRAM设置内存控制器;此代码还负责加载和验证将在安全和非安全状态下运行的映像,包括在安全状态下加载TEE和在非安全状态下加载高级固件如UEFI。
3)可信固件
可信固件是Armv8-A设备的开源安全世界软件的参考实现,为SoC开辟者和OEM提供符合相干Arm规范(包括TBBR和SMCC)的参考可信代码库。
如上图所示为可信固件组件图,SMC调度步伐处置惩罚传入的SMC,SMC调度步伐识别应由可信固件在EL3处置惩罚的SMC,以及应转发给可信实验环境的SMC。可信固件还提供处置惩罚Arm体系IP(如互联)的代码,包括SoC特定的电源管理功能。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |