Android是Google 开发的基于Linux平台的开源手机操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,被誉为第一个完整、开放而且免费的移动平台。因3G 技术的不断发展和Android 平台的优势,Android 移动应用开发成为目前热门的技术之一,基于Android 平台的智能手机数量也越来越多。由于Android手机的便利性和实用性,很多人会把银行卡密码、电话密码、网络支付密码、重要日程提醒等个人信息和一些隐私数据存放到手机里。如果手机被盗,不仅短信、通讯录、照片等隐私泄漏,还可能导致亲戚朋友上当受骗,会对人们的工作和生活带来很大的影响。
为了解决这一问题,本文提出了在手机被盗后,通过防盗追踪模块来监测手机SIM卡是否被更换,从而确定自己的手机是否被盗。并利用即时通信模块向被盗手机发送远程控制指令,来保护个人隐私并追踪找回被盗手机。在手机锁定后通过屏蔽手机的按键、拦截电话和短信以及关闭手机的USB调试连接,使手机不能使用,除非进行解锁。该系统将防盗追踪、即时通信和远程控制等模块有机地结合在一起,具有良好的研究价值和应用前景。
1 系统总体设计
手机防盗系统是以手机终端为载体,借助通信运营商提供的GPRS数据连接业务或者移动WiFi网络以及短信业务,实现远程控制。在实现远程控制之前,用户首先需要通过GPRS数据连接或者移动WiFi网络,根据配置好的网络环境启动并运行服务器,然后再根据启动服务器的IP地址、端口号,以及服务器上配置好的用户名和密码,激活安装在Android终端上的客户端软件。在手机客户端软件激活之后,云端的服务器便跟手机客户端之间建立了可靠的通信连接;连接建立成功后,用户便可以按照手机云平台的通信协议实现服务器跟客户端之间的数据通信。手机客户端将需要上传的数据或操作生成的业务数据,封装成固定的Java Bean数据包的格式发送到云端的服务器,或者是云端服务器将网页侧下发的命令字段封装成Java Bean数据包的形式,再下发给手机终端。手机终端将接收到的数据包进行解析,并同时完成对手机相应的命令操作,然后返回处理的结果。
通过对整个系统的分析,从系统的总体架构入手,对各个功能模块进行了划分,并明确了系统各模块之间的联系。通过分析C/S模式和B/S模式各自的特点,结合系统的实际需要,采用了C/S模式和B/S模式相结合的架构,用户不仅能通过安全号码来控制被盗的手机,在紧急情况下,还可登录Web端的手机防盗管理系统来远程操控被盗的手机。第一时间对被盗的手机进行全方位的监听,使小偷不能对手机进行任何操作,既保护了隐私数据,又给找回手机争取了宝贵的时间。还可以通过GPS定位来获取被盗手机当前所在的位置,尽快找回被盗的手机。系统总体架构如图1所示。
图1 系统总体架构
图1说明了整个系统的架构设计,在手机被盗之后,用户可以通过安全号码手机控制被盗的手机,还可以通过PC的浏览器登录到Web端的手机防盗管理系统,通过即时通信模块向被盗手机发送远程控制指令,从而执行手机报警、数据删除、锁定手机、GPS定位等功能。当被盗手机接收到这些指令,也会进行相应的处理,完成后将处理结果通过即时通信模块发送到Web端并显示。这两种控制方式都是在后台秘密地进行,小偷不会有任何察觉,从而更安全可靠地追踪手机。
2 防盗追踪模块的设计与实现
防盗追踪模块通过监听手机的开机广播,实时监测手机中插入的SIM卡是否合法,如果合法,不作任何处理;否则,将获取新卡的SIM卡卡号,并将该SIM卡卡号作为短信的内容发送至用户指定安全号码的手机,从而使用户获取被盗手机的SIM卡号码,对手机进行远程控制。与此同时,将开启转发被盗手机新短信的服务。下面说明该模块的具体功能。防盗追踪模块处理流程如图2 所示。
图2 防盗追踪模块处理流程
① 设置、修改合法的SIM卡卡号:在安装完程序第一次启动的时候,系统会自动读取当前手机的SIM卡卡号,并将该卡号作为合法的SIM卡卡号写入自动生成的配置文件中。由于每张SIM卡卡号(即IMSI序列号)是唯一的,因此该卡号将作为判断以后手机中插入的SIM卡是否合法的主要依据。此外还允许用户随时修改该SIM卡序列号。
② 获取新SIM卡号码和IMSI序列号:用户的手机在丢失或被盗以后,手机SIM卡往往会被更换,在手机重新启动时,系统会自动获取当前SIM卡的卡号,然后与之前配置文件中保存的卡号对比,如果不一致,系统会将该SIM卡卡号作为短信内容向用户指定的安全号码发送通知短信,让用户可以通过安全号码手机对被盗手机进行远程操作,尽快找回被盗手机。
③ 开启转发新短信的服务:后台转发新短信的服务一直在运行,每一次用户重新开机的时候,就会将配置文件中的SIM卡卡号跟当前手机中的SIM卡卡号进行对比,如果结果不一致,就会启动该服务,将用户手机最新收发的短信记录按照一定的格式自动发送至用户指定的安全号码手机。
3 即时通信模块的设计与实现
即时通信模块为Web端手机防盗管理系统和手机防盗系统客户端提供了实时通信的渠道,让用户在登录Web端手机防盗管理系统之后,可以实时地对被盗手机进行远程控制,保护用户隐私,并追踪找回被盗手机。即时通信模块包括服务器和客户端两部分,通过在服务器与客户端之间建立网络连接,从而实现即时通信。
即时通信模块的处理流程如图3 所示。
图3 即时通信模块的处理流程图
3.1 服务器端的设计与实现
本系统采用开源的Openmobster手机云平台来搭建即时通信服务器,并根据系统的需要进行了改进和优化。该平台是一个向本地手机程序提供“云”服务的平台,它内嵌了一个基于J2EE开放源代码的应用服务器JBoss。在JBoss服务器启动后,可以通过PC的浏览器启动控制台。JBoss的控制台界面简陋,和其他商业化服务器的控制台差别很大,不够直观。因此考虑将控制台改造成网页的形式,这样既可以方便用户操作,界面也更直观。
为了该平台的服务器跟手机终端之间实现通信,需要在JBoss控制台程序中新增一条命令,相应地在服务器端也要新增处理这个命令的代码,用控制台发命令,让服务器发Push消息给手机上的Service。服务器端的总体设计流程主要分为以下几步:
① 对控制台代码进行分析,找出控制台的命令与类的对应关系。
② 因此新增了一个FindCommand类,并且修改了配置文件,使控制台可以运行新命令。
③ 在服务器端新增了一个对应控制台新命令的findPhoneCommand类,继承自MobileServiceBean,放在服务器端处理新增的命令。
④ 在服务器端建立一条Push通道。findPhoneCommand类在收到命令时就会通过这个Push通道向手机上的Service发Push消息。
⑤ 将控制台改造成网页的形式来发命令。
3.2 客户端的设计与实现
系统客户端包括手机即时通信客户端和Web即时通信客户端。
Web即时通信客户端基于JavaEE,利用Openmobster云平台的Jboss服务器对JSP网页文件进行热部署,通过登录到即时通信服务器端与手机客户端进行通信。
移动互联网中,Android智能终端通过WiFi或GPRS连接到互联网。手机即时通信客户端通过激活手机设备连接到服务器,然后以Java Bean的传输协议形式,对协议进行解析并执行相应的命令操作。最后再将处理的结果封装成Bean的对象,在客户端与服务器之间进行传输。
4 远程控制模块的设计与实现
4.1 Web远程控制模块的设计与实现
Web远程控制模块在C/S模式的基础上,增加了B/S模式,旨在增强对被盗手机的控制。当手机丢失,安全号码手机不能及时用来控制被盗手机,这时通过Web网页来进行远程控制,它能在第一时间锁定手机,保护手机上的隐私数据不被窃取,为尽快找回手机提供帮助。Web控制模块实现流程如下:
① 用户通过浏览器打开网页,选择需要下发的命令,然后输入用户名和密码,点击“确定”后调用JSP代码。JSP代码将网页请求封装的各功能选项字段取出,封装进一个数据对象中。
② 在服务器端定义的用于下发的 Channel会定期调用相关接口,对上面封装的数据对象进行检查,一旦发现有新插入的数据,会通过对应的接口取出该数据,将其封装到Bean对象中,通过Openmobster推送给手机终端。
③ 终端后台模块中的服务同样建立了对应云端Channel的处理。一旦收到Channel的下发通知,通过发送Intent的方式启动一个Activity,这个Activity在启动过程中可以通过Bean的相关接口读出对应用户名和通道下发的Bean对象,通过Bean的一些方法解析并获取下发通知中的各功能项数据字段,调用Android平台提供的各接口,完成对手机的远程控制。
④ 将远程控制处理的结果封装到一个新的Bean对象里,然后注册一个用于上传的Channel,最终将结果上传到服务器的数据库并显示在网页界面上。
Web远程控制模块的处理流程如图4所示。
图4 Web远程控制模块的处理流程
4.2 短信远程控制模块的设计与实现
短信控制模块的设计主要是基于监听手机短信数据库的变化,从而获取短信并判断短信的类型。如果是特殊格式的指令短信,则首先将手机调为静音模式并关闭系统的消息通知,然后再根据指令进行具体的操作。待操作完成以后,回复短信发件人告知指令执行完毕,删除此条短信并将手机恢复到之前的情景模式;否则,不作任何处理,进入普通短信的系统处理流程。
短信控制模块的处理流程如图5所示。
图5 短信控制模块的处理流程图
5 实现结果
系统采用了C/S模式和B/S模式相结合的架构来实现,服务器与客户端通过Socket 进行网络通信。在服务器端使用了Openmobster手机云平台,该平台的底层支持功能强大,为系统的通信连接,即数据的上传与下发,提供了良好的保障。客户端采用Android手机平台,由于Android提供了丰富的接口,使系统具有良好的可扩展性。该系统可以实现防盗追踪、远程擦除、远程锁定、远程同步、远程定位等功能。实现环境为HTML+JSP+Windows+Eclipse。通过该系统的防盗追踪功能、远程锁定手机功能和远程定位功能实现的结果如图6所示。
图6 防盗追踪、远程锁定、远程定位结果图
结语
本文通过对一种手机云平台的研究,利用其提供的云推送和云同步的技术,通过服务器与客户端之间的Socket进行网络通信,实现了基于Android平台的手机防盗系统。本系统为丢失手机用户找回手机提供了重要依据,还可以帮助用户对手机进行远程控制。但是不能忽视的是,系统目前还存在很多漏洞,比如:如果服务器与客户端由于网络的原因不能建立通信连接,那么就不能通过Web远程控制的方式控制手机。而且,如果手机被重新刷机的话,防盗系统将会被卸载,因此也将不能继续发挥作用。以上的漏洞和不足,将是以后继续研究的方向。