APP下载

基于Android的手机防盗软件的研究与实现

2016-12-15李纪平丁么明焦家林

湖北工程学院学报 2016年6期
关键词:SIM卡防盗被盗

李纪平,丁么明,焦家林

(湖北工程学院 计算机与信息科学学院, 湖北 孝感 432000)



基于Android的手机防盗软件的研究与实现

李纪平,丁么明,焦家林

(湖北工程学院 计算机与信息科学学院, 湖北 孝感 432000)

针对手机被盗或丢失后个人隐私泄露所带来的安全隐患,提出了一种基于Android手机防盗软件的总体设计方案和流程,详细给出了各模块的具体实现方法和相应的关键代码。该软件采用后台监听技术,以绑定安全号码的方式,通过手机短信对被盗手机实现定位与防盗追踪、锁屏、语音警告以及个人隐私信息销毁功能。模拟器和真机环境下的测试结果表明,该软件具有一定的实用价值。

Android;隐私泄露;防盗追踪;数据清除;语音报警;锁屏

随着移动计算技术的发展,智能手机已成信息获取的主要载体。其中,Android智能手机不仅简单易用、功能强大,而且具有开源的特点,市场占有率高达81%,在人们的日常生活中有着广泛的应用[1-3]。当前,人们使用智能手机除了打电话、发短信外,更多的是用来实现移动互联服务,如看新闻、上网聊天、收发微博、移动支付、视频观看、手机游戏以及导航服务等。此外,随着人们生活节奏加快,移动办公已常态化,重要日程提醒、会议记录的存储、银行账号及密码的存储、通信录的管理、视频照片存储等都可以借助智能手机完成。然而,智能手机在给人们的工作、生活带来巨大方便的同时,存储在智能手机中的个人信息及相关隐私数据如果泄露,将会给智能手机的使用者带来严重的安全隐患。比如,犯罪分子可以利用丢失或被盗手机中的联系人信息,冒充银行、电信、公检法警察等身份对失主的朋友及家人进行诈骗,不仅会对失主及其亲戚朋友造成一定的经济损失,而且会给他们的工作、生活造成非常大的影响[4-6]。因此,设计并开发基于Android的手机防盗追踪与隐私保护安全软件,以手机App实现丢失手机的定位跟踪及隐私信息的有效清除就显得尤为重要和有意义[7-9]。

1 系统设计

为了实现手机防盗功能,系统要实现SIM卡更换警告、手机定位跟踪、手机锁屏、语音警告及隐私数据清除等功能,手机防盗系统的功能如图1所示。

1.1 系统组成

该系统主要由系统设置和防盗管理两部分构成,其中系统设置主要完成用户在初次使用本软件时实现用户名和口令设置,完成系统的初始化,并绑定安全号码。防盗管理主要有SIM 卡更换警告、手机定位跟踪、手机锁屏、隐私数据清除及手机语音警告等功能。

1.2 系统功能

当手机开机时,系统首先检测该安全软件是否是首次在此手机上运行,若是,就进行初始化设置,完成登录用户名和登录密码,以及安全号码的设置。当初始化设置完成后,系统将SIM卡信息、用户名和密码保存,同时自动启动防盗追踪功能;若安全软件不是首次运行,则需要输入登录用户名和密码进行用户安全认证,只有安全认证通过,才可进入软件设置界面,实现手机防盗功能的开启与关闭,实现Username和Password的修改。但是, 输入Username和Password进行安全认证出错次数最多不超过3次,否则该安全软件将退出登录窗口,在后台执行监听操作,根据绑定安全号码手机发来的“location”、“lockscreen”、“alarm”、“wipedata”等不同短信指令,分别对被盗手机执行定位跟踪、锁屏、语音警告及隐私数据销毁等操作。

如果被盗手机SIM卡更换,被盗手机将会向邦定安全号码的手机发送SIM变更信息,并将新的SIM卡信息发送给拥有安全号码的手机;当拥有安全号码的手机向被盗手机发送不同的短消息指令,若发送“location”短消息指令,则被盗手机会向绑定安全号码的手机发送其所在经纬度位置信息;若发送“lockscreen”短消息指令,则被盗手机的屏幕将被锁定,防止非法用户查看或处理被盗手机内相关信息;若发送“alarm”短消息指令,则被盗手机将会自动播放语音警告信息;若发送“wipedata”短消息指令,则将清除被盗手机上的隐私数据信息,具体流程如图2所示。

2 手机防盗系统的实现

