TrustZone技术在Android系统中的安全性研究
2015-11-10包依勤
包依勤
摘 要:随着移动终端应用的日益增长,移动终端需要处理重要任务的需求也越来越大,对移动设备操作系统的安全性要求也越来越高。Android系统作为主流的移动设备操作开放系统,目前只凭软件还不能满足用户对移动设备的安全要求。而如果Android移动设备中采用ARM公司的Trust Zone技术,即可使系统平台的安全性得到保证。文章针对TrustZone技术在Android系统中的应用进行了阐述,并对利用TrustZone技术保护移动设备中的屏幕、内存等外设,保证支付安全以及DRM受保护视频内容等操作进行了研究。
关键词:Android;TrustZone;安全支付;DRM
中图分类号:TP391.081 文献标识码:A 文章编号:2095-1302(2015)10-00-04
0 引 言
随着互联网和移动终端的快速发展,传统的手机已经满足不了用户的需求,用户不仅仅只是打电话和发送短信,而是希望手机能够做更多的事情,例如网购、看刚上映的电影等,所以,手机的安全性得到用户以及移动设备厂商的高度重视。用户在使用手机网购时,特别担心输入的密码、银行卡等信息是否安全。用户在看付费视频时,视频内容不能被随意的复制,否则将损害众多数字版权厂商的利益。因此,安全支付和视频内容版权保护就需要手机厂商和硬件厂商提高手机的安全性。
这些在传统的手机软件和硬件架构中,实现起来相当复杂,而且安全可靠性并不是令人非常满意。一些厂商最原始的设计是将安全秘钥写到芯片中,但是如果芯片内容被上层恶意软件伪装成系统服务进行访问,必然会带来很大的风险。
然而,Android系统是一个开放的操作系统,Android源代码开放[1],所以Android系统还不是很安全。同时,针对Android系统的恶意软件越来越多,对于安全开发人员来说,恶意软件的数量以及攻击方式无法预期。用户在使用安全支付功能时,当支付进程与恶意进程同时存在Android系统中时,银行卡、密码等信息很有可能就被恶意软件截获,支付操作就变得非常危险。当用户在播放付费视频时,视频内容虽然是加密过的,但是如果密钥被恶意软件所截获,DRM受保护的视频内容利用密钥解密后将被恶意软件任意进行复制,将危及到全球数字版权厂商的利益。
本文主要阐述了在Android系统中基于ARM[2]的TrustZone安全软件架构技术,并对TrustZone安全软件架构下手机支付模式和DRM视频播放模式进行了分析研究,TrustZone技术的应用使Android系统平台的安全性得到了很好的保证,有效地提高了网上支付的安全,维护了DRM数字版权厂商的利益。
1 Android中TrustZone软件架构
1.1 TrustZone技术
ARM TrustZone? 技术是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理(DRM)、企业服务和基于 Web 的服务。TrustZone 技术与 Cortex处理器[3]紧密集成,并通过 AMBA AXI 总线和特定的 TrustZone 系统 IP 块在系统中进行扩展。此系统方法意味着可以保护安全内存、加密块、键盘和屏幕等外设,从而可确保它们免遭软件攻击。隔离所有 SoC 硬件和软件资源,使它们分别位于两个区域(用于安全子系统的安全区域以及用于存储其他所有内容的普通区域)中。支持 TrustZone 的 AMBA AXI 总线构造中的硬件逻辑可确保普通区域组件无法访问安全区域资源,从而在这两个区域之间构建强大边界。将敏感资源放入安全区域的设计,以及在安全的处理器内核中可靠运行软件可确保资产能够抵御众多潜在攻击,包括那些通常难以防护的攻击[4](如使用键盘或触摸屏输入密码)。
1.2 Android移动设备开机启动流程
Android移动设备中包含两个操作系统,分别为Secure OS和Normal OS 。设备在开机引导(如APQ8064)中,BootLoader启动流程分为3个阶段,分别是PBL、SBL1~3和APPSBL。其中,PBL(Primary BootLoader)指的是手机固件中固化好的启动代码,SBL(Secondary BootLoader)指第二启动代码,SBL1~SBL3分别是手机第二启动的三个阶段,APPSBL(Applications ARM BootLoader)指Android系统的引导代码。Secure OS(即TrustZone镜像)是在SBL2中加载并启动的。Normal OS(即Android操作系统),是由APPSBL引导的,包含Android内核以及Android的相关系统服务。启动流程如图1所示,从Power On 到Load TZ表明了Secure OS已经启动完成,从SBL3到Android OS表明了Normal OS已经启动完成,完成了Secure OS和Normal OS,则表明Android移动设备正常启动。
图1 Android移动设备启动流程
ARM的TrustZone技术的作用就是:支持把多核系统划分成关键系统资源运行的安全环境和其他系统资源运行的非安全环境。TrustZone隔离系统的关键部分只能在安全环境下访问这些部分,其基础是Cortex-A9 MPCore硬件和AMBA AXI3总线标准。在TrustZone支持系统中,每一AXI会话包括一个非安全(NS)比特,用于表示此次会话来自非安全还是安全环境。每次会话利用这一信息,系统中的从机可以选择根据其TrustZone状态进行响应[5]。
1.3 Secure OS
Secure OS主要实现了一个分离内核(separation kernel)的功能,与虚拟机监控程序类似,分离(或分区)内核安全地隔离Android系统进程的环境。Secure OS是利用ARM提供的TrustZone安全扩展电路架构来实现的,在这个系统中运行的所有程序都是受保护的、受信任的,拥有非常安全的运行空间,拥有自己独立的系统堆栈以及内存地址,是独立于Android系统之外的操作系统,与Android操作系统完全分隔。从外设、内存地址空间、进程运行堆栈上完全分隔,从而可以保证Secure OS中进程的安全执行,避免Android系统中恶意进程的干扰。当手机中的进程需要执行某些敏感的操作(例如安全支付、读取DRM密钥等)时,都需要在这个系统空间中去认证并执行,如果认证失败,就会直接产生中断,告诉Android系统这个操作是不安全的,最终执行失败。在Android移动设备中执行有关安全特性的操作时,Secure OS能够有效的隔离恶意代码的攻击,其中,系统空间的隔离是最安全的保障。
1.4 Normal OS
在移动设备中,Normal OS就是Android OS。在此系统中,用户可以自由安装互联网的软件,可以浏览互联网网页,但其安全性相对于Secure OS要低很多。由于Android OS采用Linux安全机制,从系统上能够保证Android OS一定程度的安全性,可以保证Android OS免受攻击,但是当用户或者非法分子一旦将Android移动设备取得root管理员权限后,Android系统就变得十分不安全,互联网中的恶意软件就可以随意修改设备中的文件、访问用户的资料,势必给用户带来极大的利益损失。结合Secure OS利用TrustZone技术,可以有效的保证手机的安全性,在不缺失Android系统给用户带来的极方便操作以及非常好的用户体验的同时,又能保障移动设备的安全,可以说ARM公司的TrustZone方案完全保障了移动设备厂商等的利益,使用户用的安心。
1.5 Android安全软件架构的实现
在Android OS中,要实现与Secure OS通信,必须在内核中集成TrustZone驱动,并在Android系统HAL层(Hardware Abstract Layer硬件抽象层)使用TrustZone API实现本地系统库,在Framework中实现TrustZone客户端服务进程,使得移动设备能够满足用户的某些安全特性的需求。当Android OS需要切换到Secure OS执行相关安全操作时,需要向TrustZone客户端服务进程发出请求,随后服务进程调用TrustZone本地库(即集成了TrustZone API系统库),随后转交给内核调用TrustZone驱动去切换CPU工作模式到Monitor Mode,再切换到Secure OS的执行空间,有Core核心层分发请求安全操作事件,User用户层执行安全操作。这种安全架构从内存空间以及系统隔离方式上保证了操作的安全性,不管Android OS层有多少恶意进程,都无法进入Secure OS空间,用户操作的安全性都能得到很好的保障[6]。
从Android OS切换到Secure OS的过程如图2所示。当Android OS层的App(例如支付、DRM视频播放等)需要完成安全性任务时,向Frameworks层的TZ(TrustZone) client请求;如果是DRM视频播放任务,则需要通过Android的DRM service与TZ client请求;如果是支付任务,则直接向TZ client发出请求。TZ client收到上层的App请求后,通过调用HAL层的TZ Native库,向Kernel层的TZ driver发出请求,TZ driver处理相应的请求,通过SMC命令,切换到Secure OS中的Monitor模式。在Secure OS空间,通过Monitor监视器完全切换到Secure OS的系统堆栈空间以及进程空间,有Secure OS的Core核心层通知Secure OS上层的TZ service服务处理任务,再由TZ service负责分发安全性任务请求。此时,已经完成Android OS向Secure OS请求安全任务的请求,最终由Secure OS空间的App层去处理相应的安全性任务请求,根据不同的任务请求做出相应的动作,例如DRM视频解码任务,则DRM App获取密钥解密视频内容,或者支付任务,则通过内存块保护或者总线保护手段锁住显示内存空间。在手机使用中,主要的安全需求包括手机支付、DRM视频播放服务等,为了保证操作或者某些特殊资源访问的安全,需要切换到Secure OS下,执行相关的代码或者相关的外设访问。
图2 android系统切换流程
2 手机支付模式分析
在手机弹出支付页面时,Android系统就会切换到Secure OS中,使用TrustZone安全扩展架构保护TouchScreen、Graphics以及内存、总线地址等外设,这些外设只能在Secure OS中被访问,而且Secure OS运行的都是可靠安全的程序。相对于Android开发的操作系统,免受恶意软件的攻击。
当用户需要使用手机支付时,Android操作系统就会请求切换CPU模式,称之为Monitor Mode,即监控模式。在非常安全的环境下,CPU就会在Monitor Mode中切换到特权模式,进入Secure OS安全环境。这样便保证了Android系统和Secure OS之间软件空间的独立性。由于Secure OS运行于TrustZone之上,所以Secure OS有权限对TouchScreen以及Graphics外设访问,而普通的系统Android OS是没有权限读取这部分内存以及这些外设的,所以这就保证了在硬件空间上的独立性[7]。
Android手机支付流程如图3所示。当用户需要输入用户名密码或者银行卡号密码时,支付软件向TZ client请求保护相应外设,例如触摸屏、屏幕、内存等外设,随后TZ client通过一系列机制切换到Secure OS,Secure OS核心收到该请求,分发给上层中的进程,安全环境下的支付进程通过一些服务获取触摸屏上的触摸信息,即支付信息,例如支付密码等,随后将这些信息发送给支付服务器。当支付服务器处理支付信息后,向Android OS的支付进程反馈支付结果,Android OS中的支付进程最终将支付结果通过UI显示给用户,让用户得知是否支付成功。这种支付模式将所有有关银行卡、密码等敏感的信息全部由Secure OS中的支付进程获取,保证了手机支付安全性和可靠性。
由此可见,TrustZone的安全性可靠保证了手机购物方式的快速发展,给人们生活带来了极大的便利。
图3 android手机支付流程
3 DRM视频播放模式分析
DRM全称是Digital Rights Management,叫做数字版权管理,是一种数字内容版权保护技术,目前这种技术主要用于国外。因为国外的很多影片公司视频版权意识非常强,很忌讳用户不用支付相应的报酬就可以播放他们自己的视频,所以都利用DRM的方式保护自己的视频版权,用户需要付费观看,并且不能够通过拷贝方式给其他设备播放或者就是限制设备播放次数或者播放截止时间,使得用户无法通过非法手段窃取视频内容,极大地保护了视频内容提供商的利益。这些功能虽然在软件方面设计很简单,但是对于Android设备来说,网络上存在着大量的恶意软件,只要用户将Android设备root权限后,恶意软件就可以非法篡改这些信息,所以关于DRM的软件设计务必需要考虑大量恶意进程同时存在危险性,而通过TrustZone就完全可以保证其安全。
DRM对视频内容版权进行保护的方式主要有两方面:第一方面是通过License File,这个文件用于检查该视频的许可证以及一些限制使用参数;第二方面是密钥,包括私有密钥和视频解码密钥[8],这两种密钥可以顺利让加密好的视频流进行解密。
在移动设备中,需要保证其安全性的就是许可证文件、密钥和解码后的视频流。通常许可证以及密钥是通过文件的形式放在存储器(闪存)上,而这个存储器则由Secure OS进行管理,并且只有它能访问,这样Android进程是无法访问到这一块存储器上的内容。Android OS空间的视频播放软件即我们常说的视频播放器在播放这类视频时,都需要向Android Framework层的DRM Service请求,最终所有请求都是通过DRM Service转换成TZ请求后,与Secure OS空间的DRM进程通信。License验证以及密钥读取、视频解码都是在Secure OS空间里面完成的。
DRM视频播放的详细流程如图4所示。Movie软件从视频提供商获取已经加密的视频流,向DRM Service发出请求,DRM Service收到请求后,将加密的视频流放置在内存中,通过TZ client与Secure OS的DRM管理进程进行通信。经过上述流程,整个软件运行空间就切换到Secure OS中,安全环境中的DRM进程读取License File,如果不存在或者与远程提供商服务器确认出错,就会拒绝解密,用户端呈现出来的就是无法播放该视频。License File以及密钥认证成功后,Decrypto解码器[9]负责将视频内容提供商提供的加密视频流解密,变成正常的视频流,最终由Codec对这个视频流进行解码,交给MDP(Mobile Display Process,称为移动显示处理器)处理及显示。
图4 DRM视频播放流程
因为DRM视频内容认证以及解密、解码均是在Secure OS环境中操作的,所以,Android OS层的任何进程或者服务都无法窃取到最终的显示内容,所以极大程度地保护了数字视频内容。基于TrustZone硬件架构的软件层设计保护了视频内容提供商的利益,为原创视频以及电影保证了创作的积极性。
通常Android系统空间运行的是安全要求不高的进程,而Secure OS空间运行的是安全性极高的进程,所以将需要保护的文件以及内存外设等安排在Secure OS中访问,这样,就能够保证Android移动设备播放DRM视频的安全性。
4 结 语
Android系统是目前手机最流行的操作系统,ARM架构处理器则是大部分移动终端的CPU,而人们对手机的安全性越来越重视,这也就要求软件厂商和硬件厂商都需要保证手机数据的安全性。ARM推出的TrustZone扩展外设保证了硬件上的隔离,Secure OS保证了软件上的隔离,相当于把安全的操作全部放在沙盒中,利用软硬件的隔离方式,实现了手机的安全特性。
参考文献
[1]郑力明,廖明华.Android安全机制分析与解决方案初探[J].科学技术与工程,2011,11(26):6350-6355.
[2]李宇成,李国辉,赵兴彩. 基于ARM嵌入式系统的空闲车位检测方法[J].科学技术与工程,2013,13(21):6118-6123.
[3]杜斌,陈泽华.基于Cortex-M3和互联网的分布式测试系统设计[J].科学技术与工程,2013,13(2):354-360.
[4]秦绪佳,王建奇,朱思达,等.基于GPU的四维医学图像动态快速体绘制[J].计算机辅助设计与图形学学报,2011,23(11):1789-1798.
[5] ARM Company. TrustZone? Security Foundation by ARM?.[EB/OL] .http://www.arm.com/zh/products/processors/technologies/trustzone.php.
[6] StefanoZammattio, CliveDavies. 使用ARM的TrustZone技术,针对安全和非安全应用划分系统[J].电子产品世界,2013(9):21-22.
[7] TOM R., HALFHILL. TrustZone Security Extensions Strengthen ARMv6 Architecture[EB/OL].http://www.arm.com/miscPDFs/4136.pdf,2004.
[8]于启红,李继国.抗密钥泄漏的基于身份的加密方案[J].科学技术与工程,2013,13(28):8310-8314.
[9]杨平,安博文.超分辨率扫描成像系统图像无损压缩算法研究[J].计算机应用与软件,2014,31(7):210 - 213,244.