基于可信执行环境的安全手机架构研究

2017-03-07 21:58杨穗珊
移动通信 2016年21期

摘要:为了更好地保障手机应用的安全执行和对手机终端进行安全访问控制及远程安全管理,提出一种基于TEE的安全手机功能及管理平台架构,研究表明,这种架构有助于移动运营商向用户提供安全存储、安全算法、安全用户界面和安全支付等安全服务。

关键词:可信执行环境 多媒体执行环境 可信操作系统 可信应用 安全手机

1 引言

随着移动互联网的蓬勃发展,互联网向移动互联网发展迁移已经成为不可逆转的趋势,而作为其中的关键主体,移动终端的操作系统也面临着与互联网时代桌面个人计算机上的视窗操作系统同样的安全性问题。在全球智能机操作系统市场上,目前,安卓系统已经占统治地位[1],但随之而来的是开放的安卓系统成了恶意软件攻击的首选目标,实际上,即使苹果手机的iOS操作系统相对封闭,也不可避免地受到病毒的侵袭,如2015年的XcodeGhost入侵苹果iOS的事件已经在业内引起不小的震动[2]。对于移动运营商来说,移动互联网应用的蓬勃发展既给移动运营商带来提高用户粘合性的机会,但也带来了安全性的挑战,因此移动设备操作系统所产生的安全性问题不仅受到终端用户、服务提供商、手机设备制造商和芯片厂商等的关注,也同样引起移动运营商的关注,如何向用户提供安全可靠的服务及提高用户的信任度已经成为移动运营商需要考虑的首要问题。

2 GP的TEE系统架构

针对移动设备操作系统的开放环境产生的安全问题,为保障用户方便、快捷且安全可靠地进行移动支付交易,智能卡及终端安全的标准组织GP(Global Platform,全球平台组织)提出TEE(Trusted Execution Environment,可信执行环境)概念。TEE是与移动终端设备上的REE(Rich Execution Environment,多媒体执行环境)并存的运行环境,Rich OS(Rich Operating System,多媒体操作系统)通常是安卓系统或苹果手机的iOS系统,运行在REE环境中。TEE则由手机处理器核、安全存储器、TUI(Trusted User Interface,可信用户接口界面)、Trusted OS(Trusted Operating System,可信操作系统)和TA(Trusted Application,可信應用)等可信软硬件资源组成以构造一个比REE更安全的可信执行空间。为保证TEE资源的安全,GP标准规定一些REE可以访问的资源TEE也能访问,而反过来,除非有TEE的明确授权,否则TEE上的可信资源只允许其他可信资源访问[3]。这样,在这个与Rich OS相隔离的封闭的可信空间环境里可以更安全地存储和处理用户的个人信息,进行电子支付,并且给Rich OS提供安全服务。

GP提出的TEE系统架构[4]如图1所示。

在这个架构中,手机执行环境由REE和TEE组成。REE通常是安卓或iOS等移动终端操作系统的运行环境,包含CA(Client Application,客户端应用)、TEE功能API(Application Programming Interface,应用程序编程接口)、TEE客户端API及多媒体操作系统部件等模块。CA是提供给用户使用的客户端应用,如微信或支付宝等。TEE功能API将提供给CA一套访问TEE核心服务(如可信存储及加密算法等服务)的友好接口,目前这个接口尚在定义中。TEE客户端API提供运行于REE环境的CA访问TEE环境中的TA及与TA进行数据交换的底层通信接口。多媒体操作系统部件包含公共设备驱动及REE通信代理等模块,REE通信代理提供CA与TA之间的消息传送[5]。

