背景
随着软件技术的发展,操作系统的功能越来越丰富,Linux操作系统内核功能和代码量呈爆炸式增长,智能手机APP数量指数级增长,人们在享受智能手机带来的便捷的同时,隐私保护和数据安全问题也日益严峻。
但由于操作系统的复杂性、安全漏洞、安全机制容易被绕过、应用程序间的弱隔离性、操作系统对APP的控制能力等脆弱性设计和被Root、病毒、蠕虫、木马和间谍软件等安全威胁的存在,把用户认证、移动支付等高安全等级应用和其他应用运行在同一个操作系统中无法保证其安全性,把用户指纹、证书等机密数据和普通应用数据保存在同一个操作系统中也无法保证其机密性、完整性和可用性。
为此,业界提出了TEE(Trusted Execution Environment)可信执行环境的设计。简单来说,就是在目前常规操作系统REE(Rich Execution Environment)之外,建立一个专门为高安全应用运行的操作系统TEE。一般称REE为Normal World,TEE为Secure World。TEE和REE各种运行独立的操作系统,他们共享设备硬件但又互相隔离,比如把CPU按核或按时间片分配给两个操作系统,TEE和REE各自拥有独立的寄存器、内存、存储和外设等。
TEE通常用于运行高安全需求操作、保护敏感数据、保护高价值数据等,如:
- 高安操作:如安全键盘密码输入、指纹输入、用户认证、移动支付
- 保存机密敏感数据:如用户证书私钥的存储、指纹数据存储
- 内容安全:如DRM(数字版权保护)等
TEE发展历史
TEE的前身
Open Mobile Terminal Platform (OMTP)于2006年提出一种双系统解决方案:即在同一个智能终端下,除了多媒体操作系统外再提供一个隔离的安全操作系统,这一运行在隔离的硬件之上的隔离安全操作系统用来专门处理敏感信息以保证信息的安全。该方案即TEE的前身。
TEE标准正式提出
OMTP于2009年提出了TEE标准”Advanced Trusted Environment:OMTP TR1”,其中说明了TEE同时包含了硬件和软件,目标是为应用程序提供必要的支持。其中对安全定义了两个级别,第一个级别是可以应对软件方面的攻击,第二个级别是可以同时应对软件和硬件攻击。
TEE的实现
基于OMTP的方案,ARM公司提出了一种硬件虚拟化技术TrustZone及其相关硬件实现方案。TrustZone即是支持TEE技术的产品。作为针对消费电子设备设计的一种硬件架构,其目的是为消费电子产品构建一个安全框架来抵御各种可能的攻击。
TrustZone在概念上将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等),其余操作在非安全世界执行(如用户操作系统、各种应用程序等),安全世界和非安全世界通过一个名为Monitor Mode的模式进行转换。
TEE当前的标准
GlobalPlatform(全球最主要的智能卡多应用管理规范的组织,简称为GP)从2011年起开始起草制定相关的TEE规范标准,并联合一些公司共同开发基于GP TEE标准的可信操作系统。因此,如今大多数基于TEE技术的Trust OS都遵循了GP的标准规范。
TEE内部运行一个完整而紧凑的操作系统,一般只有10K~10M大小。TEE内部分为内核(TEE Kernel)和多个用户态应用程序TA(Trust Application)。TEE和REE运行环境通过一个名为Monitor Mode的模式进行转换。
TEE的基本安全能力
- 基于硬件隔离的安全执行环境:TEE提供了基于硬件隔离的安全世界来保护敏感数据的安全和程序正确执行。实现TEE需要将设备的硬件和软件资源全部划分成安全世界和非安全世界,两个世界具有独立的系统资源,包括寄存器、物理内存和外设,不能随意进行数据交换。安全世界中的代码和资源受到严格的访问控制策略保护,非安全世界的进程禁止访问安全世界,以保证存储在安全世界的敏感资源不被非法访问或窃取,能够有效减少安全系统漏洞的披露、外界的攻击和病毒的入侵。
- 基于信任链的平台完整性:为了保证整个系统的安全,TEE从系统引导启动开始逐步验证以保证TEE平台的完整性。设备加电后,加载ROM中的安全引导程序,并利用根密钥验证其完整性。然后,该引导程序进入TEE 初始化阶段并启动安全操作系统,逐级核查安全操作系统启动过程中的各个阶段的关键代码以保证安全操作系统的完整性,同时防止未授权或经过恶意篡改软件的运行;安全操作系统启动后,运行非安全世界的引导程序并启动普通操作系统。至此基于信任链,完成了移动终端整个系统的安全启动,能够有效抵御TEE启动过程中的非法篡改、代码执行等恶意行为。
- 基于安全存储的数据机密性:用户的身份、密钥和证书等敏感信息需要高度保护,TEE依靠加密和完整性保护技术来保护数据和密钥。TEE将用户的身份、密钥和证书等敏感信息存储在安全区域中,这些敏感信息只能由TEE授权的可信应用访问或修改,并且TEE为这些敏感信息的操作处理提供了加密和完整性保护机制。同时,可利用TEE中存储的密钥对普通执行环境下用户的信息,如通讯录、短信等敏感信息进行加密,保证存储在普通执行环境下敏感信息的安全性。
参考资料:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。