TEE的初步理解与认识
【论文阅读摘要】
关键词:可信执行环境
定义
可信执行环境(trusted execution environment, TEE)技术,用于保护非可信平台中应用和数据可信 执行. TEE 通常采用隔离部分软硬件资源的方法构 建安全区域,确保在其中运行的程序和数据保密性 和完整性不受外部干扰。
一个可靠的TEE 需要提供 4 方面的安全保障
1)数据隔离:一个可信应用使用的数据不能被其他应用访问、修改,包括可信应用的数据对外部操作系统隔离以及多个可信应用之间的数据隔离.。
2)计算隔离:可信应用的计算资源不能被其他应用观测和拦截,同时需要清理可信应用执行后的痕迹,并防御来自侧信道的攻击。
3)通信控制:非可信应用和可信应用、多个可信应用之间的会话和数据交互不能破坏隔离性.
4) 错误隔离:非可信区域的安 全漏洞不能扩散到可信应用中.
实用的 TEE 设计思路是基于硬件隔离基础,通过数据加解密和特权指令执行实现其安 全服务.
特点
现有的 TEE 技术具有 3 个明显特点
1)面向用户设计
2)硬件辅助支持设计:从基于 x86 到 RISC-V 架 构的平台均引入了新硬件特性
3)共享资源:虽然在设计 TEE 的过程中引入了 新的加解密引擎、协处理器等. 但TEE仍然复用主处 理器和内存单元,与不可信系统的数据交互保持便捷性
然而现有的 TEE 技术均存在不同程度的缺陷:
- 安全攻击. 由于 TEE 技术和操作系统并非完全的隔离,如共用处理器、内存、缓存等,导致TEE 容易面临来自共享资源的侧信道攻击.
- 性能影响. TEE 中数据保护普遍采用内存加密的方式防止数据泄露,即使通过硬件电路支持加 解密操作,其数据访问效率仍然低于明文计算.
- 服务便捷性. 早期 TEE中部署的简化操作系 统所提供的服务有限且由服务商定制,难以部署大型应用. TEE 面向用户设计后,用户可以在应用层实现关键代码的安全执行,但对于系统资源的调用仍 然需要非可信系统的支持. 目前在推出安全虚拟化 的 TEE 技术后,用户安全应用领域将进一步发展.
代表性设计
当前主流计算机系统架构包括 x86,Arm 等均在 其设备平台中部署TEE 技术,代表性设计包括软件 保护拓展 Intel SGX 和 Arm TrustZone。
其中 SGX 通过内存隔离和加密,以及拓展的指令集在用户空间提供 TEE,实现不同程序间的隔离运行,保证用户关键代码和数据的机密性和完整性不受恶意软件的破坏.
而 TrustZone 则是通过设计处理器不同的处理模 式,结合隔离内存等软硬件资源,将系统划分为安全和非安全 2 个世界. 因此服务提供商通过在安全世界 中部署独立于用户操作系统的可信应用,为用户提供身份认证和授权服务.
基于x86架构的TEE
主要面向家用、商用服务领域。
优点在于高性能以及强兼容性
目前主要以 Intel,AMD 厂商为代表推动 x86 架构的发展
x86 TEE是基于物理隔离方法和加密验证技术 构建的.
可信平台技术:
目前设备中普遍部署TPM2.0 版本
(TPM: TPM 作为一种集成到芯片组中的微控制器,主要用 于密钥生成、存储和证书验证,同时保存系统各层次模块的测量值. TPM 基于硬件的密码学特点可以保证存储数据免受外部恶意软件的攻击,因此是广泛应用于系统启动和应用部署的安全策略的基础 )
- 基于协处理器的可信子系统
ME,Intel 管理引擎
ME 子系统拥有独立的计算能力和内存空间,因此在 Intel 架构安全体系中 作为基础可信域存在
ME 子系统拥有独立的物理地址和 IP 地址,通 过直接连接网卡访问远程资源,因此管理端可以通 过 ME 子系统远程透明地管理设备开关机、主系统 启动验证、设备温度、电压等物理特征检测,甚至对主系统运行时状态监控.
PSP,AMD平台安全处理器
- 基于处理器模式的可信系统
背景: 针对协处理器和主处理器之间的隔离性,ME 和 PSP 子系统只能管控平台设备的物理属性,因此子系统难以同步获取和验证主系统状态,也不能操控主系统的正常运行
基于主 CPU 的不同执行模式构建的TEE则能有效控制主系统. Intel 和 AMD 平台利用系统管理模式 SMM 部署了可信服务代码。
基于 SMM 计算模式以及内存区域的隔离性,设备制造商(OEM)可以在设备出厂前部署管理需求的任务,如 CPU 电源管理、启动代码块验证、TPM 数据清理等一系列高权限的处理模块。
- 基于内存加密的用户TEE
Intel 和 AMD 分别提出 Intel SGX 和 AMD SEV 技术. Intel SGX 为用户提供应用层 TEE。
AMD 为用户提供系统级的TEE,通过内存加密和虚拟化技术,直接构建面向用户的安全虚拟机系统.
AMD SEV 尤其适用于云环境下对租户提供安全计算平台的需求
x86 TEE 面临的安全风险与挑战
TEE 面临的主要安全风险来自于 2 个方面:内部软硬件设计漏洞和外部侧信道攻击.
软硬件设计漏 洞问题包括控制逻辑代码缺陷、接口设计不严谨等,
- 针对隔离机制的攻击
- 基于共享资源的侧信道攻击
- 基于硬件设计漏洞的攻击