当前位置 博文首页 > 私房菜:TEE(Trusted Excution Environment) 简介
基于:?GlobalPlatform_TEE_White_Paper_Feb2011.pdf
?
随着移动终端市场的成熟和扩大,安全问题的增长需要关注。随着终端用户在他们的智能手机中使用各种各样的lisestyle 的应用,由于使用一个开放的环境,安全需求激增。内容保护、企业环境、连接,以及在移动市场中金融交易的兴起,加重了这些安全影响,而这些不仅仅与终端用户有关。服务提供商、移动网络运营商、系统和应用开发商、设备制造商、平台提供商和硅供应商都是这个市场的相关干系方,也是寻找安全实施方案的既得利益者。
?
Trusted Execution Environment(TEE) 提供了直面这些安全问题、同时解决相关干系者需求的最佳途径。
TEE 是一个与Rich OS 并行的独立的运行环境,而且为REE(Rich OS Environment) 提供安全的服务。
TEE提供一个比Rich OS更加安全的可运行的空间,虽然没有SE(Secure Element)安全,但是TEE 安全性已经满足了大部分应用的需求。因此,TEE提供了Rich OS 无法比拟的安全性,同时比SE低成本的优势。
?
随着对移动设备的安全需求的深入了解,会发现很多因素和使用场景会影响到我们的安全:
?
下面是TEE的框架图:
?
TEE 提供了介于Rich OS 和SE 之间的框架层。
目前,主要的移动安全解决方案还是主要依赖于SE。SE主要提供了一种大部门金融机构,包括银行、信用卡公司都支持的安全控制机制。但是几个少数的应用场景缺少迫切的安全需求,并且由于SE的性能、交互及用户体验受限等问题,病不能很好地被应用。
总的来说,安全级别和财产的重要性是需要权衡的,高安全性需要在速度、易用和用户体验上进行折中。下面几点通过SE的比较,来说明我们应如何定位TEE 的位置:
?
因此,Rich OS作为富环境是很容易受到攻击的,而SE虽然很难遭到攻击但是使用很有局限,对Rich OS的性能和SE 的安全,TEE在两者之间折中。
图中能力特征在不同的环境中是不一样的,通过箭头的高和宽表示。
总体来说,TEE提供了一个比Rich OS更加安全的执行空间,尽管安全级别达不到SE的程度,但对于大多数应用而言已经足够了。而且,TEE提供了比SE更快的处理速度和更强大的内存访问能力(这一点,实际上已经基本达到了Rich OS的水平)。
因为TEE提供了比SE更多的用户接口和外部连接能力,人们可以在TEE上开发安全应用,这些安全应用可以给用户提供更多的用户体验。此外,由于TEE是独立于Rich OS的执行环境,它提供Rich OS功能的同时又保障了足够的安全。尤其地,TEE可以抵挡Rich OS下的软件攻击(OS root化、越狱、恶意软件等)。
相比而言,SE提供了健壮的物理特性,可抵抗高级别侧信道攻击,因此,SE具有最高级别的安全认证(等同于智能卡的EAL4+及以上级别)。SE具有可移动性,支持安全和数据的可移植(就像UICC或MicroSD那样),可以在不同设备上移动。具有NFC功能的SE,还可以在设备低电量或关机模式下使用。
图中是Rich OS、TEE、SE安全、价值比较
?
TEE成为标准,是保护差异化和避免API私有化的关键,私有API会产生不兼容性,形成私有安全特性、私有应用和私有管理平台,这些私有化的特征会导致如下一些问题:
GP 在1999年制订了智能卡规范,当前已有50亿SE使用GP标准。作为一个标准制定者,GP代表了整个生态系统,包括芯片厂商、网络服务商、软件开发者、原始设备厂商、运行商、服务提供商、认证机构等。
继OMTP(Open? Mobile Terminal Platform)和TCG(Trusted Computing Group)组织的标准化工作后,GP设备委员会在2010年7月发布了TEE Client API 1.0规范,这个委员会目前正在积极制订TEE Internal API标准,以及TEE Client API 的更上层的功能API。
?
? | Rich OS | TEE | SE |
对应用下载的控制 | 用户控制 | 鉴权集成控制 | 鉴权进程控制 |
应用代码 | 无需检验和认证 | 授权之前需要检验和认证, 在加载时检查授权 | 授权之前需要检验和认证, 加载时检查授权 |
隔离状态 | 受Rich OS能力限制, 一些Rich OS可能会提供沙箱模型(例如Java VM)或支持虚拟化 | TEE从Rich OS隔离, 隔离的深度依赖TEE实现的深度 | 物理隔离, 运行一个独立的操作系统(如Java card、STIP等) |
认证 | 不认证 | 认证 | 强认证 |
OS内核、驱动、代码库创建 ? ? | 为灵活和速度创建 | 为安全和速度创建 | 为安全创建 |
丰富的API | 受限的API | 严格受限的API | |
RAM size大 | RAM size 中等 | RAM size 小 | |
访问用户接口设备(键盘、显示屏、音频口)的保密性和完整性 | Rich OS的权限范围 | TEE的限定范围(可以访问从Rich OS 隔离的接口) | 只能由Rich OS或TEE的代理程序间接访问 |
CPU 速度 | GHz范围 | 百兆到GHz范围 | 小于20MHz范围 |
CORE | 1~4 | 1 | 1 |
RAM SIZE | 16MB~1GB+ | 64KB ~ 几MB | 几十KB |
RAM 速度 | 64 bits @ 200Mhz -> 800Mhz | 4 bits @ 200Mhz -> 800Mhz | 32 bits @ 5Mhz (limited by power) |
FLASH SIZE | 1GB-> 32GB + (inc SD cards etc) | 与Rich OS共享 每个TA可以有自己的安全存储 | 64KB-> 1 MB |
与Rich OS的数据传输 | 非常快 | 非常快 | 慢 |
对未授权软件攻击的防护,包括非法使用设备上的硬件 | 依靠未认证的OS的内部保护,引导期间的有限完整性保护(通常仅限内核) | 硬件设备的保护,认证OS的保护 | 外部软件和设备硬件的保护,认证OS的保护 |
对外部硬件攻击的防护 | 无保护,有限的回滚机制 | 依赖TEE实现机制,以及host 平台的硬件特性 | SE 强保护,但不保护host 设备 |