基于可信计算的安卓移动智能终端安全加固技术研究
2017-10-12王乐东李孟君
◆熊 伟 王乐东 李孟君
(海军计算技术研究所 北京 100841)
基于可信计算的安卓移动智能终端安全加固技术研究
◆熊 伟 王乐东 李孟君
(海军计算技术研究所 北京 100841)
安卓移动智能终端其软件生态系统和使用环境具有开放性,其安全性面临着很大风险。本文在综合分析了国内外移动智能终端传统安全技术和可信计算技术研究现状的基础上,介绍了如何利用可信计算技术对安卓移动智能终端进行安全加固,并给出了可信智能终端体系结构以及配套可信度量等关键功能的设计方法,从而实现一种可主动免疫的高效安全防范模式,确保终端软件不被篡改,从根本上降低安全风险,为移动智能终端的广泛应用奠定安全技术基础。
移动智能终端;可信计算;安全加固
0 引言
随着4G等无线通信技术的迅速发展,移动网络的通信能力日益增强,与之适应具备强劲处理器和大容量存储的智能终端的使用也越来越广泛。与传统的功能机不同,新一代移动智能终端拥有独立的操作系统,配备摄像头、蓝牙和GPS等多种硬件模块,可以安装和运行第三方软件,除了常用通话和短信功能,还提供娱乐和办公服务,成为个人移动通信和信息处理的平台。
目前最流行的移动操作系统包括Google的android(安卓)和苹果公司的ios。相比于ios,andriod最大的特点是它的开放性[1],各大手机厂商都可以根据自己的需求进行系统镜像定制,第三方应用的开发和发布安装也很简便,没有太多限制。这种开放性极大地促进了 andriod的发展,据 2017年市场数据调研公司kanta worldpanle最新调查表明,andriod市场份额在各个国家基本都超过了50%,在国内更是遥遥领先,高达86.4%。
与个人电脑的发展相似,移动智能终端的发展在给用户提供便利的同时也造成了安全隐患。移动智能终端上存储的用户个人信息,如通讯录、私人照片、网站账号密码等,以及随着移动支付的爆炸性推进而保存的个人支付信息,都成为恶意攻击者的首要攻击目标。因此作为目前最流行的移动操作系统,andriod遭到的攻击越来越多[1],手机病毒也开始出现[2],如何提高其安全性,减少恶意入侵风险成为了迫切需要解决的问题。
1 国内外研究现状
针对移动智能终端不断出现的安全问题,各大厂商将传统安全防护技术和安卓系统相结合,推出相应的解决方案,如腾讯、360和赛门铁克都发布了自己的安全产品。但是这些公司提供的安全产品采用的是传统的信息安全“老三样”:防火墙、入侵检测和杀病毒。移动智能终端面对是一个开放性使用环境,受到的攻击风险种类繁多而且不断进化,消极被动的封堵查杀只能应付已知攻击手段,一旦新的攻击技术出现就防不胜防。
因此具备主动防御功能的可信计算技术成为了移动安全领域一个新的研究热点。可信计算的概念由美国国防部1983年在其制定的《可信计算机系统评价准则》中第一次提出。随后,Microsoft、Intel、IBM、HP和 Compaq等IT巨头公司于 1999年10月领头发起和成立了可信计算平台联盟(TCPA),并在 2003年 3月将其正式更名为可信计算组织 TCG(Trusted Computing Group)[3],TCG发布了一系列可信计算标准,介绍了如何利用可信平台模块(TPM)提供的各种功能来保护系统平台的安全。在国内,1992年针对可信计算正式立项,开始了对可信计算的研究。在2004年10月,武汉大学和瑞达公司合作研制出了我国第一款自主研制的可信计算平台[4]。其后,联想公司和兆日公司于2005年也先后推出了各自的可信计算机,并都通过了国家密码管理局的鉴定和认证。2006年开始,业内厂商在国家密码管理局和全国信息安全标准委员会主持下,共同参与制定了具有中国特色的一系列可信计算规范和标准,并于2008 年成立了中国可信计算联盟,至此我国的可信计算事业开始蓬勃发展。
与传统安全防护“封堵查杀”技术相比,可信计算是指计算运算的同时进行安全防护,使计算结果总是与预期一样,计算全程可测可控,是一种运算与防护并存的主动免疫的计算模式[5]。可信计算在移动智能设备安全研究中也得到了很大关注,取得了一系列成果。
2005年TCG附属移动电话工作组MPWG(Mobile Phone Work Group)发布了移动电话工作组白皮书,对可信计算应用在移动领域进行了展望和案例分析。2007年MPWG公布了移动可信模块MTM(Mobile Trusted Module)规范[6],将以往成熟的TCG技术推广到移动终端中。在这之后MPWG又陆续发布了TCG移动参考架构和MTM使用案例等标准和规范。随着移动可信计算技术不断发展和成熟,许多国外学者开始研究在智能移动终端中如何开展可信计算技术应用。与此同时,国内学者也对移动可信平台体系架构进行了一些探索。不过在这方面的研究还处于起步阶段,相对较少,一些学者也只是提出了基于可信计算的理论设计,没有推出相应功能的技术和具体设计。
2 基于可信计算的安卓系统安全加固技术
2.1 移动智能终端可信体系架构
移动智能终端多基于SOC(System On Chip)芯片构建,为了采用可信计算技术对其进行安全加固,需要在其上增加 MTM提供可信服务,作为可信根。改造后的智能终端体系架构示意图如图1所示:
图1 移动智能终端可信体系架构
移动智能终端具有体积小、功耗低等特点,支持外设接口比PC要少的多,因此MTM不能采用通用PCI-E或USB接口设计,而目前移动智能终端很多都支持TF卡进行存储扩展,因此可以考虑采用基于TF接口的MTM在对终端硬件架构不做大规模修改的前提下进行可信改造。
2.2 可信移动智能终端信任链传递
信任链技术是可信计算技术的关键技术之一。通过信任链技术,可信计算平台把信任关系从信任根扩展到整个系统,确保整体可信。
移动智能终端启动流程与通用PC不同,它由bootloader而非BIOS进行系统内核加载,其信任链传递模型如图2所示:
图2 移动智能终端信任链传递模型
为了构建完整可靠的信任链,需要保证系统启动过程中从MTM、Bootloader、系统内核再到第三方应用,每个步骤都经过完整性验证,一级验证一级,一级确认一级,确保硬件和软件处于可信状态,实现移动智能终端整体可信。而安卓第三方应用通常运行在dalvik虚拟机上,以APK形式发布,所以与通用PC相比,信任链得延伸到dalvik和上层APK应用。
2.3 可信软件基程序完整性度量机制
可信软件基是构成可信计算设备安全子系统的组合体,用来防止不可信主体的干扰和篡改,其中最关键的一个模块是程序可信度量模块,用以根据可信白名单对待运行程序进行可信度量,从而识别其是否合法。在图2中已经介绍过,在android系统中,可执行程序主要分为Linux原生可执行程序和android应用程序两大类。其中,Linux原生可执行程序包括 Linux应用程序和动态库,为elf格式,在android内核中执行,而android应用程序以APK文件形式发布,在dalvik虚拟机中执行,可信软件基中完整性度量机制需要同时支持这两种格式的可执行文件。
Android应用程序APK文件实际上是zip格式的压缩文件,包含android dalvik虚拟机的字节码文件,资源文件,程序全局配置文件,以及通过jni接口调用的linux动态库。可信度量模块在内核中需要监控程序运行消息,当android应用程序或原生应用被映射进内存时,进行拦截并进行解析,然后验证程序中可执行文件的完整性,如果度量成功则允许继续执行,否则映射失败,阻止程序执行。安卓内核基于Linux实现,它提供了一个轻量级通用访问控制框架LSM[7](Linux 安全模块),具有通用、动态加载和高效的特点,支持用户在内核源代码中放置钩子实现自己的安全策略,因此安卓智能终端中可信度量模块可以采用它实现程序执行控制。
2.4 可信安全存储
目前,移动智能终端功能越来越强大,性能甚至超过了几年前的通用计算机,它上面保存的用户身份信息、通讯录和照片等个人隐私也越来越多,因此防止这些信息被非法访问就十分重要,这就要求在终端上实现对信息的安全存储功能。可信软件基包含的可信软件栈提供了访问MTM中用户认证、密钥管理、对称加解密等安全服务的标准接口,可以在此基础上实现对用户数据硬件级加密保护。
2.5 软件和系统镜像更新可信发布机制
与ios相比,andriod设备十分开放,用户可以自己安装第三方应用和系统镜像,这将不可避免引入很大的风险。虽然android应用 APK文件在发布前都必须进行签名,但与信息安全领域中数字证书使用目标不同,此签名只用来标识应用的开发者,不需要第三方权威认证机构进行认证。系统镜像更新更加灵活,通过技术手段可以直接刷写任意版本,没有任何控制。因此,为了确保智能终端的安全使用,需要实现软件和系统镜像更新的可信发布。为了支持可信发布,必须新增一个可信软件发布服务器来实现可信软件仓库功能,提供系统镜像升级包和第三方软件的采集、合法性认证和推送等功能。
移动应用的可信发布包括两个阶段:第一阶段在应用安装包和系统镜像升级包发布前,将其提交给可信发布服务器进行预期值采集和数字签名。APK安装包和系统镜像都包含了一组可执行文件,签名前需要先解压然后进行完整性度量并生成对应预期值文件,这些预期值将在安装后合并或替换可信软件基中的可信白名单。数字签名信息包则含签名和时变参数等信息。签名用于确保软件包来源合法性,时变参数则可用于升级过程中的前向安全保护,防止用户将软件版本降级造成旧版本漏洞仍旧有效;第二个阶段是移动智能设备通过本机的安装客户端从指定的发布服务器获取软件或系统更新包后进行软件安装或系统升级,安装前先进行可信度量和数字签名验证,只有通过可信度量和数字签名验证才能进行下一步安装或升级操作。
3 结束语
本文针对目前广泛应用于移动智能终端的android操作系统,分析了如何利用可信计算技术对其进行安全加固,实现抵御来源于网络的各种攻击、防止恶意代码对手机系统的破坏、以及非授权操作引起的隐私信息损毁和泄露等功能,增强移动智能终端的安全性。
文中使用的是MTM采用TF封装,由于其功耗较低,因此性能也比较低,对用户使用会造成一定影响。而目前主流的智能终端处理器大都采用ARM架构,在将来的研究中可以考虑利用其提供的trustzone技术,在处理器隔离出的可信执行环境中直接实现MTM的功能,提高终端性能,减少对用户正常使用的影响。
[1]Sinha, Amit, M. A. W. Sutton, and S. Devarajan. "Systems and methods for mobile application security classification and enforcement." US, US8763071,2014.
[2]Cheng J, Wong S H Y, Yang H, et al. SmartSiren:virus detection and alert for smartphones[C]// International Conference on Mobile Systems, Applications, and Services. DBLP,2007.
[3]TCG. trusted computing group[EB/OL]. http://www.tr ustedcomputinggroup.org/cn.
[4]张焕国,何炎祥,赵波等.我国可信计算研究与发展[J].中国计算机学会通讯,2010.
[5]沈昌祥,张焕国,王怀民等.可信计算的研究与发展[J].中国科学:信息科学,2010.
[6]TCG. Mobile Reference Architecture version 1.0[EB.OL].https://www.trustedcomputinggroup.org/specs/mobil ephone/tcg2mobile2reference2architecture21.pdf.
[7]Chris Wright, Crispin Cowan, Stephen Smalley, James Morris. Linux Security Module Framework[M].Ottawa Linux Symposium,2002.