TEE-可信执行环境
基本概念
TEE主要是提供了一个安全的环境,用来保护那些需要进行敏感数据处理或者关键操作的应用程序,避免受到未经授权的访问和修改
其基本思想是:在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,并且除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息。以此来实现敏感数据的隐私计算。
富执行环境(Rich Execution Environment,REE),指的是操作系统运行时的环境中,可以运行如 Android、IOS 等通用的 OS(Opreating System)。REE 是一个容易受到攻击的开放环境,如敏感数据的窃取、移动支付盗用等等
基本特性:
1.数据隔离
指的是可信应用使用的数据不会被其他应用所修改和访问
2.计算隔离
指的是可信应用的计算和资源不能被其他应用观测(例如侧信道攻击等)和拦截
3.通信控制
指的是可信应用与其他应用(可信or不可信)之间的会话或数据交互不能破坏隔离性
4.错误隔离
非可信区域的安全漏洞(病毒)等不能扩散到可信应用中
TEE的硬件安全性根本保证
一般来说,大部分硬件安全设备,最核心的部分都是一个加密处理器(SP, secure processor)和一个防破坏的非易失性存储器(tamper-proof NVRAM)。SP提供密钥生成、密钥派生、加解密等计算功能,NVRAM提供持久化存储功能。而且这个 NVRAM 是具有防御物理攻击的能力的,比如能够检测到外部的物理攻击,或者在物理攻击发生后,能够自动擦除数据。
TEE的硬件芯片也是这样,无论是 Intel还是AMD的CPU,出厂前都会在CPU的NVRAM里生成一个硬件私钥,然后设备制造商给这个私钥签发一个证书,这个证书就是设备的唯一标识。而且这个证书就将CPU日后签发的证书和设备制造商的RootCA关联起来【形成一个证书链】,日后可以用设备制造商的RootCA来校验CPU签发的证书的合法性。
TEE起源和发展
2010 年 7 月,Global Platform(以下简称 GP)正式提出了 TEE 的概念,并从 2011 年开始起草制定相关的 TEE 规范标准,针对 TEE 系统设计了一系列规范,对应用接口,应用流程,安全存储,身份认证等功能进行了规范化。
开放移动终端平台(Open Mobile Terminal Platform ,以下简称 OMTP))率先提出一个针对移动终端的双系统安全解决方案,即在同一个终端系统下同时部署两个操作系统,其中一个是常规的操作系统,另一个是隔离的安全操作系统。其中,安全操作系统运行在隔离的硬件环境中,专门处理敏感信息以保障其安全性。
在 OMTP 方案的基础上,ARM 公司提出了一种硬件虚拟化技术 TrustZone 及其相关的硬件实现方案,并于 2008 年第一次发布了 Trustzone 技术白皮书。
Intel 公司推出 SGX(Software Guard Extensions)。
主流 TEE 方案对比
隐私计算之TEE-CSDN博客
维度 | ARM TrustZone | Intel SGX | AMD SEV | RISC-V TEE(Keystone) | 海光 CSV |
---|---|---|---|---|---|
架构支持 | ARM | x86 | x86 | RISC-V | x86 |
隔离粒度 | 安全世界(系统级隔离) | 用户态 Enclave(进程内隔离) | 虚拟机(VM 级隔离) | 用户态 Enclave(进程内隔离) | 虚拟机(VM 级隔离) |
保护范围 | 安全世界的代码 / 数据,防普通 OS | Enclave 内代码 / 数据,防 OS、VMM、物理攻击 | VM 内存,防 Hypervisor | Enclave 内代码 / 数据,防 OS、物理攻击(可选) | VM 内存及与 DCU 交互数据,防主机及外部非授权访问 |
安全性 | 中(依赖安全世界代码可靠性) | 高(内存加密 + 硬件验证) | 中高(VM 内存加密,SEV-SNP 增强) | 可定制(开源灵活,依赖硬件扩展) | 高(基于硬件虚拟化与加密,保护 VM 和 DCU 数据) |
性能开销 | 低(世界切换开销小) | 中(Enclave 进出开销 + 内存加密) | 中(内存加密,对 VM 内操作影响小) | 低(开源优化空间大) | 中(涉及 VM 隔离与 DCU 数据传输加密) |
核心应用场景 | 移动设备(支付、指纹识别)、嵌入式 | 云隐私计算(联邦学习)、PC 安全(数字版权) | 云计算(多租户隔离、安全虚拟机) | 边缘计算、嵌入式(定制化安全需求) | 隐私计算中大规模数据训练推理、机器学习等高性能业务场景 |
生态成熟度 | 高(移动生态完善,如 Android 支持) | 高(服务器生态,云厂商广泛采用) | 中(云计算生态,AMD 服务器支持) | 成长中(开源社区推动,适配边缘设备) | 成长中(国产化趋势推动,适配国内相关业务) |
远程证明 | 支持(如 PSA 认证、TrustZone 远程证明) | 支持(Intel Attestation Service) | 支持(AMD Secure Nested Paging 证明) | 支持(开源组件,如 Veraison) | 支持 |
SGX的工作方式是将应用程序划分为一个由飞地安全保护的可信部分和一个正常运行的不可信部分。这降低了开发体验,因为开发人员需要了解安全模型并相应地拆分应用程序,而保护VM不需要调整应用程序代码