APP下载

基于Android的移动终端安全管理系统

2014-06-07傅镜艺马兆丰黄勤龙杨义先

计算机工程 2014年11期
关键词:SIM卡服务端指令

傅镜艺,马兆丰,黄勤龙,杨义先

(1.北京邮电大学信息安全中心,北京100876;2.北京国泰信安科技有限公司,北京100876)

基于Android的移动终端安全管理系统

傅镜艺1,2,马兆丰1,2,黄勤龙1,2,杨义先1

(1.北京邮电大学信息安全中心,北京100876;2.北京国泰信安科技有限公司,北京100876)

针对Android移动终端设备安全和敏感数据泄露的问题,设计并实现基于Android的移动终端安全管理系统,允许用户远程对移动终端设备和其存储的数据进行安全管理。该系统采用C/S架构,客户端允许用户将移动终端注册到服务端,并通过在移动终端嵌入可信平台模块实现基于口令、设备和SIM卡三因素的本地用户身份识别。服务端允许用户通过Web平台对已注册的移动终端进行定位、锁定、数据加解密、数据擦除等远程安全管理。为防止用户的远程操作指令受到假冒攻击,以椭圆曲线加密和零知识证明为基础,实现移动终端对服务端的远程身份认证。实验结果表明,该系统能保障移动终端设备通信安全,防止假冒攻击。

移动终端;安全管理;可信平台模块;零知识证明;椭圆曲线;身份认证

1 概述

随着移动终端向着智能化方向的迈进,其所支持的功能越来越多,由于移动平台具有的开放性和灵活性,使手机等移动终端有了更广阔的用户群。然而,伴随着计算和存储资源的不断丰富,移动终端中存储信息的敏感程度不断增加,对移动终端的安全性也有了更高的要求[1]。对于个人用户,移动终端上可能存储了大量的个人隐私数据,比如照片、家庭电话、支付密码等;对于企业级用户,可能会存储企业的商业数据,例如企业销售人员和顾问所使用的移动终端,往往涉及销售经营数据和机密电子邮件等极为敏感的资料。如果移动终端保管不当,短信、相册、通讯录和邮箱等隐私可能会被无意看到或有意窃取。更糟糕的是如果移动终端丢失,不仅会造成隐私数据的泄漏,还可能导致企业关键数据丢失,造成极大的经济损失[2]。因此,如何能够对用户身份进行很好的识别,准确区分非法用户和合法用户,防止用户敏感信息的泄露,并追踪找回丢失的移动设备是移动终端面临的重要安全问题。

目前针对移动终端的安全措施比较薄弱,常见的是采用基于口令的用户身份识别和对设备中的数据简单地进行加密[3],口令认证和数据加解密过程主要由软件完成,虽然口令认证实现了移动设备对用户身份的识别,却没有考虑移动设备和SIM卡对彼此的身份识别,可能造成合法移动设备中的个人信息传递给非法SIM卡,或者将SIM卡中的个人信息递交给非法的移动终端[4]。同时,由于没有考虑移动设备各部件的安全可信性,如果终端的操作系统、软件、硬件或固件己染有病毒或己被恶意篡改,用户往往会在不知情的情况下输入口令信息,造成敏感信息泄露[5]。另外,在现有的安全措施中,传统口令和加密密钥一同存储于移动终端的SQLite数据库中,然而SQLite数据库缺乏有效的安全机制,一旦恶意攻击者获得访问数据库的权限即可盗取口令与密钥[6],安全性难以得到保证。因此,密钥、口令等敏感数据应当存储在非法用户无法访问,并难以获取的安全载体上,而且应提供措施保证系统参数、用户数据的完整性和机密性[7]。

同时,由于移动设备可能丢失,人们希望在不泄露敏感信息的基础上尽可能找回设备。针对这一需求,目前三星、小米等移动终端厂商为用户提供远程管理平台,允许用户远程擦除设备数据、远程定位遗失的设备并在地图上标出设备的位置等帮助用户找回设备,一定程度上保护了用户的隐私安全。然而这种通信缺乏身份认证机制,很容易被恶意攻击者截获并冒充远程管理平台对移动终端实行远程管理,势必造成严重危害。

本文将可信平台模块嵌入移动终端,通过可信计算的思想加固移动终端,对用户口令、设备、SIM卡进行绑定,保证了较高的安全性,实现移动终端对用户身份基于三因素的识别。同时,本文以椭圆曲线加密和零知识证明为基础,实现移动终端对服务端的身份认证。

2 相关技术

2.1 可信平台模块

