Android平臺手機防盜系統(tǒng)的安全解決方案
引言
Android是Google開發(fā)的基于Linux平臺的開源手機操作系統(tǒng),該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,被譽為第一個完整、開放而且免費的移動平臺[1].因3G技術(shù)的不斷發(fā)展和Android平臺的優(yōu)勢,Android移動應用開發(fā)成為目前熱門的技術(shù)之一,基于Android平臺的智能手機數(shù)量也越來越多。由于Android手機的便利性和實用性,很多人會把銀行卡密碼、電話密碼、網(wǎng)絡支付密碼、重要日程提醒等個人信息和一些隱私數(shù)據(jù)存放到手機里。如果手機被盜,不僅短信、通訊錄、照片等隱私泄漏,還可能導致親戚朋友上當受騙,會對人們的工作和生活帶來很大的影響。
為了解決這一問題,本文提出了在手機被盜后,通過防盜追蹤模塊來監(jiān)測手機SIM卡是否被更換,從而確定自己的手機是否被盜。并利用即時通信模塊向被盜手機發(fā)送遠程控制指令,來保護個人隱私并追蹤找回被盜手機。在手機鎖定后通過屏蔽手機的按鍵、攔截電話和短信以及關(guān)閉手機的USB調(diào)試連接,使手機不能使用,除非進行解鎖。該系統(tǒng)將防盜追蹤、即時通信和遠程控制等模塊有機地結(jié)合在一起,具有良好的研究價值和應用前景。
1系統(tǒng)總體設計
手機防盜系統(tǒng)是以手機終端為載體,借助通信運營商提供的GPRS數(shù)據(jù)連接業(yè)務或者移動WiFi網(wǎng)絡以及短信業(yè)務,實現(xiàn)遠程控制。在實現(xiàn)遠程控制之前,用戶首先需要通過GPRS數(shù)據(jù)連接或者移動WiFi網(wǎng)絡,根據(jù)配置好的網(wǎng)絡環(huán)境啟動并運行服務器,然后再根據(jù)啟動服務器的IP地址、端口號,以及服務器上配置好的用戶名和密碼,激活安裝在Android終端上的客戶端軟件。在手機客戶端軟件激活之后,云端的服務器便跟手機客戶端之間建立了可靠的通信連接;連接建立成功后,用戶便可以按照手機云平臺的通信協(xié)議實現(xiàn)服務器跟客戶端之間的數(shù)據(jù)通信。手機客戶端將需要上傳的數(shù)據(jù)或操作生成的業(yè)務數(shù)據(jù),封裝成固定的Java Bean數(shù)據(jù)包的格式發(fā)送到云端的服務器,或者是云端服務器將網(wǎng)頁側(cè)下發(fā)的命令字段封裝成Java Bean數(shù)據(jù)包的形式,再下發(fā)給手機終端。手機終端將接收到的數(shù)據(jù)包進行解析,并同時完成對手機相應的命令操作,然后返回處理的結(jié)果[2].
通過對整個系統(tǒng)的分析,從系統(tǒng)的總體架構(gòu)入手,對各個功能模塊進行了劃分,并明確了系統(tǒng)各模塊之間的聯(lián)系。通過分析C/S模式和B/S模式各自的特點,結(jié)合系統(tǒng)的實際需要,采用了C/S模式和B/S模式相結(jié)合的架構(gòu)[3],用戶不僅能通過安全號碼來控制被盜的手機,在緊急情況下,還可登錄Web端的手機防盜管理系統(tǒng)來遠程操控被盜的手機。第一時間對被盜的手機進行全方位的監(jiān)聽,使小偷不能對手機進行任何操作,既保護了隱私數(shù)據(jù),又給找回手機爭取了寶貴的時間。還可以通過GPS定位來獲取被盜手機當前所在的位置,盡快找回被盜的手機。系統(tǒng)總體架構(gòu)如圖1所示。
圖1系統(tǒng)總體架構(gòu)
圖1說明了整個系統(tǒng)的架構(gòu)設計,在手機被盜之后,用戶可以通過安全號碼手機控制被盜的手機,還可以通過PC的瀏覽器登錄到Web端的手機防盜管理系統(tǒng),通過即時通信模塊向被盜手機發(fā)送遠程控制指令,從而執(zhí)行手機報警、數(shù)據(jù)刪除、鎖定手機、GPS定位等功能。當被盜手機接收到這些指令,也會進行相應的處理,完成后將處理結(jié)果通過即時通信模塊發(fā)送到Web端并顯示。這兩種控制方式都是在后臺秘密地進行,小偷不會有任何察覺,從而更安全可靠地追蹤手機。
2防盜追蹤模塊的設計與實現(xiàn)
防盜追蹤模塊通過監(jiān)聽手機的開機廣播,實時監(jiān)測手機中插入的SIM卡是否合法,如果合法,不作任何處理;否則,將獲取新卡的SIM卡卡號,并將該SIM卡卡號作為短信的內(nèi)容發(fā)送至用戶指定安全號碼的手機,從而使用戶獲取被盜手機的SIM卡號碼,對手機進行遠程控制。與此同時,將開啟轉(zhuǎn)發(fā)被盜手機新短信的服務。下面說明該模塊的具體功能。防盜追蹤模塊處理流程如圖2所示。
圖2防盜追蹤模塊處理流程
①設置、修改合法的SIM卡卡號:在安裝完程序第一次啟動的時候,系統(tǒng)會自動讀取當前手機的SIM卡卡號,并將該卡號作為合法的SIM卡卡號寫入自動生成的配置文件中。由于每張SIM卡卡號(即IMSI序列號)是唯一的,因此該卡號將作為判斷以后手機中插入的SIM卡是否合法的主要依據(jù)。此外還允許用戶隨時修改該SIM卡序列號。
②獲取新SIM卡號碼和IMSI序列號:用戶的手機在丟失或被盜以后,手機SIM卡往往會被更換,在手機重新啟動時,系統(tǒng)會自動獲取當前SIM卡的卡號,然后與之前配置文件中保存的卡號對比,如果不一致,系統(tǒng)會將該SIM卡卡號作為短信內(nèi)容向用戶指定的安全號碼發(fā)送通知短信,讓用戶可以通過安全號碼手機對被盜手機進行遠程操作,盡快找回被盜手機。
③開啟轉(zhuǎn)發(fā)新短信的服務:后臺轉(zhuǎn)發(fā)新短信的服務一直在運行,每一次用戶重新開機的時候,就會將配置文件中的SIM卡卡號跟當前手機中的SIM卡卡號進行對比,如果結(jié)果不一致,就會啟動該服務,將用戶手機最新收發(fā)的短信記錄按照一定的格式自動發(fā)送至用戶指定的安全號碼手機。
3即時通信模塊的設計與實現(xiàn)
即時通信模塊為Web端手機防盜管理系統(tǒng)和手機防盜系統(tǒng)客戶端提供了實時通信的渠道,讓用戶在登錄Web端手機防盜管理系統(tǒng)之后,可以實時地對被盜手機進行遠程控制,保護用戶隱私,并追蹤找回被盜手機。即時通信模塊包括服務器和客戶端兩部分,通過在服務器與客戶端之間建立網(wǎng)絡連接,從而實現(xiàn)即時通信。
即時通信模塊的處理流程如圖3所示。
圖3即時通信模塊的處理流程圖
3.1服務器端的設計與實現(xiàn)
本系統(tǒng)采用開源的Openmobster手機云平臺來搭建即時通信服務器,并根據(jù)系統(tǒng)的需要進行了改進和優(yōu)化。該平臺是一個向本地手機程序提供“云”服務的平臺,它內(nèi)嵌了一個基于J2EE開放源代碼的應用服務器JBoss.在JBoss服務器啟動后,可以通過PC的瀏覽器啟動控制臺。JBoss的控制臺界面簡陋,和其他商業(yè)化服務器的控制臺差別很大,不夠直觀。因此考慮將控制臺改造成網(wǎng)頁的形式,這樣既可以方便用戶操作,界面也更直觀。
為了該平臺的服務器跟手機終端之間實現(xiàn)通信,需要在JBoss控制臺程序中新增一條命令,相應地在服務器端也要新增處理這個命令的代碼,用控制臺發(fā)命令,讓服務器發(fā)Push消息給手機上的Service.服務器端的總體設計流程主要分為以下幾步:
①對控制臺代碼進行分析,找出控制臺的命令與類的對應關(guān)系。
②因此新增了一個FindCommand類,并且修改了配置文件,使控制臺可以運行新命令。
③在服務器端新增了一個對應控制臺新命令的findPhoneCommand類,繼承自MobileServiceBean,放在服務器端處理新增的命令。
④在服務器端建立一條Push通道。findPhoneCommand類在收到命令時就會通過這個Push通道向手機上的Service發(fā)Push消息。
⑤將控制臺改造成網(wǎng)頁的形式來發(fā)命令。
3.2客戶端的設計與實現(xiàn)
系統(tǒng)客戶端包括手機即時通信客戶端和Web即時通信客戶端。
Web即時通信客戶端基于JavaEE,利用Openmobster云平臺的Jboss服務器對JSP網(wǎng)頁文件進行熱部署,通過登錄到即時通信服務器端與手機客戶端進行通信。
移動互聯(lián)網(wǎng)中,Android智能終端通過WiFi或GPRS連接到互聯(lián)網(wǎng)。手機即時通信客戶端通過激活手機設備連接到服務器,然后以Java Bean的傳輸協(xié)議形式,對協(xié)議進行解析并執(zhí)行相應的命令操作。最后再將處理的結(jié)果封裝成Bean的對象,在客戶端與服務器之間進行傳輸。
4遠程控制模塊的設計與實現(xiàn)
4.1 Web遠程控制模塊的設計與實現(xiàn)
Web遠程控制模塊在C/S模式的基礎上,增加了B/S模式,旨在增強對被盜手機的控制。當手機丟失,安全號碼手機不能及時用來控制被盜手機,這時通過Web網(wǎng)頁來進行遠程控制,它能在第一時間鎖定手機,保護手機上的隱私數(shù)據(jù)不被竊取,為盡快找回手機提供幫助。Web控制模塊實現(xiàn)流程如下:
①用戶通過瀏覽器打開網(wǎng)頁,選擇需要下發(fā)的命令,然后輸入用戶名和密碼,點擊“確定”后調(diào)用JSP代碼。JSP代碼將網(wǎng)頁請求封裝的各功能選項字段取出,封裝進一個數(shù)據(jù)對象中。
②在服務器端定義的用于下發(fā)的Channel會定期調(diào)用相關(guān)接口,對上面封裝的數(shù)據(jù)對象進行檢查,一旦發(fā)現(xiàn)有新插入的數(shù)據(jù),會通過對應的接口取出該數(shù)據(jù),將其封裝到Bean對象中,通過Openmobster推送給手機終端。
③終端后臺模塊中的服務同樣建立了對應云端Channel的處理。一旦收到Channel的下發(fā)通知,通過發(fā)送Intent的方式啟動一個Activity[4],這個Activity在啟動過程中可以通過Bean的相關(guān)接口讀出對應用戶名和通道下發(fā)的Bean對象,通過Bean的一些方法解析并獲取下發(fā)通知中的各功能項數(shù)據(jù)字段,調(diào)用Android平臺提供的各接口,完成對手機的遠程控制。
④將遠程控制處理的結(jié)果封裝到一個新的Bean對象里,然后注冊一個用于上傳的Channel,最終將結(jié)果上傳到服務器的數(shù)據(jù)庫并顯示在網(wǎng)頁界面上。
Web遠程控制模塊的處理流程如圖4所示。
圖4 Web遠程控制模塊的處理流程
4.2短信遠程控制模塊的設計與實現(xiàn)
短信控制模塊的設計主要是基于監(jiān)聽手機短信數(shù)據(jù)庫的變化,從而獲取短信并判斷短信的類型。如果是特殊格式的指令短信,則首先將手機調(diào)為靜音模式并關(guān)閉系統(tǒng)的消息通知,然后再根據(jù)指令進行具體的操作。待操作完成以后,回復短信發(fā)件人告知指令執(zhí)行完畢,刪除此條短信并將手機恢復到之前的情景模式;否則,不作任何處理,進入普通短信的系統(tǒng)處理流程。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)