一种通用的外置式智能终端安全运行环境构建方法

文档序号:6506453阅读:180来源:国知局
一种通用的外置式智能终端安全运行环境构建方法
【专利摘要】本发明公开了一种通用的外置式智能终端安全运行环境构建方法。本方法为:1)应用发布方为目标应用建立一包括ramdisk文件和内核镜像的应用安全策略包;在该Android系统设置一系统安全控制模块后对系统进行编译生成所述内核镜像;系统安全控制模块包括一安全策略文件;2)设置一可信执行模块TEM,发送命令信息给该智能终端,使其从该TEM端下载该应用安全策略包,并在该智能终端上启动系统;3)系统安全控制模块监控系统运行过程中映射入内存的所有文件,检查其是否属于安全策略文件中的文件,如果是则该系统安全控制模块对本次映射操作予以放行,否则拒绝本次映射操作。本方法无需对智能终端原有软硬件进行更改,易于推行。
【专利说明】 一种通用的外置式智能终端安全运行环境构建方法

【技术领域】
[0001]本发明涉及一种基于ARM与Android的智能终端构建可信运行环境的方法,侧重于在不影响智能终端原有软硬件结构的基础上实现为目标Android应用程序建立可信运行环境的目的,适用于安全敏感的应用领域,如电子支付业务、安全通信等,属于信息系统安全范畴。

【背景技术】
[0002]以智能手机、平板电脑为代表的智能终端拥有功能完善的操作系统、强大的应用处理器(CPU)和内存以及优秀的人机交互界面,用户可以根据个人需要实时扩展机器功能,可以安装更多的应用程序,实现了软件市场同步的人性化功能。智能终端已经发展成为一个功能强大,集通话、短信、影视娱乐、网络接入为一体的综合性个人手持终端设备。智能终端的以上特点使得它可以随时随地的满足用户的多种需求。然而,随着智能终端的广泛应用,越来越多的安全问题也随之出现,诸多非法流氓应用程序、恶意软件以及未知病毒程序入侵带来的用户信息安全问题日趋严重,使得用户的个人信息包括通讯录、日程、位置信息、短信、照片和语音备忘录等个人隐私以及电子账户财产安全都存在严重的安全隐患。
[0003]可信计算相关技术是解决终端安全问题的一个有效手段,传统以TPM(可信平台模块)为代表的可信计算技术最初应用于解决PC终端存在的安全问题,技术路线主要是在计算机原有软硬件系统的基础上,通过在各个层次增加安全组件,以B1S为信任根,根据启动顺序,每个组件负责对启动过程中的下一个组件进行完整性度量与验证,从而为计算机应用构建一个安全可信的运行环境。在可信计算发展过程中,研究者还提出了移动TPM的概念,其思想主要借鉴U-Key的技术路线,实现了 TPM芯片中可信存储、密钥管理等功能的移动化,然而,对于为应用构建可信运行环境这一目的,移动TPM仍然采用了以引导程序为信任根的方法,需要对传统计算机引导程序进行定制修改,从而实现可信运行环境的建立。此外,研究者还提出了 TPCM (可信平台控制模块)方案,通过在PC终端中植入TPCM安全芯片,通过改变传统计算机的加电启动顺序,从而实现可信根的转移以及可信运行环境的建立。
[0004]随着智能终端的发展,为智能终端建立可信运行环境的需求越来越大。该类技术的典型代表包括ARM的TrustZone技术、TCG的MTM(移动可信模块)技术等。其中TrustZone技术是在ARM V7体系架构中提出的方法,因此该方法需要终端采用支持ARM V7架构的CPU。MTM技术是TPM技术在智能终端的研伸,基于其构建可信运行环境的方法类似于TPM。
[0005]分析上述方法,可以看出,传统可信计算技术伴随而来的一个问题是技术方案的实施需要终端产商、芯片产商或者系统软件产商的深度参与,而这样做一方面会使得方案无法直接为已销售的终端用户提供安全保障,另一方面终端产商考虑到产品稳定性与成熟度等问题,也会对采纳该类方案存在疑虑。因此设计一个与智能终端原有软硬件结构无关的、同时又具有传统可信计算具有的软硬件联动的安全保障优点的可信运行环境构建方法显得十分必要。而通过调研,目前还未有人提出具有上述特点的面向智能终端的可信运行环境构建方法。


