可信执行环境
可信执行环境是从底层硬件和操作系统开始出发,提供一个隔离的运行环境,保护代码和数据不被攻击者攻击。
可信执行环境简介
可信执行环境:满足以下两个条件的一组支撑应用的软硬件组合:
- 可以避免软件层面的攻击
- 可以避免硬件层面的攻击
可信执行环境需要满足以下几个特征:
- 软硬件协同的安全机制:可信执行环境及其常规操作系统具有独立的系统资源(寄存器,内存等),不能随意的进行数据交换。可信执行环境中的代码和资源收到严格的访问控制策略的保护,常规操作系统的进程禁止访问可信执行环境中的代码和资源。
- 算力共享:能共同享用中央处理器的同等算力
- 开放性:可信执行环境需要在开放的环境中运行,既只有先存在常规操作系统中,才有引入可信执行环境的必要。
- 可信计算基(TCB):TCB是运行在可信执行环境里的应用程序的基础。
- Ring3 TEE:一种可信执行环境解决方案,可以用于保护用户态的应用程序,而不必信任操作系统或更底层。
- Ring0 TEE:能够提供操作系统层面的可信执行环境技术。
- Ring-1 TEE:能够在虚拟化Hypervisor层面上提供可信执行环境的技术。
- Ring-2 TEE:可以运行在Htpervisor之下,代表技术为ARM TrustZone
- Ring-3 TEE:通过协处理器实现的可信任执行环境。
![image-20230217173749976](https://img2023.cnblogs.com/blog/1445856/202302/1445856-20230217173755530-1571018017.png)
原理与实现
ARM TrustZone
ARM TrustZone修改了原有处理器的硬件架构,引入了两个不同层次的保护区域,即可信执行环境(TEE)和常规操作系统(REE)。任何时刻处理器只能在某一个区域内运行,且两个区域完全是硬件隔离的,并具有不同的权限。如图所示:
Cortex-M
Cortex-M 系列是为移动终端设计的,有低功耗及低延时上下文切换的设计目标,Cortex-M 系列的TrustZone并没有直接沿用Cortex-A系列的设计,而是从底层直接进行重构。处理器是否执行在安全环境中由内存中的代码决定。如果从安全的内存运行程序,处理器即运行在安全环境;如果从非安全内存运行程序,处理器则运行在非安全环境。如图所示:
可信执行环境所面临的问题
可信执行环境的漏洞
以ARM TrustZone为例,针对的攻击主要分为三种:软件攻击, 微架构攻击,内存攻击。
- 软件攻击:主要是对ARM TrustZone的安全程序进行分析,提出针对性的攻击方法。
- 微架构攻击:微架构攻击主要利用微架构的变化将信息泄露给攻击者,或者通过协助性质的或者错误指令加载来泄露缓冲区的内容,从而绕开CPU的权限检查,导致隐私泄露。
- 内存攻击:寻找内存在不同状态下的漏洞,并窃取内存中的隐私数据。
安全性依赖硬件厂商
可信执行环境的安全性主要依赖于硬件厂商。因此安全性十分难以评估和验证。
可信执行环境的应用
可信执行环境主要应用于移动终端, 云计算,区块链。