摘 要: 針對(duì)手機(jī)丟失后個(gè)人隱私信息泄露所帶來(lái)的安全隱患,提出并設(shè)計(jì)了一種基于Android平臺(tái)的手機(jī)防盜安全軟件,利用后臺(tái)監(jiān)聽(tīng)技術(shù),通過(guò)遠(yuǎn)程控制,實(shí)現(xiàn)防盜追蹤和私密信息銷毀的功能。介紹了軟件系統(tǒng)的總體設(shè)計(jì)方案,詳細(xì)分析了各模塊的具體實(shí)現(xiàn)方法,并在模擬器和真機(jī)兩種測(cè)試環(huán)境下對(duì)手機(jī)安全防盜軟件進(jìn)行實(shí)驗(yàn)測(cè)試。實(shí)驗(yàn)測(cè)試結(jié)果表明:該軟件設(shè)計(jì)合理、有效,能夠?qū)崿F(xiàn)預(yù)期的功能,具有一定的實(shí)用價(jià)值。
關(guān)鍵詞: Android; 手機(jī)防盜; 安全軟件; 后臺(tái)監(jiān)聽(tīng)
中圖分類號(hào): TN919?34; TP39 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)04?0046?04
0 引 言
隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來(lái),移動(dòng)終端設(shè)備已成為人們獲取信息的主要設(shè)備,而Android智能手機(jī)憑借其開(kāi)源、易用和強(qiáng)大的功能,在日常生活中得到了廣泛的應(yīng)用[1?3]。人們使用智能手機(jī)不再是打電話、發(fā)短信、上網(wǎng)瀏覽信息、聊天購(gòu)物、觀看視頻、導(dǎo)航找路,而且還可以處理個(gè)人業(yè)務(wù),比如儲(chǔ)存通訊錄、銀行賬號(hào)密碼、網(wǎng)絡(luò)支付密碼、重要日程提醒、視頻照片等個(gè)人信息和一些隱私數(shù)據(jù)。智能手機(jī)一旦丟失被竊后,不僅是個(gè)人財(cái)產(chǎn)的損失,還將給用戶帶來(lái)不可估量的隱私泄露風(fēng)險(xiǎn),可能導(dǎo)致親戚朋友上當(dāng)受騙,對(duì)大家的工作生活造成非常大的影響[4?6]。
針對(duì)手機(jī)丟失后,個(gè)人隱私信息泄露所帶來(lái)的不安全問(wèn)題,本文設(shè)計(jì)開(kāi)發(fā)了基于Android平臺(tái)的手機(jī)防盜安全軟件,通過(guò)遠(yuǎn)程控制,實(shí)現(xiàn)手機(jī)丟失后的防盜追蹤和私密信息銷毀的功能,提高智能手機(jī)的安全性,以保障用戶的個(gè)人隱私和財(cái)產(chǎn)安全。
1 系統(tǒng)總體設(shè)計(jì)
1.1 系統(tǒng)功能結(jié)構(gòu)
該系統(tǒng)提供了一種建立在Android平臺(tái)之上、給普通Android用戶鏈接丟失手機(jī)并實(shí)現(xiàn)遠(yuǎn)程控制服務(wù)的軟件,由系統(tǒng)設(shè)置和防盜安全兩部分組成。系統(tǒng)設(shè)置部分具有初始化、用戶管理、安全號(hào)碼設(shè)置功能;防盜安全部分具有開(kāi)機(jī)SIM卡檢測(cè)、后臺(tái)短信監(jiān)聽(tīng)、防盜追蹤、信息銷毀功能。手機(jī)防盜安全軟件系統(tǒng)的功能結(jié)構(gòu)如圖1所示。
1.2 系統(tǒng)流程
手機(jī)防盜安全軟件系統(tǒng)流程如圖2所示。
手機(jī)防盜安全軟件在手機(jī)上安裝運(yùn)行時(shí),首先檢測(cè)是否首次在該手機(jī)上運(yùn)行,若是第一次運(yùn)行,就進(jìn)入初始化設(shè)置,先設(shè)置登錄用戶名和密碼,再設(shè)定一個(gè)安全號(hào)碼,設(shè)置完成后自動(dòng)啟動(dòng)防盜功能,同時(shí)將用戶SIM卡信息、用戶名和密碼保存;如果不是第一次運(yùn)行,需要輸入用戶名和密碼進(jìn)行登錄,用戶名和密碼輸入正確,進(jìn)入軟件設(shè)置,可以關(guān)閉防盜功能或修改登錄用戶名和密碼,用戶名和密碼輸入錯(cuò)誤,可重新輸入3次,如3次都不對(duì),軟件退出登錄窗口,防盜功能在后臺(tái)正常運(yùn)行。
開(kāi)啟防盜功能后,在手機(jī)每次開(kāi)機(jī)時(shí)檢測(cè)用戶SIM卡信息,同時(shí)在后臺(tái)對(duì)手機(jī)接收到的短信進(jìn)行監(jiān)聽(tīng),如果用戶SIM卡信息與初始化時(shí)的SIM卡信息不一致,那就說(shuō)明SIM已被更換,用戶手機(jī)被盜,手機(jī)自動(dòng)向安全號(hào)碼手機(jī)發(fā)送現(xiàn)在正在使用的SIM卡信息,安全號(hào)碼手機(jī)收到短信即可得到被盜手機(jī)的號(hào)碼和SIM卡信息;安全號(hào)碼手機(jī)向被盜手機(jī)發(fā)送指令代碼短信,后臺(tái)短信監(jiān)聽(tīng)到安全號(hào)碼發(fā)來(lái)的短信,自動(dòng)截獲短信內(nèi)容,將內(nèi)容與預(yù)設(shè)指令代碼進(jìn)行比對(duì),若不是預(yù)設(shè)指令代碼短信,繼續(xù)在后臺(tái)監(jiān)聽(tīng),如果是預(yù)設(shè)的指令代碼,就自動(dòng)執(zhí)行對(duì)應(yīng)的指令,銷毀手機(jī)中用戶的數(shù)據(jù)信息,確保用戶隱私信息的安全,同時(shí)也可用被盜手機(jī)號(hào)碼追蹤尋找丟失的手機(jī)。
2 系統(tǒng)實(shí)現(xiàn)
2.1 初始化模塊
初始化模塊的主要功能是讓用戶在首次使用本軟件時(shí)設(shè)置登錄用戶名和密碼,并保存設(shè)定好的用戶名和密碼。
在Android系統(tǒng)平臺(tái)下用于保存數(shù)據(jù)有3種方式,一是使用SQLite數(shù)據(jù)庫(kù);二是使用SharedPreferences;三是使用文件存儲(chǔ)[7]。本軟件要存儲(chǔ)數(shù)據(jù)量較小,采用SharedPreferences保存用戶名和密碼,以及后面安全號(hào)碼和SIM卡信息等。
2.2 用戶管理模塊
用戶管理模塊的主要功能是讓用戶再次登錄本軟件時(shí),彈出輸入密碼窗口,輸入初始化時(shí)設(shè)置的用戶名和密碼,可進(jìn)行防盜功能的設(shè)置和用戶名密碼的重置。
驗(yàn)證用戶名和密碼的關(guān)鍵代碼如下:
2.3 安全號(hào)碼設(shè)置模塊
安全號(hào)碼設(shè)置模塊的主要功能是讓用戶設(shè)置一個(gè)安全號(hào)碼,該安全號(hào)碼用于遠(yuǎn)程控制管理。
軟件安全號(hào)碼設(shè)置界面如圖3所示,設(shè)置完安全號(hào)碼,開(kāi)啟防盜功能的同時(shí)獲取當(dāng)前手機(jī)正在使用的SIM卡信息,使用getSubscriberId( )獲取當(dāng)前手機(jī)正在使用的SIM卡惟一標(biāo)識(shí)IMSI碼,使用getLine1Number( )獲取SIM卡對(duì)應(yīng)的手機(jī)號(hào)碼,并進(jìn)行保存。
2.4 開(kāi)機(jī)SIM卡檢測(cè)模塊
開(kāi)機(jī)SIM卡檢測(cè)模塊的主要功能是開(kāi)機(jī)自動(dòng)檢測(cè)手機(jī)中SIM卡信息,并與用戶初始化時(shí)保存的SIM卡信息進(jìn)行對(duì)比,從而判斷手機(jī)是否被盜。
Android系統(tǒng)完成開(kāi)機(jī)后,會(huì)發(fā)送一個(gè)BOOT_COMPLETED的廣播通告系統(tǒng)開(kāi)機(jī)完畢的各種狀態(tài)信息[8],本模塊通過(guò)注冊(cè)一個(gè)BootCompleteReceiver廣播接收者,在后臺(tái)專門監(jiān)聽(tīng)BOOT_COMPLETED廣播事件,再通過(guò)TelephonyManager獲取開(kāi)機(jī)時(shí)手機(jī)中的SIM卡信息。
通過(guò)TelephonyManager獲取開(kāi)機(jī)時(shí)手機(jī)中的SIM卡信息的關(guān)鍵代碼如下:
2.5 后臺(tái)短信監(jiān)聽(tīng)模塊
后臺(tái)短信監(jiān)聽(tīng)模塊的主要功能是在后臺(tái)實(shí)時(shí)監(jiān)聽(tīng)手機(jī)收到的短信息,手機(jī)被盜后,如有系統(tǒng)設(shè)定的安全號(hào)碼發(fā)送來(lái)的短信息,對(duì)該信息內(nèi)容進(jìn)行截獲,將信息內(nèi)容與遠(yuǎn)程控制代碼進(jìn)行匹配,若匹配上,手機(jī)自動(dòng)執(zhí)行相應(yīng)的控制操作
本模塊通過(guò)注冊(cè)一個(gè)SMSReceivedBroadcastReceiver廣播接收者,專門監(jiān)聽(tīng)Telephony.SMS_RECEIVED廣播事件,獲取接收到的短信內(nèi)容。
在Android系統(tǒng)中,當(dāng)收到短信時(shí),系統(tǒng)會(huì)將短信的內(nèi)容封裝成pdu的格式,然后放到intent里面。獲得短信內(nèi)容實(shí)現(xiàn)的關(guān)鍵代碼如下:
2.6 防盜追蹤模塊
防盜追蹤模塊的主要功能是在手機(jī)被盜后,將當(dāng)前手機(jī)正在使用的SIM卡信息和手機(jī)號(hào)碼發(fā)送給設(shè)定的安全號(hào)碼,用于用戶找回被盜手機(jī)。
在開(kāi)機(jī)SIM卡檢測(cè)模塊檢測(cè)到當(dāng)前手機(jī)正在使用的SIM卡IMIS碼,與初始化時(shí)設(shè)定的SIM卡IMIS碼進(jìn)行比較,如果一致就什么都不做,如果不一致,說(shuō)明SIM卡被更換,手機(jī)丟失,使用SmsManager在后臺(tái)向安全號(hào)碼手機(jī)發(fā)送一條警告提醒短信,獲取被盜手機(jī)正在使用的號(hào)碼。
2.7 信息銷毀模塊
信息銷毀模塊的主要功能是在手機(jī)被盜后,通過(guò)安全號(hào)碼發(fā)送過(guò)來(lái)的指令代碼,刪除手機(jī)SD卡中的所有數(shù)據(jù)信息,清空手機(jī)中用戶的通訊錄和短信等信息,保護(hù)用戶的隱私。
Android系統(tǒng)中聯(lián)系人存儲(chǔ)在/data/data/com.android.providers.contacts/目錄下;SD卡在Android系統(tǒng)中的路徑是/mnt/sdcard[9]。本模塊在收到安全號(hào)碼手機(jī)發(fā)送來(lái)的預(yù)設(shè)指令代碼后,使用File的成員函數(shù)delete( )通過(guò)遍歷實(shí)現(xiàn)對(duì)手機(jī)聯(lián)系人和SD卡中所有數(shù)據(jù)的銷毀。
通過(guò)遍歷實(shí)現(xiàn)刪除的關(guān)鍵代碼如下:
3 系統(tǒng)測(cè)試
為了驗(yàn)證手機(jī)防盜安全軟件的運(yùn)行效果,分別搭建模擬器和真機(jī)兩個(gè)測(cè)試環(huán)境。
模擬器測(cè)試環(huán)境為一臺(tái)安裝Android系統(tǒng)開(kāi)發(fā)環(huán)境的電腦,并創(chuàng)建兩個(gè)Android模擬器,其中一個(gè)模擬器安裝本軟件。在模擬器測(cè)試環(huán)境下,安全號(hào)碼向被盜手機(jī)發(fā)送銷毀指令代碼短信,后臺(tái)短信監(jiān)聽(tīng)成功截獲短信內(nèi)容,刪除了模擬器中的聯(lián)系人數(shù)據(jù)。聯(lián)系人數(shù)據(jù)銷毀前兩個(gè)模擬器狀態(tài)如圖4所示,聯(lián)系人數(shù)據(jù)銷毀后兩個(gè)模擬器狀態(tài)如圖5所示。
真機(jī)測(cè)試環(huán)境為2部Android智能手機(jī)和兩張SIM卡,其中一部Android智能手機(jī)安裝本軟件。在系統(tǒng)真機(jī)測(cè)試環(huán)境下,被盜手機(jī)更換SIM卡開(kāi)機(jī)后,開(kāi)機(jī)SIM卡檢測(cè)模塊成功檢測(cè)到SIM卡IMIS碼已變更,防盜追蹤模塊向安全號(hào)碼發(fā)送“你的手機(jī)已被盜,現(xiàn)在正在被我使用”的短信,安全號(hào)碼向被盜手機(jī)發(fā)送銷毀指令代碼短信,后臺(tái)短信監(jiān)聽(tīng)成功截獲短信內(nèi)容,執(zhí)行銷毀指令,并向安全號(hào)碼發(fā)送一條“信息銷毀模塊測(cè)試成功”短信,安全號(hào)碼手機(jī)運(yùn)行結(jié)果如圖6所示。
經(jīng)過(guò)模擬器和真機(jī)兩種測(cè)試環(huán)境實(shí)驗(yàn)測(cè)試可以看出,通過(guò)遠(yuǎn)程控制,本軟件可以實(shí)現(xiàn)手機(jī)丟失后的防盜追蹤和私密信息銷毀的功能。
4 結(jié) 語(yǔ)
本文介紹了手機(jī)防盜安全軟件的功能結(jié)構(gòu)及系統(tǒng)流程,詳細(xì)分析了各模塊的具體實(shí)現(xiàn)方法,并在模擬器和真機(jī)兩種測(cè)試環(huán)境下進(jìn)行系統(tǒng)測(cè)試驗(yàn)證,測(cè)試結(jié)果表明,該軟件設(shè)計(jì)有效,能夠?qū)崿F(xiàn)手機(jī)丟失后的防盜追蹤和私密信息銷毀的預(yù)期功能。該軟件的設(shè)計(jì)為提高智能手機(jī)的安全性,以保障用戶的個(gè)人隱私和財(cái)產(chǎn)安全具有非常重要的意義,同時(shí)為相似系統(tǒng)的開(kāi)發(fā)和研究提供一定的借鑒和參考作用。
參考文獻(xiàn)
[1] 楊豐盛.Android應(yīng)用開(kāi)發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.
[2] 段君,朱學(xué)森.基于Android智能手機(jī)來(lái)電防火墻的研究與設(shè)計(jì)[J].內(nèi)蒙古科技大學(xué)學(xué)報(bào),2012,31(4):356?359.
[3] 閆梅,彭新光.基于Android安全機(jī)制的權(quán)限檢測(cè)系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(3):854?858.
[4] 趙海軍.解決手機(jī)隱私泄露刻不容緩[N].中國(guó)計(jì)算機(jī)報(bào), 2012?02?27(4).
[5] 佚名.明爭(zhēng)·暗斗:手機(jī)安全大作戰(zhàn)[EB/OL]. [2012?04?05].http://www.icpcw.com.
[6] 賴超,龍曦,李金霖,等.基于Android平臺(tái)的手機(jī)后臺(tái)監(jiān)聽(tīng)技術(shù)[J].電腦知識(shí)與技術(shù),2010,6(33):9472?9474.
[7] 楊豐盛.Android技術(shù)內(nèi)幕·系統(tǒng)卷[M].北京:機(jī)械工業(yè)出版社, 2011.
[8] [美]STEELE J. To Nelson Android開(kāi)發(fā)秘籍[M].李青,王瑜,趙丞兵,譯.北京:人民郵電出版社,2011.
[9] [美] DARCEY L, CONDER S. Android應(yīng)用開(kāi)發(fā)入門經(jīng)典[M]. 袁國(guó)忠,譯.2版.北京:人民郵電出版社,2012.
[10] 馬建紅,姬莉霞,衛(wèi)權(quán)崗.基于Android平臺(tái)的移動(dòng)個(gè)人助手設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(2):24?26.