可信平台模块(Trusted Platform Module,TPM)是一种可实现可信计算的安全模块,它能够实现对数据的加解密及安全存储,以及对环境度量信息的签名和报告,是数据存储和信息报告信任的初始点[7]。TPM的实质是一个物理可信的小型片上系统(System on Chip,SoC),提供了加解密运算、安全存储、密钥管理、完整性管理、远程证明等安全功能[8],因此作为一个能够抵制攻击的硬件安全模块,它既保证了内部数据的安全行和可靠性,又完成了身份认证和外部数据的加解密。

2.2 椭圆曲线加密

椭圆曲线密码体制(Elliptic Curve Cryptography, ECC)是在各种涉及有限域乘法群的公钥密码体制中,用有限域上椭圆曲线构成的群来类比有限域上的乘法群,从而获得类似的公钥密码体制[9]。它的安全性是基于求解椭圆曲线离散对数问题的困难性。ECC加密算法同RSA算法相比,抗攻击性更强,公私钥处理速度和密钥生成速度更快,并且占用存储空间更小。在相同安全强度的情况下ECC的密钥长度比RSA小很多[10]。因此ECC密码体制更适合计算量、存储量、处理速度有局限的移动终端。另外,通常在椭圆曲线密码体制中应用的有限域是大素数域F(p)和二进制域F(2n),考虑到移动终端的局限性,本文系统采用二进制域。

2.3 零知识证明

零知识证明指的是证明者能够在不提供任何有用的信息的情况下,使验证者能够确定某论断的正确性[11]。零知识证明实质上是一种协议,即2个或2个以上的参与者为完成某项特定的任务而采取的一系列步骤[12]。例如证明者与验证者通过通信信道连续进行信息问答,在不泄露任何有关秘密信息的前提下,向验证者证明自己知道秘密,即使攻击者窃听通信信道,他也只可能获得某一次或多次的问题或者答案[13]。由于认证过程是随机的,因此攻击者就难以通过获得的信息进行欺骗。

3 系统总体架构

移动终端安全管理系统(Mobile Terminal Security Management System,MTSMS)采用C/S架构,借助通信运营商提供的GPRS数据连接业务或移动WiFi网络,实现本地用户身份识别和远程安全管理,解决移动设备丢失后设备安全和敏感数据泄露的问题。在该系统中,用户使用客户端注册移动终端后,便可以使用注册的账号登录服务端Web平台远程操作已注册的移动终端。当服务端向移动终端推送用户的远程指令前,移动终端需要对服务端进行身份认证,确保通信安全。当身份认证成功后,移动终端执行相应的指令操作,并返回执行结果给服务端。系统总体架构如图1所示。

图1 移动终端安全管理系统总体架构

客户端主要功能模块包括注册模块、身份识别模块、远程身份认证模块和安全业务模块。其中,安全业务模块实现了设备定位、设备锁定、数据擦除、数据加解密等功能。客户端的主要设计思想是通过在移动终端上嵌入一个可信平台模块来保证现有终端的安全性,其主要手段是进行身份识别、远程身份认证以及使用加密算法对密钥进行存储保护和使用完整性度量进行完整性保护。可信平台模块在移动终端启动和运行过程中,对加载的软件、硬件和固件等进行有序的完整性度量[14],若遭到恶意篡改立即调用锁定模块锁定移动终端,若完整性度量正常,提示用户输入口令,在可信边界内完成基于口令、设备和SIM卡三因素的用户身份识别。在用户使用加解密模块对敏感信息进行加密时,可信平台模块还能够利用随机数生成引擎生成随机数用作对称密钥种子,并采用物理保护的方式将最后生成的对称密钥存储于可信模块内部,这些受保护的数据必须通过相应授权数据的验证才能被访问,防止被恶意用户窃取。

服务端基于J2EE架构,用户登录服务端Web平台,实现对已注册移动终端的远程操作,防止敏感信息泄露,并尽可能找回丢失的移动设备。服务端Web平台主要功能模块包括远程身份认证模块、远程管理模块、基础通信模块等。远程身份认证模块负责在推送用户的远程操作指令前向移动终端证明身份,防止假冒攻击。远程管理模块负责生成远程定位、远程锁定、远程擦除、远程加解密等远程操作指令,然后通过基础通信模块将生成的远程操作指令推送到移动终端。

4 系统设计与实现

4.1 客户端设计与实现

客户端采用MVC模式开发,将数据表现、业务逻辑和数据访问进行分离,可降低系统各个功能模块的耦合度。客户端界面使用Fragment进行设计,能够适应各种不同的屏幕大小,同时ActivityManager类对用户界面提供了支持,能够带来更好的用户体验。客户端主要包括注册模块、身份识别模块、远程身份认证模块和安全业务模块。