2.1 系统初始化模块

该模块的主要功能是让本软件在Android智能手机上首次使用时,让用户完成Username和Password的设置与保存。当前,Android 系统主要有4种数据存储方式:SQLite数据库、SharedPreferences、Content Provider以及文件存储[10]。考虑到本软件要存储的数据量较小,且多为一些设置参数,故采用SharedPreferences方式保存登录Username和Password,以及要绑定的SecurityNumber和SIM卡信息等。

图2 安全软件系统功能流程

2.2 用户管理模块

用户管理模块的主要功能是让用户进行防盗功能的设置、登录用户名和密码的重置。如果用户要进入此功能,必须进行登录Username和Password的验证。如果登录Username、Password和初始化时设置的Username、Password相同,则可进行防盗功能的设置,或登录用户名、密码的重置;否则,将无法进入到此模块。

2.3 SIM卡绑定模块

一旦手机和指定的SIM绑定后,如果该手机被盗或丢失后SIM卡被换掉,该被盗手机将向绑定安全号码的手机发送SIM卡更换消息,并将更换后的SIM卡信息发送给绑定安全号码的手机,SIM卡绑定的核心代码如下:

siv_simBind.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

String simSerialNumber = tm.getSimSerialNumber();

if(siv_simBind.isChecked()){

siv_simBind.setChecked(false);

sp.edit().putString(“sim”,“”).commit();} else{siv_simBind.setChecked(true);

sp.edit().putString(“sim”,simSerialNumber).commit();} } };

2.4 安全号码绑定模块

该模块的主要功能是为用户提供设置一个Security number的接口,当手机被盗后,通过此Security number,失主可以向被盗手机发送“location”、“lockscreen”、“alarm”、“wipedata”等短消息指令,实现对被盗手机的远程控制与管理。实现安全号码绑定功能的核心代码如下:

protected void showNext(){

String et_safephone=et_phone.getText().toString().trim();

if(TextUtils.isEmpty(et_safephone)){

Toast.makeText(this, “请设置安全号码”, 0).show();

return ;}

sp.edit().putString(“safephone”, et_safephone).commit();

Intent intent = new Intent (this,Setup4Activity.class);

startActivity(intent);

finish();

overridePendingTransition(R.anim.tran_in, R.anim.tran_out); }

2.5 SIM卡检测模块

SIM卡检测模块用来检测手机SIM卡是否更换,如果SIM卡更换,则视为手机被盗或丢失,将向绑定安全号码的手机发送被盗信息及更换后的SIM卡信息。系统启动后,Android会发送BOOT_ COMPLETED广播,用来通告系统的各种状态信息[11]。在后台,用BootCompleteReceiver来专门监听BOOT_COMPLETED广播事件,并采用TelephonyManager类的实例来获取手机的SIM卡信息,并将此信息和手机中绑定的SIM卡信息进行比对,用来判断手机SIM卡是否变更,从而决定是否向绑定安全号码的手机发送变更后的SIM卡信息。

2.6 手机定位跟踪模块

手机定位跟踪模块主要用来实现被盗手机的定位跟踪服务,为被盗手机的找回提供指导。当GPS定位服务开启后,通过调用public void onLocationChanged(Location location)方法来获取被盗手机的经纬度信息,实现被盗手机定位跟踪服务的核心代码如下:

Public void onLocationChanged(Location location) {

String longitude=“longitude:”+location.getLongitude() +“ ”;

String latitude = “ latitude:” + location.getLatitude()+“ ”;

String accuracy= “accuracy:” + location.getAccuracy()+“ ”;

String lastlocation = longitude+latitude+accuracy;

sp.edit().putString(“lastlocation”, lastlocation).commit();}

2.7 隐私信息销毁模块

该模块的主要功能是当手机被盗或丢失后,用户可以借助绑定Security number的手机向被盗或丢失的手机发送“wipedata”短消息指令,清除被盗手机中的隐私信息,包括通信录及手机中的存储的短消息、照片等。

Android系统中的联系人信息一般存储在/data/data/com.android.providers.contacts/目录下[11-12],但并不允许直接存取它,必须在获取权限后,通过ContentResolver的insert接口获取通讯录的联系人,然后通过ContentResolver的Delete接口删除;而SD卡在Android系统中的路径是/mnt /sdcard[11-12],如果要删除SD卡中的数据,必须在取得权限后,通过文件操作实现删除。

