用虚拟化技术应对智能手机的安全
摘要: 随着智能手机逐步演变成人们通信、信息交互、金融交易以及娱乐的中心,智能手机的安全问题也越来越多地引起人们的关注。以往在PC机上遇到的病毒、拒绝服务等问题也在智能手机上频现。现有的专用硬件和多核结构方案在智能手机的安全通信方面存在一定的缺陷。在此提出了一个虚拟化技术应对方案,通过对硬件资源虚拟化,并把虚拟资源按需要隔离成安全可靠的分区用以运行不同的应用。其中一个隔离分区专门用来解决智能手机在通信安全方面面临的挑战。
关键词: 智能手机; 虚拟化技术; 移动终端; 通信安全
中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2013)06?0076?03
0 引 言
迅速发展并日益普及的智能手机逐渐演变成了消费者移动通信,信息交互,金融交易和娱乐的中心。然而,随着智能手机的功能越来越变得接近普通计算机或数据中心计算机,智能手机的安全性也同样遭受到类似常用计算机遇到的麻烦,表现在:
脆弱性:由于数百万行的应用代码,未经严格的可靠性验证,智能手机容易受到病毒、窥探、特洛伊木马以及其他恶意软件的困扰。
软件缺陷:运行在智能手机上的OS不可避免地存在某些缺陷。由于未发现缺陷的存在,而使智能手机不断受到外界的攻击。支持标准应用开发的开放OS(如RimOS, WindowsPhone)、开放资源的OS(如Android,Linux)以及运行在智能手机上的应用在安全方面差异很大。
外来攻击:运行在智能手机上的应用,包括通信客户端,可能在系统层和进程级受到拒绝服务(DoS)攻击。尤其是人们所关注的语音、文本消息、以及其他数据流可能会遭到窃听。另外未经授权一方可能中断重要的通信,伪造参与者的身份和内容。
在PC领域里,频繁的紧急安全升级和打补丁,对于移动智能手机是难以接受的,这样的安全方法会阻止智能手机的发展。因此,安全必须从智能手机生存周期中的设计阶段开始。在理想情况下,智能手机的体系结构应该立足于现有的手持设备和平板电脑,部署现成的软件平台和应用,运行Android或Linux操作系统。设备要能支持常规通信(语音、文本、社交网络等)和普通的聊天服务,也要能在类似设备或基础设施之间进行信息安全交换。但是,这样的要求很难满足。首先就是安全通信涉及到常规应用,包括3G语音、VoIP、短消息、多媒体消息服务(SMS/MMS)和视频等,而运行在安全环境中的客户端应拥有加密数据流的功能;其次,需要开放网络。利用无处不在的3G,WiFi和其他网络实现安全通信。而GPRS,CDMA,802.11等自有的安全体系不足以支持安全和验证系统需要,因为已经验证了它们对嗅探、诱骗是脆弱的。还有,开放软件也是必要的。智能手机越来越多地运行开放OS或开放资源的OS,如Android, Linux等。安全通信移动设备开发人员通常不会替换这些平台,而是用安全、验证过的软件扩充或封装它们。
1 解决途径
智能手机在无线领域仅仅是个漫游代理,每一数码位的安全都很重要。安全必须借助于清晰地分区和隔离实现。隔离可以保证如果一部分受到威胁,其余部分仍然安全。此外,可靠的隔离能使安全检查从系统层展开。因此,智能手机的功能必须设有防火墙,就像IT网络和局域网一样设有防火墙。目前的解决途径有:
(1)专用硬件。最可靠、最安全的方法就是隔离软件在不同的硬件上运行程序。移动芯片组设有协处理器,用以加速图形、视频、音频、甚至加密等功能。然而,这些专用协处理器通常被配置成从属外围设备,没有为整个通信协议栈、语音和消息客户端的运行提供足够的支持环境。理论上,多个资源可以集成到一个硬件卡上,但是缺乏与不安全的设备发送和接收安全数据流的有效手段。
(2)多核结构。目前,高端智能手机和下一代智能手机的设计越来越多地以两个或更多的ARM处理器核作为多核应用处理器。理论上,一个或多个处理器专门用于安全移动通信,提供了强有力的与开放OS和开放应用环境的隔离。多数情况下,使用一个CPU核作为移动通信安全处理,因为安全处理会降低整个设备性能。而且,即使用一个专用CPU核运行安全通信处理,但共享物理内存仍然会受到来自运行开放应用OS核的攻击。
(3)虚拟化结构。构建安全移动平台的一个全面而简单的途径就是引入移动虚拟化技术。虚拟化能在单处理器上运行多个OS环境,每个应用环境在专门的分区中被彼此隔离,并且为通信安全考虑,专设一个安全应用分区,如图1所示。物理资源如内存和I/O设备也被专门分区。通过优化分区数目以满足整个系统需要,这样就允许在专门的分区内安全隔离设备管理功能。系统环境在各自的分区中重用,无需更多的工作。只有OS硬件抽象层部分(HAL)需要以相对低的工作和代价做一些调整。这样,对网络资源的访问只能通过该安全应用接口,以此确保智能手机的安全性。
2 虚拟化方案的实现
虚拟化能使实时环境与OpenOS及常用硬件平台或处理器上的其他运行环境并行运行。虚拟化软件支持多种环境,维持系统的实时特性。虚拟化建立在虚拟机监控(VMM)基础层之上,VMM模块可进行配置。VMM提供了虚拟化要求的基本特性—内存分区,CPU虚拟化和调度。实现可靠的隔离。对于OS,在隔离分区中运行的不论是RTOS还是OpenOS不能直接访问分区以外资源,即,它不能读或写其他分区,它的I/O访问也受到限制。核心BSP组件提供了基本设备的虚拟化,如时钟、定时器和可编程中断控制器(PIC)。如果多个客体OS在同一处理器上运行,可实现在维持RTOS实时特性下调度客体OS。
资源分区:虚拟机对物理内存分区并安全地彼此隔离,每一分区分配给指定的客体OS。这样,每一客体OS使用自己的内存管理机制和策略,不需要与其他客体OS接口,不能读或写入另一个OS分区。这种方法允许OS,例如Linux和Windows CE使用MMU,而那些没有MMU的OS如Nucleus和VxWorks则在单处理器上协作运行。某一客体OS使用的I/O设备就只分配给该客体OS。于是,常用设备驱动程序可以不加修改地重用。
资源虚拟化:几个客体OS所需的硬件资源如CPU, MMU和FPU被虚拟化后在所有的客体OS之间共享。CPU的共享机制基于保证实时客体OS被赋予最高优先级的调度策略。一旦一个客体OS被允许使用CPU,OS则使用其既有的策略调度它的应用和服务。MMU虚拟化后为每一个客体OS所私有。一个客体OS使用MMU与其他客体OS无关。
OS调度策略:为不同的OS提供可配置的调度策略。常用的策略是FIFO调度策略:给客体OS赋予优先级。RTOS的优先级最高,一旦需要,它将抢先任何其他客体OS,因为RTOS运行的是时间相关的关键任务。其他OS共享一个指定的优先级,可按FIFO方式调度,或按公平共享调度,取决于配置。
设备虚拟化:客体OS需要共享其他硬件资源,如核心设备与I/O外围设备。客体OS使用的核心设备通常有:时钟,定时器以及可编程中断控制器和UART。使用的I/O外围设备有:网络接口控制器,磁盘控制器和串口。
I/O外围设备:I/O设备如显示屏、键盘、USB、音频设备、闪存、照相机、蓝芽接口和调制解调器等。
专用外围设备:单一环境使用的I/O外围设备,例如蓝芽接口仅由Linux系统访问。在这样的配置中,客体OS可使用已有的驱动管理外围设备。外围设备产生的中断被虚拟化后由核心BSP发送给客体OS。
共享外围设备:有些I/O外围设备可以由2个OS的应用访问。例如,显示屏可以由实时话音呼叫应用访问,也可以由Linux系统浏览闪存上的文件系统访问。一个客体OS拥有外围设备,通过已有设备驱动管理它,好像它是一个专用设备。拥有设备的客体OS同时也运行后端驱动接收和协调来自要访问该设备的其他客体OS的请求。后端驱动依靠已有设备驱动执行实际I/O操作。其他客体OS不再使用它们的设备驱动,但是使用“前端”驱动,为客体OS提供同一服务。这样,前端设备驱动与其对等实体的后端驱动通信。这种模式称作分离驱动模型。
通信:一个典型的OS支持多进程,提供这样的服务:进程间同步和通信,调度策略,共享访问系统和网络接口,以及内存管理。把最合适的虚拟外围设备放在底层通信机制的顶部保证了通信更好地适应应用需要,而且隐藏了底层的复杂性。这就使得运行在OpenOS中的应用与运行在RTOS中的应用有效的通信,使用最适当的通信方式。
监控:监控服务典型地用于开发中。在平台上捕捉与调度相关的事件,如硬件中断。这些事件在本地收集,然后由一个工具进行检索和分析,该工具运行在与嵌入式设备相连的主系统上。
3 应用实例
随着智能手机逐渐转变为消费者移动通信、信息、金融事务处理和娱乐中心,安全、有效的数字权限管理(DRM)是很重要的。以在智能手机上播放视频为例,虚拟化在一个OpenOS上建立一个专门的基于DRM的播放分区。通过安全应用监控,保证下载到OpenOS环境DRM播放器上的数据不会被的恶意软件破坏。当智能手机用户下载一个加密的DRM视频时,使用安全连接。因为视频被加密存储,最符合用户的期望。为了播放视频,用户必须使用可信任的DRM播放器,它是惟一有合适密钥解码视频的播放器。安全应用建立在DRM播放器和OpenOS之间,确保DRM播放器不被加载和运行在OpenOS上的任何软件或系统模块所破坏。而且,DRM也能访问播放视频的显示屏,保证解码后视频输出不被捕获。
4 结 语
用虚拟化技术构建智能手机的安全有以下好处:一个可信赖计算单元就可化解对开发的验证和限制。在各自隔离的单元内部署现成的开放OS和协议栈。可灵活地实例化新单元以满足安全体制的特殊需要以及支持它的技术。通过隔离和限制单元间通信API防御恶意软件和单元间的安全,该开放OS的API可能受到病毒感染出现故障,但不会影响其他单元的安全通信软件。高性能的快速进程间通信机制。通过单元间监控、优化、负荷平衡抵御拒绝服务(DOS)攻击。
参考文献
[1] 李芳社.虚拟化技术在通信基础设施中的应用[J].现代电子技术,2009,32(8):156?158.
[2] 李芳社.用实时虚拟化技术设计连接设备[J].现代电子技术,2011,34(9):57?59.
[3] 吴建军,马文静.使用VB2005设计Smartphone智能手机应用程序入门[J].福建电脑,2007(10):41?42.
[4] 杨新华,陈蜀宇,樊承泽.Windows CE系统下WAP浏览器的研究与设计[J].计算机工程与设计,2010,31(13):3088?3089.
[5] WIGLEY A, MOTH D, POOT P.Microsoft Mobile 移动应用开发宝典[M].张大威,译.北京:清华大学出版社,2008.
[6] 郝玉峰,程显峰,李科.面向智能手机语音识别应用的汉语语音数据库[C]//第十一届全国人机语音通讯学术会议论文集(一).北京:中国中文信息学会,2011:53?56.
[7] 陈光.基于虚拟化技术开发环境的研究[J].信息技术,2010(2):88?90,107.
[8] 万兵.基于虚拟化技术的单CPU 3G手机发展趋势[J].信息通信技术,2010(1):57?60.
[9] 辛军,陈康,郑纬民.虚拟化的集群资源管理技术研究[J].计算机科学与探索,2010(4):324?329.
[10] 田冰超.虚拟化技术研究与探索[J].武警学院学报,2010(4):86?89.