4.1.1 注册模块

用户注册移动终端时首先需要将移动终端通过网络连接服务器,然后用户在客户端注册界面输入账号ID、密码PW,当用户确认输入时注册模块通过调用TelephonyManager类中的getSubscriberId()方法获取当前移动终端SIM卡的IMSI,接着把账号ID、密码PW、IMSI发送给 TPM。TPM中的ECC引擎将产生公私钥对(PKU,SKU),接着生成身份令牌Y=EPKU(ID,PW,IMSI),然后把PKU和身份令牌Y发送给SIM卡存储,并把注册信息Z= (PKU,ID,PW)通过基础通信模块发送给服务端数据库存储,TPM中则存储私钥SKU以及平台各部件的完整性度量值。移动终端的注册过程如图2所示。

图2 移动终端注册过程

身份识别模块以可信平台模块为基础,基于口令、设备和SIM卡三因素实现了对用户的身份识别,具体工作流程如图3所示,其中,H(x)和Sy(x)分别表示x的哈希值和y对x的签名。

基于口令、设备和SIM卡的本地身份识别具体如下:

(1)TPM可信启动后,SIM卡通过Naptune基带处理器将平台验证请求Q1、随机数r1、SIM卡标识IMSI及哈希值H1发送给 TPM:H1=H(Q1,r1,IMSI)。

(2)TPM收到请求后,重构H1验证数据的完整性,保存当前r1和IMSI,然后启动完整性度量机制,对平台内的各部件进行完整性度量,如果度量失败向SIM卡发送度量结果D并返回Measure_Fail命令到锁定模块,锁定模块将锁定移动终端。如果各部件可信,TPM向SIM卡发送度量结果D、身份令牌请求Q2、随机数r1及签名S1:S1=SSKU(D,Q2,r1)。

(3)SIM卡用其存储的TPM的公钥PKU验证签名S1,并验证r1与最初发送给TPM的随机数是否一致,若验证通过,SIM卡将其存储的身份令牌Y返回给TPM。

(4)用户通过系统界面输入注册的账户ID和密码PW,TPM在可信边界内用PKU加密接收的ID,PW,IMSI并同身份令牌Y比对,若一致,则表示身份验证通过,用户可以正常使用移动终端。若不一致,则返回Verify_Fail命令到锁定模块,自动锁定移动终端,防止非法访问导致的敏感信息泄露。

图3 基于口令、设备和SIM卡的本地身份识别

4.1.3 远程身份认证模块

张小波,女,现年13岁,身高1.59米,齐耳短发,圆脸,身穿蓝白相间的校服,于两年前的一天中午不知去向。有知其下落者或提供线索者,请与我联系,我有重谢,酬金3.5万元。

远程身份认证模块负责在接收Web平台推送的远程操作指令前对服务端进行身份验证,防止用户的远程操作指令被假冒。具体的工作流程如图4所示,其中,r2,r3为二进制域F(2n)中的随机数;P表示椭圆曲线的基点;PKS和SKS分别表示服务端的公私钥,并且满足PKS=P·SKS。

(1)服务端向移动终端推送远程操作指令前,先推送指令预备通知。当客户端基础通信模块接收到服务端的推送指令预备通知,则向服务端发出身份认证请求Q3和身份签名S2:S2=SSKU(Q3)。

(2)服务端用PKU验证移动终端身份签名S2,若身份验证通过,则在二进制域F(2n)中随机选取r2,计算V并发送给移动终端:V=P·r2。

(3)移动终端在二进制域F(2n)中随机选取r3发送给服务端,服务端接收到r3后计算A并发送给移动终端:A=r3·SKS+r2。

(4)移动终端验证A·P是否等于r3·PKS+V,若相等,则接收服务端推送的远程操作指令并解析执行,若不相等,则拒绝接收服务端推送的指令,最后向服务端返回身份验证结果。

图4 远程身份认证流程

4.1.4 辅助功能模块

客户端的安全业务模块主要包括指令解析、设备定位、数据加解密、设备锁定、数据擦除和基础通信功能。另外,这些功能的实现都需在 Android Manifest.xml文件中加入相应数据的读写等权限声明。

(1)指令解析功能的实现基于Android broadcast机制,该功能模块继承BroadcastReceiver类并重写其中的onReceive()函数,当服务端推送的用户远程指令到达客户端后,对远程指令进行解析。