相对于开放环境的REE,TEE提供了一个较安全的封闭的执行环境,TEE主要由TA、TEE内部API、可信操作系统部件和可信内核等组成。TA运行于TEE环境,向它的用户提供安全服务,TA与TA之间通过TEE内部API进行通信,在这种情况下,一个TA可作为另一个TA的客户端[6]。TEE内部API为运行于TEE环境内的TA定义一套C语言的APIs,这套APIs定义运行在TEE内部的TA的开发接口[6],具体来说,就是提供集成、调度、通信、内存管理和系统信息检索接口,以及提供安全存储、密码服务、安全时钟服务和安全算术运算等APIs接口[7]。可信操作系统部件包含TEE通信代理、可信核心框架和可信功能等模块。TEE通信代理与REE通信代理一起实现CA与TA之间消息的安全传送。可信核心框架向TA提供安全OS功能。可信功能模块向应用开发者提供辅助设施支撑[5]。对于可信内核,可信内核主要向可信核心框架和可信功能模块提供调度和其他OS管理功能[5]。

如图1所示,TEE与Rich OS分离,对TEE的软硬件资源的访问必须有TEE的明确授权,对TEE中的授权安全软件TA的访问必须通过GP定义的一套APIs进行,因此TEE保障了TA的安全执行,从而TEE比Rich OS的安全级别更高,能对大多数应用,如某些小额的支付及DRM(Digital Rights Management,数字版权管理)等提供合适的安全保护强度。

3 一种基于TEE的安全手机功能及管理

架构

GP TEE标准一经推出,就获得了国内外相关金融安全组织和机构的重视,目前,GP TEE安全架构已得到全球主流芯片厂商的支持,越来越多的移动终端已开始采用支持TEE架构的安全芯片作为底层硬件支撑,从而便于在移动设备中开发安全可靠的移动支付等安全应用。

面对未来可能出现的多种TEE终端设备,如何定制和管理TEE终端设备成了移动运营商迫切需要解决的问题。为此,本文提出一种基于TEE的安全手机功能及管理架构。

3.1 基于TEE的安全手机功能架构

本文提出的基于TEE的安全手机功能架构如图2所示。

基于TEE安全手机终端由两种执行环境组成,即REE与TEE。REE主要由REE硬件、REE硬件驱动、Rich OS部件、TEE客户端API、REE访问控制执行器和CA等组成。REE硬件提供輸入/输出、触摸显示屏、存储、CPU等设备。REE硬件驱动提供多媒体环境下的设备驱动,如SIM卡等设备的驱动。Rich OS部件提供REE通信代理及Rich OS下的REE应用。TEE客户端API为CA访问TA的接口,采用GP客户端标准接口[8]。REE访问控制执行器实现CA对SE(Secure Element,安全元件)的安全访问控制,REE访问控制执行器从与REE连接的SE获取访问规则并运用这些规则来控制CA对于SE上各种应用程序的访问,同时REE访问控制执行器也控制CA对TA的安全访问,以进一步加强对TA访问的安全性。CA为移动运营商自有的客户端应用或第三方客户端应用。

对于TEE,TEE主要由安全硬件、安全硬件驱动、安全OS部件、TEE内部核心API、TEE访问控制执行器、SD(Secure Domain,安全域)及TA等模块组成。安全硬件包含安全输入/输出、触摸显示屏、处理器核及存储器等设备。安全硬件驱动提供安全设备驱动,如指纹设备驱动等。安全OS部件提供安全OS功能,由安全存储、安全算法、生物特征识别、可信用户界面和TEE通信代理等核心安全功能模块组成。安全存储提供在TEE环境下的统一安全数据存储服务及接口API。安全算法提供在TEE环境下的常用加解密算法服务及接口API。生物特征识别提供TEE环境下的生物特征,如指纹等生物特征的采集、存储和识别服务及接口API。可信用户界面在TEE环境下提供用户界面展示及相关输入输出信息处理的界面服务及接口API,采用GP TUI标准接口[9]。安全OS所提供的功能可以很好地提高移动支付的安全性和提供更好的用户安全体验,如安全存储功能可以将支付中的关键数据(例如密钥、凭据和证书等)存到TEE中的安全存储器来加强支付的安全性。安全算法提供安全支付中数据的加解密和私钥签名等安全服务,从而提高支付的安全性。可信用户界面则向用户提供在认证、交易处理和确认等方面的安全保护和更好的安全体验。基于TEE实现的生物特征识别功能则进一步增强支付业务的安全性。TEE内部核心API提供TA之间互相访问及TA访问安全OS功能的接口API,接口采用GP内部核心标准接口[10]。TEE访问控制执行器控制TA对SE的安全访问,当终端设备启动时,TEE访问控制执行器从与TEE连接的SE获取SE访问规则,存放于TEE安全存储器中,以后如果SE访问规则没有发生变化,则从TEE安全存储器中获取访问规则并运用这些规则来控制TA对SE的访问;如果访问规则在设备启动后发生变化,则重新读取规则到TEE安全存储器中并运用新规则来控制TA对SE的访问。SD是TEE的特权部件,SD负责提供和管理TEE和TA。也就是说SD负责执行TEE的创建、初始化和个性化设置以及TEE的锁定与解锁。对于TA,SD负责执行TA的安装、删除、更新及TA的锁定与解锁。

