浩 明
(西安郵電大學 通信與信息工程學院, 陜西 西安 710021)
Android是Google公司開發(fā)的基于Linux內核的開源手機操作系統(tǒng)[1],它已成為當前主流的手機操作系統(tǒng),Android系統(tǒng)的開源性使其廣泛應用于智能手機上,這也使得智能手機得到了迅速普及。
Android系統(tǒng)平臺包含有基于Linux內核的操作系統(tǒng)、虛擬機、中間件,一些API接口,以及一些必要的應用功能[2-3]。Android整體上可以看作是由Linux、C/C++和Java所構成的開源軟件系統(tǒng)。
Android 平臺的設計使其具有很強的容錯能力。Android 手機設備運行在Linux 操作系統(tǒng)下,這使得其上運行的Android 應用程序具有很強的安全性。每一個Android 應用程序均運行在不同的進程中,這一進程對應一個Dalvik 虛擬機的實例。基于Java 虛擬機,Dalvik 為移動設備進行了優(yōu)化設計。Dalvik 虛擬機具有較小的內存占用,而且多個Dalvik 虛擬機的實例在手機設備中可以并發(fā)運行。Android 應用程序為托管代碼,所以,由應用程序而導致系統(tǒng)崩潰的可能性很小,這也降低了設備崩潰的可能性[4-8]。
隨著現(xiàn)在智能手機的普及, 其功能及存儲容量的增加, 一方面方便了用戶把更多信息放入手機中,進行管理; 另一方面也增加了手機泄密、手機隱私被竊、手機丟失后的信息欺詐的危害程度[9],手機一旦丟失將給個人隱私帶來極壞的后果,威脅到了個人隱私安全。本文采用后臺接收系統(tǒng)廣播自動監(jiān)聽手機的技術,為用戶找回手機提供了重要的線索,同時為公安人員破案提供證據(jù)。
根據(jù)Android 系統(tǒng)的特性和手機防盜取證功能的需求,首先,當手機用戶首次運行本程序時,需注冊用戶名和輸入密碼,用戶開啟防盜取證功能,并設置一個安全號碼后,程序將保存當前用戶SIM 卡和安全號碼。之后,該程序將每次監(jiān)聽手機開機啟動,通過讀取當前手機用戶SIM 卡碼與保存在數(shù)據(jù)庫中SIM 卡碼是否相同來判斷是否為手機合法用戶。如果相同,程序開啟后臺監(jiān)聽服務;否則,程序將以短信形式發(fā)送報警提示到指定的綁定手機上。當程序監(jiān)聽檢測到合法用戶通過安全號碼回復的短信內容時,以廣播機制為基礎,程序實現(xiàn)遠控仍需要一個傳送指令的途徑[10],這里我們以短信內容來進行相應功能的選擇,本系統(tǒng)收到短信后通過分析得出相應指令,分別執(zhí)行定時錄音、加密存儲并上傳至郵箱,抓拍照片、加密存儲并上傳至郵箱,獲取最新通話記錄和GPS定位功能。防盜取證流程如圖1所示。
受控手機開機后,本系統(tǒng)監(jiān)聽到Android系統(tǒng)發(fā)出的啟動廣播時,手機號是SIM 卡的標識[11]。系統(tǒng)啟動開機SIM卡更換判斷,首先判斷SharedPreferences中是否存儲了SIM卡號,如果為空,則將其保存;非空,用當前的SIM卡號與SharedPreferences中存儲的SIM卡號比較,若不相等,則向綁定的手機發(fā)送一條提示信息,通知手機已更換SIM卡,被通知的手機就可以得到換卡后的手機號碼。開機SIM卡驗證流程圖如圖2所示。
BroadcastReceiver 是消息傳遞、響應渠道[12],本系統(tǒng)通過繼承Service類進行后臺監(jiān)聽,通過內部類繼承BroadcastReceiver接收系統(tǒng)的短信廣播。Android操作系統(tǒng)在收到短信時系統(tǒng)會發(fā)送廣播,此時所有已注冊的BroadcastReceiver檢查注冊時的IntentFilter(過濾器),是否與發(fā)送的Intent相匹配,匹配則調用BroadcastReceiver的onReceiver()方法進行處理。在捕獲系統(tǒng)的短信廣播之后,對短信內容進行提取,并判斷是否為已設置的安全密碼,如果匹配成功,將喚醒名為menu的Activity類來自動回復功能菜單,用戶可以通過任何可以收發(fā)短信的手機接收我們系統(tǒng)發(fā)出的短信菜單,并且對菜單進行相應功能的回復操作,同時通過對標志位的更改達到調用針對功能菜單序號監(jiān)聽服務的目的。
對圖像信息和聲音信息的加密原理,借助Java自帶的加密開發(fā)包,將文件以輸入輸出流的方式進行讀取,然后在讀取文件的同時對文件執(zhí)行內部加密算法。為了提高執(zhí)行效率,引入IO緩沖區(qū),實現(xiàn)每次操縱1 kB大小的數(shù)據(jù)塊。針對多媒體文件,經過計算分析,提取文件首部的固定長度的數(shù)據(jù),通過MessageDigest類獲得摘要算法的實例[13],指定摘要算法計算其摘要。同時將該摘要值轉化為整型,將每次讀取的文件流加上該值,將每個數(shù)據(jù)塊轉化為密文。這樣,加密完成后的文件已不能正常讀取,從而實現(xiàn)了對文件的加密處理。在加密完成之后,將摘要值寫入特定配置文件,作為以后判斷多媒體文件在傳輸過程中是否經過篡改的判斷依據(jù)。當需要解密的時,可使用與加密相反的算法,讀取摘要文件,借助摘要數(shù)據(jù),實現(xiàn)對文件的解密處理。
監(jiān)聽撥打去電的方法是:撥打電話時,系統(tǒng)將廣播“android.intent.action.NE-W_OUTGOING_CALL” 消 息 ,對該消息關聯(lián) Receiver即可截獲到撥打電話事件。相關的權限為“android.permission.PROCESS_OUTGOING_CALLS”。
由于錄音時間較長,所以我們采用另外啟動一個線程來執(zhí)行錄音操作,將錄音后的文件以.amr的格式存儲到/sdcard/下,調用系統(tǒng)內部的加密算法進行加密并產生摘要,將處理后的加密文件和摘要共同以附件的形式發(fā)送到已綁定的郵箱內,作為以后取證和解密的備份。
核心代碼如下:
Intent intent = getIntent();
String Number = intent.getStringExtra("Number");
Intent intentDial = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+Number));
startActivity(intentDial);
當調用此功能時,首先初始化相機,然后調用照相方法,并判斷是否已有名為MyPhotos的文件夾,若無則創(chuàng)建文件夾,將抓拍的照片存儲到此文件夾中,然后調用加密算法,進行加密處理,并產生摘要,將處理后的加密信息和摘要以附件形式發(fā)送到綁定郵箱內。
核心代碼如下:
mSurfaceView=(SurfaceView)findViewById(R.id.camera); mSurfaceView.setOnClickListener(this);
mSurfaceHolder=mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
Android平臺上的通話記錄是以Content Provider的形式存儲在手機上的,因此需要使用ContentResolver來查詢通話記錄,返回Cursor對象。
核心代碼如下:
Final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI,new String[]
{
CallLog.Calls.NUMBER,
CallLog.Calls.CACHED_NAME,
CallLog.Calls.TYPE,
CallLog.Calls.DATE
},null,null,
CallLog.Calls.DEFAULT_SORT_ORDER);
cursor.getCount();
位置服務又稱定位服務或基于位置的服務,融合了GPS定位、移動通信、導航等多種技術,提供了與空間位置相關的綜合應用服務。Android平臺提供了位置服務的API,在開發(fā)過程中主要用到Location Manager和Location Providers兩個對象[14-16]。因此通過調用系統(tǒng)的Location Manager 來獲取地理位置等相關信息。調用GPS需要添加的權限為
核心代碼如下:
LocationManager locationManager = (LocationManager)Function05GPSLocation.this.getSystemService(Context.LOCATION_S ERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,new TestLocationListen-er());
發(fā)送短信至受控手機,可以進行錄音取證測試。取證內容將直接發(fā)送至綁定郵箱當中,供取證時下載使用。郵件顯示內容如圖3所示。
圖3 錄音取證功能郵件查看圖
發(fā)送短信至受控手機,進行抓拍取證,取證內容將直接發(fā)送至綁定郵箱當中,供取證時下載使用。郵件顯示內容如圖4所示。
圖4 照片取證功能郵件查詢圖
發(fā)送短信至受控手機,進行獲取由受控手機回復的最新通話記錄信息。同時將通話記錄上傳至綁定郵箱。獲取通話記錄的測試結果如圖5所示。
圖5 獲取最新通話記錄功能測試
在郵件中接收的內容如圖6所示。
發(fā)送短信至受控手機,可以進行GPS位置查詢的測試,收到由受控手機回復的當前GPS經度緯度數(shù)據(jù)。獲取GPS信息如圖7所示。
圖6 郵件接收圖
圖7 GPS定位功能測試圖(監(jiān)控端-受控端)
本文從Android的廣播機制、開機對SIM卡驗證,后天監(jiān)聽等多個角度分析了Android 手機防盜追蹤機制,并針對具體的安全功能給出了詳細的實現(xiàn)過程及核心代碼,本系統(tǒng)為丟失手機用戶找回手機提供了重要線索,具有廣泛的應用前景和重要的實踐意義。
[1] Ed Burnette.Android基礎教程 [M].3版. 田俊靜,張 波,黃湘情等,譯. 北京:人民郵電出版社,2010.
[2] 靳 巖,姚尚朗.Google Android開發(fā)入門與實踐[M]. 北京:人民郵電出版社,2009:3-9.
[3] 佘志龍, 陳昱勛, 鄭名杰,等.Google Android SDK開發(fā)范例大全[M].2版 . 北京:人民郵電出版社,2010.
[4] Reto Meier. Android 2 高級編程[M]. 2版. 王 超譯.北京:清華大學出版社, 2010.
[5] 吳亞峰,索依娜.Android核心技術與實例詳解[M].北京:電子工業(yè)出版社,2010.
[6] 趙書蘭.Android開發(fā)與實戰(zhàn)[M].北京:電子工業(yè)出版社,2013.
[7] 楊豐盛.Android應用開發(fā)揭秘[M].北京:機械工業(yè)出版社,2010.
[8] 陳 文,郭依正.深入理解Android網絡編程:技術詳解與最佳實踐[M]. 北京:機械工業(yè)出版社,2013.
[9] 杜林鋒.手機信息安全不可忽視[J].內蒙古科技與經濟,2007(7):78-80.
DU Lin-feng.Mobile phone information security can not be ignored[J].Inner Mongolia Science Technology & Economy,2007(7):78-80.
[10] 李中平,邱健峰,李 璐,等.Android 手機遠程控制關鍵技術分析[J].計算機應用與軟件,2013,30(4):113-115.
LI Zhong-ping, QIU Jian-feng,Li Lu,etal. Analysing key Technologies of Android Mobile phone’s remote control[J]. 2013,30(4):113-115.
[11] 張京京,閆曉蔚,蔡建順,等.基于Android 系統(tǒng)的手機隱私安全的研究與實現(xiàn)[J].信息網絡安全,2012(5):59-63.
ZHANG Jing-jing, YAN Xiao-wei, CAI Jian-shun,etal.Android System based on Mobile Phone Privacy Information Security Research and Implementation[J]. Netinfo Security,2012(5):59-63.
[12] 蔡羅成.Android 后臺監(jiān)聽實現(xiàn)機制淺析[J].信息安全與通信保密,2010(6):39-41.
CAI Luo-cheng. Discussion on Mechanism for Backstage Monitors of Android [J]. Information Security and Communication Privacy,2010(6):39-41.
[13] 張 富,江 冰,黃 佳,等.基于Android 的個人云安全存儲系統(tǒng)[J]. 科學技術與工程,2012,27(12):7100-7108.
ZHANG Fu,JIANG Bing,HUANG Jia,etal. Android-based Personal Cloud Secure Storage System [J]. Science Technology and Engineering,2012,27(12):7100-7108.
[14] 劉勝前,陳立定,任志剛.基于Android移動平臺和GPS應用服務研究[J].信息技術,2012(1):82-85.
LIU Sheng-qian,CHEN Li-ding,REN Zhi-gang. Research on application service based on Android mobile platform and GPS[J]. Information Technology,2012(1):82-85.
[15] 李 錚.基于Android 的位置跟蹤系統(tǒng)設計與實現(xiàn)[J].承德石油高等專科學校學報,2013,15(5):33-36.
LI Zheng. Design and Implementation of Position-tracking System Based on Android Platform[J]. Journal of Chengde Petroleum College,2013,15(5):33-36.
[16] 肖 飛,喬榮愛.基于Android 的校園報警平臺的設計與實現(xiàn)[J].計算機與現(xiàn)代化,2013(8):222-228.
XIAO Fei,QIAO Rong-ai. Design and Implementation of Campus Alarm System Based on Android[J]. Computer and Modemization,2013(8):222-228.
·名人名言·
沒有實驗,任何新的東西都不能深知。
——培根