基于Android平台的手机安全通讯录的设计与实现
2014-07-20赵彦施洋
赵彦,施洋
(江苏信息职业技术学院物联网工程系,江苏无锡214000)
基于Android平台的手机安全通讯录的设计与实现
赵彦,施洋
(江苏信息职业技术学院物联网工程系,江苏无锡214000)
为了充分保障手机通讯录信息的安全性,并充分利用智能手机原有资源,提出一种基于Android平台的手机安全通讯录系统.该系统将原有联系人、通话记录和短信息三大功能合为一体,有效利用Android原生数据库资源,使用Java多线程技术实现对原生数据库信息的加密解密处理、手机丢失后的智能化GPS定位、通讯录等手机存储信息的智能化转储与删除.实验结果表明,该手机安全通讯录系统能充分保证手机用户的信息安全.
Android;安全通讯录;Android原生数据库;智能化保护;Java多线程技术
据英国调查咨询公司Wireless Expertise的最新预计,截止到2013年,全球智能手机用户数达到16亿[1-2].手机已经和人们的生活密不可分,手机里存储的通讯录、短信息、通话记录、照片和文件,保存了用户至关重要的信息和隐私.当前市场上的普通智能手机不具备信息保护功能,一旦手机丢失,将给用户带来灾难性的损失,因此用户希望手机具备以下保护性措施,防止灾难事件发生[3]:
(1)能够通过其他手机快速定位到自己的手机,或者手机本身能够发送信息报告自己的位置.
(2)一旦证实手机无法找回,用户可以把手机中的通信录、短信息、甚至文件、图片信息找回,或者删除手机上的重要信息,以免泄露自己的隐私.
(3)具备手机自动报警功能.
针对这些需求,课题组研发了基于Android平台的手机安全通讯录,该系统将原有联系人、通话记录、短信息三大功能合为一体,有效利用Android原生数据库资源,使用Java多线程技术实现对原生数据库信息的加密解密处理,实现手机丢失后的智能化GPS定位,通讯录等信息的智能化转储和删除.
1 Android平台手机安全通讯录的系统架构
基于Android平台的手机安全通讯录涵盖用户登录模块、密码设置模块、备用设置模块、定位设置模块、鸣叫设置模块、系统设置模块、帮助模块和通讯录模块,共计8大部分组成,其中通讯录模块又包含通话记录管理、联系人管理、短信息管理和设置管理4个部分.
(1)通话记录管理实现未接来电、已拨电话、已接电话、全部通话记录、按联系人信息快速检索等功能,同时实现拨号和按通话记录拨打电话的功能.
(2)联系人管理不仅实现了显示联系人信息,按字典序、按姓名、全文、密文搜索联系人,对单个联系人实现打电话、发短信、查看联系人详细信息、加密解密单个联系人和删除联系人的功能,还可以创建群组,并按群组检索联系人.
(3)短信息管理实现了检索全部短信息、查看回复短信息、群发短信息、新建短信息和删除短信息等功能.
(4)设置管理实现了手机账户管理,该账户与云端账户互通可以实现联系人信息上传云端,同时涵盖联系人数据全部加密和解密的功能.
在Android智能手机上,使用SQLite3.8.1数据库存储系统所有数据信息.该系统的前端设置和安全保护部分使用自建数据库phone.db,存储系统设置信息和用户信息.通讯录信息存放于Android原生数据库中,因此本系统使用的联系人、通话记录、短信息等信息与手机原生信息相同,即便使用备份、导入导出功能,恢复到另外一部手机上仍然可以使用;即使本系统被卸载,通讯录信息依然可以使用原生画面查看,不会导致信息丢失,这是本系统最大的特色.Android平台手机安全通讯录的系统架构如图1所示.
图1 基于Android平台手机安全通讯录的系统架构
2 手机安全通讯录系统的设计与实现
2.1 界面设计紧凑、精致
使用Gallery技术将密码设置、备用设置、定位设置、鸣叫设置、系统设置、帮助设置和通讯录七大部分整合在一起,实现动态界面架构.主界面见图2.
使用Tabhost与Inflater技术将拨号、联系人、信息、设置画面合为一体[4].通讯录主题界面见图3.
2.2 设计具有易伸缩性,能减少内存泄露、高效使用内存的界面
本系统采用MVC技术完成开发,方便随时修改已有界面、动态添加或修改界面的数量.
图2 主界面设计
图3 通讯录主题界面设计
Android应用软件开发过程中内存泄露的问题,源于对上下文对象Context保持引用.解决的主要方法如下[4].
(1)如果要保持对一个Activity的Context的引用的话,应对这个应用的生命周期进行管理,例如在onDestroy中释放该引用.
(2)如果使用应用系统的Context,而不是使用Activity的Context,那么获得应用程序Context的具体方法是Context.getApplicationContext()或者Activity.getApplication().
(3)如果简单应用了Activity的上下文的话,要使用WeakReference.
2.3 数据库的访问、持久化和管理技术
在Android 4.2.2版本的手机产品中,原生数据库有几十个,每个数据库又有多个数据表.系统的数据存储定位在Android原生数据库[1,4].通过越狱,对系统原生数据库中contacts2、telephony、mmssms三大系统数据库中的近百张表进行研究.了解联系人、通话记录、短信息的具体存储方式.由于具有在十几张表之间完成数据加密、解密的功能,所以使用原生数据库的技术难度远远高于用户自建数据库.
为了保证加密、解密及其他安全功能的实现,构建辅助系统的自建数据库[5-6]:phone.db.本数据库在系统安装包内部,随着系统安装进行附加,系统卸载而卸载.phone.db数据库中存放了两个表,一个为PhoneTbl,存放安全设置的相关信息;另一个为desContacts,存放具体加密联系人的id号码.
不同品牌和Android版本的智能手机在原生数据库的结构中略微存在差异,经过在30多种品牌和不同Android版本间进行调整和测试,该系统适用于Android 2.0至Android 4.2.2版本间的任何款手机.主流手机品牌的测试结果见表1所示.
表1 系统可用性测试
2.4 基于“生产者-消费者”模式Java多线程技术[2,7]的信息整体加密、解密处理机制
为了较好地保护联系人信息,该系统提供了全部联系人信息的加密、解密功能,同时提供单个联系人信息加密、解密功能以及对加密联系人信息的智能化检索功能,包括姓名检索和全文检索.
为了充分提高整体加密、解密的效率,在全部联系人加密、解密操作时,使用了基于线程的“生产者-消费者”模式Java多线程技术实现.
使用基于线程的“生产者-消费者”模式Java多线程技术完成数据加密的流程图如图4所示.
图4 使用基于线程的“生产者-消费者”模式Java多线程技术完成数据加密
该算法的具体实现步骤如下.以整体加密为例进行讲解,解密的步骤与加密步骤呈逆操作.
第一步:初始化操作
(1)设置DES加密秘钥,该秘钥是用户登录的登录密码;
(2)构建共享阻塞队列;
(3)初始化资源系统资源;
第二步:启动线程,开始加密
(4)启动三个线程:读取线程、DES加密线程、更新线程;
(5)读取线程顺次读取联系人信息,逐个将联系人信息放入未加密队列;
(6)DES加密线程,从未加密队列中读取信息,完成加密操作,将加密后的联系人信息放入已加密队列中,供更新线程读取;
(7)更新线程从已加密队列中读取加密后的信息,更新加密表,和联系人列表;
第三步:终止线程,进行性能测试
(8)当读取线程无信息可读,终止读取线程;未加密队列信息为空,终止DES加密线程;当已加密队列为空,终止更新线程.完成加密流程,计算出加密总数及性能.
该算法具有四大优点.
(1)手机的内存容量毕竟有限,当对海量数据加密,多线程操作不存在内存溢出问题;
(2)加密、解密过程与用户其他操作互斥;
(3)读取、加密、更新三个线程,加上系统主线程共四个线程,经测试该算法在四核手机上性能最优.测试结果如表1和图5所示;
(4)多线程模式的执行效率远远高于单线程和非线程模式.
图5给出了在联系人数量相同的情况下,该算法与单线程、非线程模式在单核、双核和四核手机上的测试结果,结果表明该算法更适用于四核Android智能手机.
图5 基于“生产者-消费者”模式Java多线程加密、解密算法测试
2.5 其他安全保护功能的实现[3-4]
系统选用了JMail技术,向用户指定的邮箱发送联系人信息的备份,并将手机的当前位置信息发送到备份邮箱,达到保护手机、保护联系人信息和用户相关资料的目的.
系统使用了GPS技术保证手机安全性.主要体现在以下两点.
(1)获得当前的位置信息,一旦手机丢失,手机的GPS定位信息以及具体经纬度等地理位置信息,将传递给备用手机号码和备用邮箱.
(2)地图导航,确定当前手机的地理位置.
系统使用了Android服务(Service)技术,保护手机信息安全.手机一旦丢失,用户可以通过发送远程通信命令,备份通信录、短信息、照片等任意类型的用户信息,按照备份邮箱和备份手机号码,上传给机主;同时用户还可以通过发送远程命令,删除通信录、短信、照片等用户信息,保证个人信息不被泄露.整套服务如图6所示.例如手机用户发送“JSIT001+密码”到丢失手机,实现远程关机;发送“JSIT005+密码”,实现远程短信息删除;发送“JSIT004+密码”,实现图片资料删除.通过这些技术能够充分保障手机用户的信息安全.
即使手机处于关闭状态,也可以发送“JSIT000+密码”命令,远程开启手机.之后可以进行其他控制操作,例如发送“JSIT006+密码”将手机存储的联系人信息以邮件附件的形式发送到用户设置的备份邮箱中.
图6 系统保护模块功能结构图
3 手机安全通讯录系统使用效果演示
由于系统功能较多,测试画面累计达到300余张,此处仅给出最具特色的系统运行画面.图7(a)给出了联系人整体加密后的画面;图7(b)给出了全球定位画面;图7(c)给出了手机丢失后返回手机地理位置信息的画面;图7(d)给出了发送“JSIT006+密码”到手机,邮件获取手机存储联系人信息的画面.
图7 系统使用效果演示
4 总结
基于Android平台的手机安全通讯录,于2013年6月开发完成,已发布到“安卓市场”,2013年8月在全国第二届“软件杯”大赛总决赛中,此系统获得全国二等奖.该系统已成功申报软件著作权.后续任务将对安全保护功能进行深入性扩展,力争实现更具特色的手机安全通讯录系统.
[1]Mednieks Z,Dornin L,Meike G B,etal.Programming android[M]. O'ReillyMedia,Inc,2011.
[2]Goetz B,Peierls T,Bloch J,etal.Java concurrency in practice[M]. London:Pearson Education,Inc,2012.
[3]Gavalas D,Economou D.Developmentplatforms formobileapplications:Statusand trends[J].IEEESoftware,2011,28(1):77-86.
[4]王家林.Android商业软件开发全程实战:以手机守护神为例[M].北京:电子工业出版社,2012.
[5]彭瑾玥,蒋东兴,张新钰,等.基于移动平台的知识管理系统的设计与实现[J].武汉大学学报:理学版,2012(10):339-343.
[6]蓝坤,张跃.基于Android的心电监护软件系统设计与实现[J].计算机工程与设计,2013(8):2951-2956.
[7]赵彦,顾晓燕,郭力子.Java EE框架技术进阶式教程[M].北京:清华大学出版社,2011.
【编校:王露】
Design and Im plementation ofMobile Phone Security Contacts Based on Android Platform
ZHAOYan,SHIYang
(Internet ofThings Engineering Department,Jiangsu Information Vocational Technology College,Wuxi,Jiangsu 214000, China)
In order to fully guarantee the security ofmobile phone contacts information,andmake full use ofexisting resourcesof intelligentmobile phone,a system ofmobile phone security contactsbased on Android platform waspresented. The system will integrate the original three functions of contacts,phone records and shortmessage into one,realizing the effective usage of native Android database;the system employs Javamulti-thread technology to achieve encryption and decryption processingof thenative Android database,intelligentGPSpositioningof themobile phonewhen it is lost,intelligentdumping and deletion ofmobile phone stored information.The experimental results show that,this securitymobile phone contacts system can fully guarantee themobile phone users'information security.
Android;security contacts;native Android database;intelligentprotection;Javamulti-thread technology
TP319;TN929.5
A
1671-5365(2014)12-0073-04
2014-03-28修回:2014-05-19
国家自然科学基金(60974016);江苏省自然科学基金(BK20131097);江苏省产学研联合创新资金前瞻性联合研究项目(BY2013017);2013年江苏省大学生实践创新训练计划项目(201313108012Y);江苏省现代教育技术研究2013年基金项目(2013-R-26413);江苏省教育科学“十二五”规划基金项目(B-a/2013/03/007)
赵彦(1981-),女,讲师/工程师,硕士,研究方向为计算机职业教育、软件技术、计算机网络、数据库
时间:2014-06-27 16:33
http://www.cnki.net/kcms/detail/51.1630.Z.20140627.1633.005.htm l