当前位置 博文首页 > 私房菜:TEE(Trusted Excution Environment) 简介

    私房菜:TEE(Trusted Excution Environment) 简介

    作者:[db:作者] 时间:2021-09-22 10:43

    基于:?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低成本的优势。

    ?

    随着对移动设备的安全需求的深入了解,会发现很多因素和使用场景会影响到我们的安全:

    • 开放的使用环境??? 新设备的操作系统都是提供一个开放的环境,用户可以随时添加应用,很少关注设备的稳定性和安全性。就是这样的环境,将设备暴露给外面的各种攻击。
    • 隐私??? 设备端存放了大量的个人信息,例如联系人、信息、照片、视频等,还存放一些很敏感的数据,例如证书、密码、医疗数据等。为了防止这些数据的丢失、被盗窃或被恶意使用,存储和发送私人数据需要足够的安全。
    • 内容保护???? 今天的设备提供了高清的视频播放和流媒体、移动TV广播接收和游戏机质量的3D游戏。所有这些功能都需要内容保护、数字版权管理或CA服务来保护高价值的高清内容。
    • 企业数据???? 支持推送电子邮件访问和办公应用程序的企业型设备,为员工提供了“随时随地工作”的能力,这需要通过虚拟机安全快速地链接到他们的工作场所应用程序专用网络(VPN)、数据的安全存储以及IT部门对设备的远程管理。
    • 连接保护???? 现在的多种连接技术,让用户可以使用他们的设备进行点对点的联系,及对互联网的访问,例如,3G、4G、WIFI/WiMAX,以及个人通信方式,例如BT和NFC。这些连接访问,基本都使用SSL/TLS 或IPSec网络安全协议。这些通信方式的缺点是有时对关键数据进行加密,有时需要对客户端会话进行加密。
    • 金融风险

    ?

    TEE介绍:

    下面是TEE的框架图:

    • TEE 独立于Rich OS,但为rich environment 提供安全服务
    • TEE 独立于Rich OS和其应用,来访问自己的硬件和软件安全资源
    • 为了保证TEE有可信的root,在安全启动中,TEE会先被认证,然后从生下来的Rich OS 中独立出来
    • TEE中,每个TA(Trusted Application)都是独立的,而且,在没有得到授权的情况下,一个TA是不能访问另外TA的资源
    • TA通过TEE Internal API 来获得安全资源和服务的访问权限,这里所述的资源和服务可能包括秘钥注入和管理、加密算法、安全存储、安全时钟、可信UI、可信键击等
    • TEE并不是100%安全,关于TEE的CVE开始出现,各家实现的TEE良莠不齐
    • TEE和REE相对应,一般称TEE和REE为Secure World和Normal World。Linux 跑在Normal World上,但是有些安全性要求比较高的行为,例如指纹的比对、支付时候用的私钥签名动作等,需要放在Secure World里

    ?

    TEE位置:

    TEE 提供了介于Rich OS 和SE 之间的框架层。

    目前,主要的移动安全解决方案还是主要依赖于SE。SE主要提供了一种大部门金融机构,包括银行、信用卡公司都支持的安全控制机制。但是几个少数的应用场景缺少迫切的安全需求,并且由于SE的性能、交互及用户体验受限等问题,病不能很好地被应用。

    总的来说,安全级别和财产的重要性是需要权衡的,高安全性需要在速度、易用和用户体验上进行折中。下面几点通过SE的比较,来说明我们应如何定位TEE 的位置:

    • 虽然SE 应用了高级别的安全性来保障移动支付,但也不是所有的交易都需要那么高的安全级别,对安全的需要还取决于交易类型,交易金额,和/或 用户特征及交易历史。例如,一项基于移动支付的研究表明,大部分用户使用移动支付时,交易金额都在10美元以下。
    • 企业网络的连接可以通过鉴权和加密的方式保护起来,TEE完全可以提供这样的保护,同时在性能上与Rich OS达到相同的效果。
    • TEE是做DRM 代理的理想环境,可以保护应用或内容从APP商店下载的安全。相比之下,在Rich OS中的下载环境是很容易伪造的。

    ?

    因此,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标准化:

    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

    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 设备

    cs