【发明内容】

[0006]针对现有技术存在的技术问题,本发明的目的在于提供一种采用外置式硬件装置实现在智能终端中为一个或多个完整应用软件,而非一个或多个特定模块,构建安全运行环境的方法。外置式硬件装置与智能终端采用目前智能手机普遍支持的MicroUSB接口相连,无须对原有智能终端进行任何软硬件配置的更改。应用发布方可利用本方法为目标应用定制其期望的运行时软件栈环境。当目标应用运行在新环境中时,智能终端中已安装的其他应用不会导致目标应用的运行时软件栈环境与发布方期望值不相符合。通过本方法建立的运行环境,其计算资源仍然采用原有智能终端的硬件资源,因此目标应用的运行效率与外置式硬件装置本身配置无关。
[0007]如图1所示,本发明设计的系统架构如下:
[0008]系统将引入一个通过智能手机的MicroUSB硬件接口与智能手机进行连接的硬件装置,称为可信执行模块(TEM)。基于TEM可在普通智能手机平台中为可信应用动态建立可信运行环境。TEM主要利用智能手机已有的计算能力、显示能力以及网络互联能力等支持应用运行,TEM本身将只负责建立可信运行环境过程中必要的核心安全功能,因此TEM只需要内置低成本处理器及小容量RAM与Flash,支持外接SD卡等存储卡,从而保证了 TEM的低成本。
[0009]预期系统运行主要包括两个流程:
[0010]第一个流程是应用安全策略定制流程,通过该流程银行等应用发布方可为被保护应用(例如电子钱包等)制作安全策略包。安全策略包可以由应用发布方以存储有安全策略包的存储卡形式发布,也可由用户从指定位置下载安全策略包至个人SD卡等通用存储卡中。
[0011]第二个流程是用户使用流程。当用户需要运行该应用时,首先将存储有安全策略包的存储卡连接至TEM,并将TEM连接至智能手机。然后用户按下TEM上的“运行”按钮,TEM将为目标应用软件包建立可信运行环境,并通过TEM中的用户指示灯向用户提供可视性的可信运行状态信息。
[0012]在应用安全策略定制流程中,本发明提出了一种安全策略包制作方法。该方法描述如下:
[0013]I)应用发布方根据目标应用需要支持运行的智能终端设备型号,确定该型号设备所采用的Android系统版本,并生成该设备中的内核镜像文件副本,即boot, img。通过汇总该设备已有内核镜像文件的副本,得到ramdisk文件。
[0014]2)根据第一步确定的系统版本,下载安卓源代码,并在其内核部分加入系统安全控制模块,编译生成内核镜像。
[0015]3)释放第一步的boot, img镜像中的ramdisk。
[0016]4)利用步骤2)生成的内核镜像与步骤3)提取的ramdisk文件生成boot, img,该新的boot, img文件即作为本方法的应用安全策略包存在。
[0017]应用安全策略定制流程中增加的系统安全控制模块负责在Android系统内核加载后对系统中运行的应用软件根据安全策略进行控制,其流程如下:
[0018]I)系统安全控制模块内置允许运行的应用程序APK包中dex文件的哈希值列表。该列表即为安全策略,dex文件是android下dalvik虚拟机应用程序通用的文件后缀。
[0019]2)系统安全控制模块在内核态监控系统运行过程中映射入内存的所有文件,对于每个文件,首先检查其后缀名,如果为dex文件,则对其执行哈希操作,将操作结果与第一步内置的哈希列表中的哈希值进行比较,如属于该哈希列表,系统安全控制模块对本次映射操作予以放行,否则拒绝本次映射操作,Dex对应的应用APP启动失败。
[0020]在用户使用流程中,本发明提出了利用TEM构建安全运行环境的方法,方法如下:
[0021]I) TEM端向智能终端发送adb命令:adb reboot bootloaer,使终端重启进入bootloader 模式;
[0022]2) TEM 端向智能终端发送 fastboot 命令:fastboot boot boot, img,此处 boot.1mg为上文描述的应用安全策略包。
[0023]与现有技术相比,本发明的积极效果为:
[0024]1、传统TPM等安全运行环境建立方法通常需要对原有终端软硬件进行定制修改,然而,对于智能终端,由于其产业结构存在CPU产家各自为政,终端产商定制化特点明显,传统安全运行环境建立方法在实际部署时很难推行。本方法提出的基于MicroUSB接口的通用外置式智能终端可信运行环境建立方法,无需对智能终端原有软硬件配置进行更改,因此具有易推行的优点。
[0025]2、相比较U-Key等外置式技术,该类技术通常只能为密码学运算提供一个安全运行环境,而本方法提出的外置式技术,可以为一个完整应用建立安全运行环境。
[0026]3、采用本方法,应用发布方可以自行定义目标应用的预期运行环境,使得其摆脱了对其他安全方案提供商的依赖,实现了对自身关注内容的安全保护能力自定义。