为了保障TEE的安全,REE与TEE之间有硬件隔离。在软件上,REE与TEE采用两种方式进行通信,一种是通过TEE客户端API接口[8],通过共享内存方式,提供REE的CA访问TEE的TA的底层通信。另一种是通过REE通信代理和TEE通信代理一起提供CA与TA之间的消息传送。为了保障TEE中TA的安全,CA在使用TEE客户端API来建立与TA之间的通信通道时,这个请求被转发到REE访问控制执行器,由REE访问控制执行器根据CA所获取的TA所属TEE的签名和TA的访问规则来控制CA对TA的安全访问。

以上基于TEE的安全手机功能架构实现REE与TEE的硬件隔离,向可信应用TA提供一个安全的执行环境,并通过引入REE访问控制执行器与TEE访问控制执行器进一步保障对TA和SE的安全访问控制,提高了TA的资源和数据的保密性和完整性,从而有助于移动运营商向用户提供具有安全存储、安全算法、安全用户界面和安全支付等安全功能的手机终端。

3.2 基于TEE的安全手机管理平台架构

为了实现对不同手机终端上的TEE、SD及TA的远程实时管理,并同时有效地保障应用安全和访问通道的安全,本文提出一种对基于TEE的安全手机终端进行管理的平台架构。这个基于TEE的安全手机管理平台架构分4层,从上到下分别为可信应用(TA)层、平台层、终端层及SE层。具体如图3所示。

可信应用层由移动运营商自有的应用(如翼支付和爱Wi-Fi等)与行业应用(如银行与公交行业等提供的应用)组成。

平台层由移动运营商自有的TEEMP(Trusted Execution Environment Management Platform,可信环境管理平台)和第三方的TEEMP组成。第三方的TEEMP主要负责第三方的TA、SD及TEE的管理。移动运营商自有的TEEMP实现对运营商自有TA、SD及TEE的管理,即主要负责管理SP的TA接入,并对移动运营商可管理的SE、TEE、SD以及TA提供管理操作服务。具体来说,对于TA,TEEMP提供TA的远程下载、安装/卸载、更新、和锁定/解锁等远程实时管理服务;对于SD,TEEMP提供SD的远程下载、安装/卸载、个性化、密钥更新和锁定/解锁等管理服务;对于TEE,TEEMP负责对TEE进行管理与授权,提供TEE的远程密钥管理、个性化设置、恢复出厂设置、通道管理和锁定/解锁等服务。其中,通道管理服务提供远程管理和控制CA对TA的访问,以及TA对仅供TEE访问的SE的安全访问。以CA访问TA为例,TEE的管理SD在手机出厂时预置有TEE访问控制签名,只有获得TEE访问控制签名的CA才能正常访问TEE的TA,当CA要访问TA时,CA先要从TEEMP获取TA所属的TEE的访问控制签名,然后CA使用TEE客户端API[8]来请求建立与TA之间的通信通道,这个请求立即被转发到REE访问控制执行器,REE访问控制器与TA所属的TEE的管理SD通信,得到该TEE访问控制签名。REE访问控制器在本地比较CA提供的TEE的访问控制签名是否与REE访问控制器得到的TEE的访问控制签名一致。如果两者一致,允许CA访问TEE的TA,否则拒绝CA访问TEE的TA,并返回错误信息给CA。对于TA访问仅供TEE访问的SE,TEE访问控制器实时接收TEEMP的指令,更新存于该SE中的安全访问控制规则,并根据最新的安全访问控制规则实现TA对仅供TEE访问的SE的安全访问控制。