要删除被盗手机联系人信息,首先要获取联系人的读写权限,要想获此读写权限,必须在AndroidManifest.xml配置文件中加入如下代码:

删除被盗手机所有联系人的关键代码如下:

ContentResolver cr=getContentResolver();

int n=cr.delete(ContactsContract.Data. CONTENT_URI,null,null);

要删除被盗手机SD卡中存储的信息,首先要获得SD卡的写权限。要想获此权限,必须在AndroidManifest.xml配置文件中加入如下代码。

在获取SD卡写权限后,执行相关操作可以实现不同类型信息。如下代码用来删除SD卡中存放的在Pictures目录中的所有照片。

String baseDir

=Environment.getExternalStorageDirectory().get AbsolutePath();

baseDir=baseDir+“/Pictures”;

File[] list=new File(baseDir).listFiles();

for(int i=0;i

2.8 后台短信监听模块

该模块的主要功能是在后台实时监听接收到的短消息,如有绑定Security number的手机发来的短信,则对该短消息的内容进行截获,并将短信内容与远程控制代码进行比较,若匹配成功,则根据匹配的内容启动相应的防盗跟踪、锁屏、语音报警及隐私数据清除等操作,该功能的核心代码如下:

public class SMSReceiver extends BroadcastReceiver{

private static final String TAG = “SMSReceiver”;

private SharedPreferences sp;

private DevicePolicyManager dpm;

public void onReceive(Context context, Intent intent)

{sp=context.getSharedPreferences(“config”,

context.MODE_PRIVATE);

dpm=(DevicePolicyManager)context.getSystemService(

context.DEVICE_POLICY_SERVICE);

Object[] objs = (Object[])

intent.getExtras().get(“pdus”);

for (Object obj:objs)

{smsMessage sms = smsMessage.createFromPdu((byte[]) obj);

String address = sms.getOriginatingAddress();

String safephone = sp.getString(“safephone”, “5556”);

if(address.contains(safephone)){

String body = sms.getMessageBody();

if (“location”.equals(body)){

Intent intentGPSService = new

Intent(context,GPSService.class);

context.startService(intentGPSService);

String lastlocation = sp.getString(“lastlocation”,“”);}

if(TextUtils.isEmpty(lastlocation)){

smsManager.getDefault().sendTextMessage(address,null,”

getting location...from zh”, null, null);}

else{SmsManager.getDefault().sendTextMessage(address,

null, lastlocation, null, null);abortBroadcast();}

else if(“alarm”.equals(body)){

MediaPlayer mp=MediaPlayer.create(context, R.raw.fail);

mp.setVolume(1.0f, 1.0f); mp.start();

abortBroadcast();}

else if(“wipedata”.equals(body)){dpm.wipeData(0);abortBroadcast();}

else if(“lockscreen”.equals(body)){dpm.lockNow ();

dpm.resetPassword(safephone, 0);abortBroadcast();}}

3 软件测试

软件测试的目的主要是测试软件的界面是否与设计的效果吻合、运行效果是否良好、功能是否完善、性能是否稳定。为了验证手机防盗安全软件的运行效果,在仿真模拟器和真机环境下分别进行测试。测试的软硬件环境如表1所示。

表1 测试采用的软硬件环境

3.1 测试平台

硬件:带有USB 2.0接口的台式机一台、装有Android 5.0系统的HTC D826 w手机一部、USB数据线一根,手机USB接口与电脑的USB接口通过USB数据线保持相连并处于同步状态。

软件:Eclipse Kepler 4.3、Android ADT 1.7集成开发环境、Android 4.0.3 SDK、HTC D826w手机驱动。

在电脑系统调试状态,可以使电脑与HTC D826 w手机连接后保持同步。通过Eclipse中DDMS的Device对软件的运行画面截屏,通过集成环境的LogCat可以对软件的运行情况进行分析。

3.2 测试结果

不论是采用Android模拟器测试还是真机测试,都能实现需求分析所需的四个主要功能。当绑定安全号码的手机(或Android模拟器)向被盗手机(或装有此防盗应用的Android模拟器)发送“location”短信指令,绑定安全号码的手机(或Android模拟器)会收到被盗手机的地理位置信息,如图3所示。

(a)真机测试环境 (b)模拟器测试环境

当绑定安全号码的手机(或Android模拟器)向被盗手机(或装有此防盗应用的Android模拟器)发送“lockscreen”短信指令时,被盗手机的屏幕将处于锁定状态,如图4所示。

(a)真机测试环境 (b)模拟器测试环境

当绑定Security number的手机(或Android模拟器)向被盗手机(或装有此防盗应用的Android模拟器)发送“alarm”短信指令时,被盗手机将播放预先设定的语音文件,向盗取手机者发送语音警告信息。

当绑定Security number的手机(或Android模拟器)向被盗手机(或装有此防盗应用的Android模拟器)发送“wipedata”短信指令时,将清除被盗手机内所有数据。为了保证真实手机内数据不被删除,在测试时采用模拟器测试环境,隐私数据清除界面如图5所示。

图5 模拟器环境下隐私数据清除测试

4 结束语

本文提出了一种基于Android平台的手机安全软件的设计方案,详细给出了该软件的系统功能框图、功能流程图及各功能模块的核心代码。该方案采用后台监听技术,以绑定Security number的方式,通过Security number手机以短信方式实现对被盗手机的防盗追踪、语音警告、隐私信息清除及锁屏功能,仿真和实测结果表明该软件具有一定的实用价值。在下阶段的研究中,将主要精力放在开发适用于IOS平台的智能手机安全防盗软件,实现防盗追踪、语音警告、隐私信息删除及锁屏等功能。

[1] 杨丰盛.Android 应用开发揭秘[M].北京:机械工业出版社,2010.

[2] 段君,朱学森.基于Android智能手机来电防火墙的研究与设计[J].内蒙古科技大学学报,2012,31(4):356-359.

[3] 闫梅,彭新光.基于Android安全机制的权限检测系统[J].计算机工程与设计,2013,34(3):854-858.

[4] 赵海军.解决手机隐私泄露刻不容缓[N].中国计算机报,2012-02-27(4).

[5] 佚名.明争·暗斗:手机安全大作战[N/OL].电脑报,2013-03-05[2015-05-05].http: //www.icpcw.com.

[6] 赖超,龙曦,李金霖,等.基于 Android平台的手机后台监听技术[J].电脑知识与技术,2010,6(33):9472-9474.

[7] 张浩,陈盛云.基于 Android 平台手机防盗追踪功能的实现[J].江西科学,2011,29(5):652-655.

[8] 李中平.Android 手机远程控制关键技术分析[J].计算机应用与软件,2013,30(4):113-115.

[9] 王颖,李威耀.基于Android平台的手机防盗与数据保护系统[J].现代计算机. 2013(18):62-64.

[10] 杨丰盛.Android技术内幕·系统卷[M].北京:机械工业出版社,2011.

[11] 南秦博,慕德俊,侯艳艳.基于Android平台的手机防盗安全软件设计与实现[J].现代电子技术,2015(4):46-49.

[12] Darcey L,Conder S.Android应用开发入门经典[M].袁国忠,译.北京:人民邮电出版社,2012.

(责任编辑:熊文涛)

Research and Realization of Mobile Phone Security Software Based on Android Platform

Li Jiping, Ding Yaoming, Jiao Jialin

(SchoolofComputerandInformationScience,HubeiEngineeringUniversity,Xiaogan,Hubei432000,China)

In order to overcome the security threat caused by the leak of personal private information due to the stolen or lost mobile phone, an overall design scheme for mobile phone is proposed based on android platform. In addition, the detailed realization method and related key codes of each module are also given. By using background monitoring technology and binding safe phone number, the developed software realizes remote control through short message, thus realizing the function of anti-theft tracking, voice alarm, locking of screen and destruction of private information. The testing results in both simulation and practical environments show that the security software is valuable in practice.

Android; privacy leaking; anti-theft tracking; data wiping; voice alarming; screen locking

2016-09-21

国家自然科学基金面上项目(61370223);湖北省自然科学基金面上项目(2014CFB577)

李纪平(1972- ),男,湖北汉川人,湖北工程学院计算机与信息科学学院副教授,博士。

丁么明(1963- ),男,湖北孝昌人,湖北工程学院计算机与信息科学学院教授,博士。

TP399

A

2095-4824(2016)06-0047-06

焦家林(1963- ),男,湖北汉川人,湖北工程学院计算机与信息科学学院副教授,硕士。

猜你喜欢

SIM卡防盗被盗
SIM卡防盗很关键 小喻教你如何给它“上保险”
铁路GSM-R SIM卡读写次数测试方法研究
SIM卡的“减肥史”
古代陵墓中的防盗机关
防火防盗报警器设计
2017年凯迪拉克XT5电路图
名画被盗
黑邮票被盗
剩女笔记
艺术品被盗