【专利附图】

【附图说明】
[0027]图1为发明方法的系统架构图;
[0028]图2为TEM构建可信运行环境工作流程图。

【具体实施方式】
[0029]1、在应用安全策略定制流程中,本发明提出了一种安全策略包制作方法。具体实施方法描述如下:
[0030]I)应用发布方根据受保护应用需要支持运行的智能终端设备型号,确定该型号设备所采用的Android系统版本,并生成该设备中的内核镜像文件副本,即boot, img。
[0031]2)根据第一步确定的系统版本,下载安卓源代码,并在其内核部分加入系统安全控制模块,系统安全控制模块为一个基于Linux LSM (Linux安全模块)框架实现的一组代码,将该代码包放置在Linux源代码内核中,然后根据通用的Android源代码编译方法,生成内核镜像。
[0032]3)释放第一步的boot, img镜像中的ramdisk。方法如下:
[0033]利用unpack-bootimg.pi 即可对 boot, img 解包得到 boot, img-ramdisk.gz。命令为:unpack-bootimg.pi boot, img。
[0034]4)利用mkbootimg,将第二步的内核镜像与第三步的ramdisk生成一个boot, img,该boot, img即作为应用安全策略包存在。命令如下:
[0035]mkbootimg boot, img-kernel boot, img-ramdisk.gz~o boot, img
[0036]2、应用安全策略定制流程中增加的系统安全控制模块负责在Android系统内核加载后对系统中运行的应用软件进行控制,其主要利用Linux LSM框架中对于内存映射文件的系统调用进行截获与判断,其判断逻辑如下:
[0037]I)系统安全控制模块在其代码中内置允许运行的应用程序APK包中包含dex文件的哈希值列表。该列表可采用如下方法实现:
[0038]A.使用APK解包工具对允许运行的应用程序APK包进行解包得到dex文件;
[0039]B.对dex文件做SHAl运算;
[0040]C.将SHAl运算得到的HASH值以数组形式预置到安全控制模块代码中。
[0041]2)系统安全控制模块在内核态监控系统运行过程中映射入内存的所有文件,对于每个文件,首先检查其后缀名,如果为dex文件,则对其执行哈希操作,将操作结果与第一步内置的哈希列表进行比较,如属于该哈希列表,系统安全控制模块对本次映射操作予以放行,否则拒绝本次映射操作。
[0042]3、如图2所示,本发明的TEM构建可信运行环境的工作流程如下:
[0043]I)用户按下TEM上的“运行键”,以下步骤由TEM自动执行;
[0044]2) TEM端向智能终端发送adb命令:adb devices,如果设备与TEM处于正常连接状态,设备端会向TEM端返回设备信息;
[0045]3) TEM端检测设备信息:若没有检测到设备信息,检查设备连接以及驱动文件是否正常,确认无误后返回2)重新执行;若检测到设备信息则继续向下执行4);
[0046]4) TEM端向智能终端发送adb命令:adb reboot bootloaer,使手机重启进入bootloader 模式;
[0047]5) TEM端检测4)中命令的返回结果:若返回错误(error:device not found)检查设备连接,返回2)继续执行;若没有返回错误则等待5秒使手机有充分的时间进入bootloader模式然后继续向下执行6);
[0048]6) TEM端向智能终端发送fastboot命令:fastboot devices,用来检测设备是否已进入bootloader模式;
[0049]7)TEM端检测设备信息:若没有检测到设备信息,检查设备连接是否正常,返回6)重新执行;若检测到设备信息则继续向下执行8);
[0050]8) TEM端向智能终端发送fastboot命令:fastboot boot boot, img,使智能终端设备从TEM端下载boot, img并利用该img文件重启进入可信运行环境;
[0051 ] 9 )判断命令8 )是否执行成功,若执行成功则流程结束,若执行失败,则检查boot,img文件的位置及命名是否正确,检查并修改无误后返回8)执行。
【权利要求】
1.一种通用的外置式智能终端安全运行环境构建方法,其步骤为: 1)应用发布方为目标应用建立一应用安全策略包,其包括一ramdisk文件和一内核镜像;所述ramdisk文件为支持运行该目标应用的智能终端所采用的Android系统中的ramdisk文件,在该An droid系统的内核部分设置一系统安全控制模块后对该An droid系统进行编译生成所述内核镜像;所述系统安全控制模块包括一安全策略文件; 2)设置一可信执行模块TEM,将存储有该应用安全策略包的设备与该TEM数据连接,将该TEM与支持运行该目标应用的智能终端数据连接; 3)该TEM发送命令信息给该智能终端,使其从该TEM端下载该应用安全策略包,并在该智遗终纟而上启动Android系统; 4)该系统安全控制模块在内核态监控该Android系统运行过程中映射入内存的所有文件,对于每个文件,检查其是否属于该安全策略文件中的文件,如果是则该系统安全控制模块对本次映射操作予以放行,否则拒绝本次映射操作。
2.如权利要求1所述的方法,其特征在于所述安全策略文件包括一组允许运行的文件信息。
3.如权利要求2所述的方法,其特征在于所述安全策略文件包括一允许运行的应用程序APK包中dex文件的哈希值列表。
4.如权利要求3所述的方法,其特征在于所述哈希列表的生成方法为:首先使用APK解包工具对允许运行的应用程序APK包进行解包得到dex文件;然后对dex文件做SHAl运算;然后将SHAl运算得到的HASH值以数组形式预置到该系统安全控制模块中。
5.如权利要求3所述的方法,其特征在于该系统安全控制模块首先检查每个映射如内存的文件后缀名,如果为dex文件,则对其执行哈希操作,将操作结果与该哈希列表中的哈希值进行比较,如果有对应的哈希值,则系统安全控制模块对本次映射操作予以放行,否则拒绝本次映射操作。
6.如权利要求1?5任一所述的方法,其特征在于所述应用安全策略包的制备方法为: 61)应用发布方根据支持运行目标应用所需的智能终端设备型号,确定该型号智能终端所采用的Android系统版本,并生成该型号智能终端的内核镜像文件副本boot, img ; 62)在该版本Android系统的内核部分设置该系统安全控制模块,编译生成该内核镜像; 63)释放该boot,img中的ramdisk文件; 64)将该内核镜像与该ramdisk文件生成一内核镜像文件副本boot,img,将该内核镜像文件副本boot, img作为所述应用安全策略包。
7.如权利要求6所述的方法,其特征在于通过应用发布方发布存储有该安全策略包的存储卡的方式获取所述存储有该应用安全策略包的设备或通过从指定位置下载该安全策略包至存储卡的方式获取所述存储有该应用安全策略包的设备。
8.如权利要求1所述的方法,其特征在于,可信执行模块TEM利用智能终端已有的计算能力、显示能力以及网络互联能力支持目标应用运行。
9.如权利要求1所述的方法,其特征在于可信执行模块TEM与智能终端连接后,首先向智能终端发送adb命令:adb reboot bootloaer,使终端重启进入bootloader模式;然后向智能终端发送fastboot命令:fastboot boot boot, img,此处boot, img为所述应用安全策略包。
10.如权利要求9所述的方法,其特征在于可信执行模块TEM上设有用户指示灯,通过用户指示灯向用户提供可视性的可信运行状态信息。
【文档编号】G06F21/57GK104346572SQ201310317084
【公开日】2015年2月11日 申请日期:2013年7月25日 优先权日:2013年7月25日
【发明者】于爱民, 陈路, 杨文思 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1