终端层接受TEEMP对基于TEE的手机终端进行集中管理,支持TEEMP对TA、SD及TEE的远程管理操作。终端层接收TEEMP下发指令实现对手機终端SD的远程下载、安装/卸载、个性化、锁定/解锁以及密钥更新等管理操作。TEEMP对TA与TEE的管理通过SD进行,SD在TEE内接收TEEMP指令后实现对TA的下载、安装、卸载、更新和锁定/解锁等操作,以及对TEE的密钥管理、个性化设置、恢复出厂设置和锁定/解锁等操作。

SE层由安全元件组成,为REE和TEE所接入的安全元件,安全级别高的文件可存储在仅由TEE可访问的SE中,一般的文件则可存储在能由REE访问的SE中。

综上,通过TEEMP并结合手机终端上REE访问控制器和TEE访问控制器一起实现了对手机终端上的TA、SD、TEE和SE的远程安全部署、安全访问控制及安全管理。

4 结束语

当前,手机已经成为人们随身携带的重要工具,手机的功能已经不再局限于作为通信工具,它还是娱乐工具、导航仪、移动办公工具、电子钱包及存有个人重要数据的移动硬盘等。实际上,手机已经成为人们随身携带的必不可少的智能计算机,因此手机也像传统的个人计算机一样不可避免地成了恶意应用及黑客攻击的目标[11],如何加强手机的安全性已经成为业界讨论的热点问题。本文从GP的TEE系统架构出发,提出一种基于TEE的安全手机功能和管理平台架构,这种架构保障了授权安全软件TA的安全执行和实现对手机进行安全访问控制及远程安全管理,从而有助于移动运营商向用户提供安全存储、安全算法、安全用户界面及安全支付等安全服务。

参考文献:

[1] 先谢郭嘉. 2016年Q1全球智能机市场销量报告 三星苹果华为前三甲[EB/OL]. (2016-05-20). http://t.qianzhan.com/mob/detail/160520-4a7a230d.html.

[2] 伯小乐. 让微信等知名APP都中招的XcodeGhost事件全面详细回顾[EB/OL]. (2015-09-20). http://blog.jobbole.com/91646/.

[3] GlobalPlatform Device Technology. TEE system architecture version 1.0. Technical Report GPD_SPE_009, globalplatform.org[R]. 2011: 13.

[4] GlobalPlatform Device Technology. TEE system architecture version 1.0. Technical Report GPD_SPE_009, globalplatform.org[R]. 2011: 17.

[5] GlobalPlatform Device Technology. TEE system architecture version 1.0. Technical Report GPD_SPE_009, globalplatform.org[R]. 2011: 18.

[6] GlobalPlatform Device Technology. TEE internal API specification version 1.0. Technical Report GPD_SPE_010, globalplatform.org[R]. 2011: 16.

[7] GlobalPlatform Device Technology. TEE system architecture version 1.0. Technical Report GPD_SPE_009, globalplatform.org[R]. 2011: 21.

[8] GlobalPlatform Device Technology. TEE client API specification version 1.0. Technical Report GPD_SPE_007, globalplatform.org[R]. 2010.

[9] GlobalPlatform Device Technology. Trusted user interface API version 1.0. Technical Report GPD_SPE_020, globalplatform.org[R]. 2013.

[10] GlobalPlatform Device Technology. TEE internal core API specification version 1.1.1. Technical Report GPD_SPE_010, globalplatform.org[R]. 2016.

[11] 杨穗珊,王朝晖. 天价流量与数据流量业务的未来[J]. 移动通信, 2015,39(23): 34-38. ★