(2)设备定位功能的实现是基于百度地图提供的API[15],调用Location类中getLongitude()方法和getLatitude()方法可以分别获取移动终端当前的经纬度,然后通过基础通信功能模块把获得的经纬度发送给服务端进行定位显示。

(3)数据加解密功能负责对通讯录、通话记录、相册等隐私数据进行加解密。数据加密时,数据加解密功能模块把可信平台模块中随机数生成引擎生成的随机数用作对称密钥种子,生成对称密钥并存储于可信模块内部,接着使用生成的对称密钥加密数据。解密时,读取存储于可信模块内部的对称密钥解密数据。

(4)设备锁定功能负责锁定移动终端直到用户输入的账号和密码通过身份识别。该功能模块主要设计思路是重写Activity中的onBackPressed()方法和onAttachedToWindow()方法屏蔽返回键和Home键,全屏显示自定义的锁定界面,只有输入正确的账号和密码才能访问移动终端。

(5)数据擦除功能负责擦除通信录、通话记录、相册等隐私数据。以擦除通信录中联系人为例,首先通过ContentResolver类的Query()方法获取联系人信息,然后通过ContentResolver类的Delete()方法执行删除。

(6)基础通信功能的实现是基于Java的开源XMPP协议包 asmack[16],利用 asmack中提供的XMPPConnection类与服务端建立持久连接,通过这个连接接收服务端推送的通知。另外,该功能模块通过HTTP协议,向服务端传递数据。

4.2 服务端设计与实现

服务端Web平台的实现基于J2EE架构,采用MySQL作为后台数据库。系统主要包括远程功能模块、远程身份认证模块以及基础通信模块三大模块。

(1)远程功能模块实现用户对移动终端的远程安全管理功能。用户使用在客户端注册时使用的账号ID、密码PW登录服务端Web平台,能够通过该平台向已注册的移动终端发送远程操作指令,包括远程锁定、远程定位、远程数据擦除、远程数据加解密等。系统采用三级指令格式:第一级指令表示远程操作的类型;第二级表示操作的对象;第三级表示操作的范围。每级指令间用“|”间隔(即:一级|二级|三级),例如“DEL|CONTACT|ALL”表示擦除所有联系人。各级指令含义如表1所示。

表1 各级指令含义

(2)远程身份认证模块负责实现身份认证,由于远程操作需要服务端和移动终端建立连接并推送远程操作指令,如果用户的远程操作指令被假冒将造成严重的后果,因此每次服务端推送远程指令前需要向移动终端证明身份。

(3)基础通信模块实时监听服务端端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,发送推送通知。另外,负责接收移动终端通过HTTP协议发送的数据。

5 实验结果与分析

客户端和服务端均采用 Java语言并以MyEclipse10为开发工具。客户端采用Android 3.0版本的SDK,测试平台为Android手机,搭载主频为1.5 GHz,高通MSM8260双核处理器,Android 3.1操作系统。可信平台模块采用软件与硬件相结合的方式,移动终端通过USB OTG模式,外接可信芯片实现可信平台模块[17]。服务端为部署了Tomcat的Web服务器。测试网络为无线路由器建立的局域网络。

在运行客户端后,进入系统主界面,若是首次使用该系统,需要用户先对移动终端进行注册,如图5(a)、图5(b)所示。

图5 移动终端注册

当移动终端启动或者SIM卡热插拔时,用户需要输入注册的账号和密码进行身份识别,如图6所示。另外,用户可以登录服务端Web平台对已注册的移动终端进行远程安全管理,如设备锁定、数据擦除、数据加解密等,如图7所示。同时,用户可以通过服务端Web平台对丢失的移动设备进行远程定位,尽可能找回移动设备,防止隐私数据泄露,如图8所示。

图6 身份识别

图7 服务端Web平台

图8 移动设备远程定位

6 结束语

本文提出基于Android的移动终端安全管理系统,实现了用户对移动终端的远程安全管理。系统采用C/S架构,包括客户端和服务端。客户端基于可信平台模块实现对用户身份的三因素识别;服务端能够帮助用户对移动终端进行远程管理,保障了移动终端设备安全和数据安全。另外,以椭圆曲线加密和零知识证明为基础,实现了移动终端对服务端的身份认证,防止用户远程操作指令被假冒。实验结果表明,该系统能保障移动终端设备通信安全。下一步研究工作的重点是通过短信实现用户对移动终端的远程操作。

[1] 杨广亮,龚晓锐,姚 刚.一个面向Android的隐私泄露检测系统[J].计算机工程,2012,38(23):1-6.

[2] 凡里伟.Android平台手机防盗系统的设计与实现[D].大连:大连理工大学,2012.

[3] Luo J,Kang M.Application Lockbox for Mobile Device Security[C]//Proceedings of the 11th International Conference on Information Technology.Las Vegas, USA:IEEE Press,2011:336-341.

[4] 潘军莉.可信移动终端的用户身份认证方案的研究[D].郑州:解放军信息工程大学,2008.

[5] 方明伟.基于可信计算的移动智能终端安全技术研究[D].武汉:华中科技大学,2012.

[6] 吴一民,何嘉荣.基于远程服务的 Android平台下SQLite数据库安全机制的研究与实现[J].广东工业大学学报,2013,30(3):49-52.

[7] 曹基宏.基于可信计算的安全移动终端研究与设计[D].长沙:湖南大学,2011.

[8] 宗 涛.基于可信计算的结构性安全模型设计与实现[J].计算机工程,2012,38(20):89-92.

[9] 祝跃飞,张亚娟.椭圆曲线公钥密码导引[M].北京:科学出版社,2006.

[10] 侯整风,李 岚.椭圆曲线密码系统(ECC)整体算法设计及优化研究[J].电子学报,2004,32(11): 1904-1906.

[11] 张引兵.零知识证明及其应用研究[D].淮北:淮北师范大学,2011.

[12] 李兴健.T-DAA协议在可信平台中的应用[D].沈阳:东北大学,2009.

[13] 王笑梅,张秋剑.基于椭圆曲线零知识的RFID双向身份认证[J].计算机工程与应用,2013,49(15):97-100.

[14] 聂 静.基于可信移动平台的DRM系统研究[D].沈阳:东北大学,2009.

[15] Baidu.Development Guide(Version4.1)[EB/OL].(2013-08-26).http://api.map.baidu.com/lbsapi/cloud/geosdkandroid-developv4.1.htm.

[16] Asmack[EB/OL].(2010-03-17).http://code.google.com/p/asmack/.

[17] 刘蔚然,刘建伟.Android操作系统可信计算平台架构[J].武汉大学学报:理学版,2013,59(2):159-164.

编辑 陆燕菲

Mobile Terminal Security Management System Based on Android

FU Jingyi1,2,MA Zhaofeng1,2,HUANG Qinlong1,2,YANG Yixian1

(1.Information Security Center,Beijing University of Posts and Telecommunications,Beijing 100876,China;

2.Beijing National Security Science and Technology Co.,Ltd.,Beijing 100876,China)

To solve the problems of equipment safety and sensitive data leakage in mobile terminal,this paper proposes a Mobile Terminal Security Management System(MTSMS)based on Android,which allows the users to remotely manage the mobile terminal.MTSMS adopts C/S architecture,the client-side of MTSMS permits users to register mobile terminal on the server,and also achieves local user identification of three factors based on Trusted Platform Module (TMP)in mobile terminal.The server-side of MTSMS permits users to login Web platform to remotely encrypt and decrypt data in registered mobile terminal,locate and lock the registered mobile terminal.Further,to prevent users' remote order from being faked,MTSMS achieves server-side authentication based on elliptic curve cryptography and zero knowledge proof.Experimental result shows that the system can ensure the security of mobile terminal devices,and prevent the fake of remote user instructions.

mobile terminal;security management;Trusted Platform Module(TPM);zero knowledge proof;elliptic curve;identity authentication

1000-3428(2014)11-0077-06

A

TP309

10.3969/j.issn.1000-3428.2014.11.015

国家自然科学基金资助项目(61272519)。

傅镜艺(1990-),女,硕士研究生,主研方向:移动通信安全,云计算;马兆丰,讲师、博士;黄勤龙,博士研究生;杨义先,教授。

2014-02-27

2014-04-07E-mail:fujingyi@bupt.edu.cn

中文引用格式:傅镜艺,马兆丰,黄勤龙,等.基于Android的移动终端安全管理系统[J].计算机工程,2014,40(11): 77-82.

英文引用格式:Fu Jingyi,Ma Zhaofeng,Huang Qinlong,et al.Mobile Terminal Security Management System Based on Android[J].Computer Engineering,2014,40(11):77-82.

猜你喜欢

SIM卡服务端指令
SIM卡防盗很关键 小喻教你如何给它“上保险”
铁路GSM-R SIM卡读写次数测试方法研究
SIM卡的“减肥史”
ARINC661显控指令快速验证方法
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
杀毒软件中指令虚拟机的脆弱性分析
一种基于滑窗的余度指令判别算法
摸清黑客套路防范木马侵入