張竹嫻
(長沙大學(xué)電子信息與電氣工程系,湖南長沙410022)
安卓(Android)是第一個(gè)基于Linux的開源手機(jī)操作系統(tǒng),通過操作系統(tǒng),用戶界面和應(yīng)用軟件構(gòu)成這個(gè)系統(tǒng)平臺(tái).由于安卓系統(tǒng)的開放性,程序員及手機(jī)游戲編寫愛好者可以通過使用Eclipse平臺(tái),用JAVA語言編寫適用各種需求的手機(jī)程序.這些程序可以很方便的通過Eclipse轉(zhuǎn)化成手機(jī)APP程序,從而實(shí)現(xiàn)在安卓手機(jī)上的應(yīng)用.正是這一開放又自由的開發(fā)環(huán)境,使得安卓手機(jī)占有了越來越大的市場份額,根據(jù)鳳凰網(wǎng)近期的調(diào)研報(bào)告,正在使用手機(jī)的人群中有54.7%的人使用安卓手機(jī),而近期打算購買手機(jī)的人群中有89.5%的人打算購買安卓手機(jī),可見安卓手機(jī)應(yīng)用之廣.
GPS(Global Positioning System)是20世紀(jì)70年代由美國陸??杖娐?lián)合研制的新一代空間衛(wèi)星導(dǎo)航定位系統(tǒng).其主要目的是為陸、海、空三大領(lǐng)域提供實(shí)時(shí)、全天候和全球性的導(dǎo)航服務(wù),它的民用系統(tǒng)產(chǎn)品占據(jù)了我國市場份額的90%以上[1].目前市場上只要下載Baidu APP并安裝相應(yīng)的程序,就可以實(shí)現(xiàn)手機(jī)位置的實(shí)時(shí)追蹤,然而這種方式的保密性并不高,所獲取的地址很容易被別的通信設(shè)備截獲.甚至,有的用戶的地址信息有可能在個(gè)人不知情的情況下被別人獲取.本文通過Matlab模擬GPS信號的捕獲過程,分析了GPS信號碼的特性.并利用JAVA語言編寫了GPS系統(tǒng)在安卓手機(jī)的實(shí)現(xiàn)過程,得出了個(gè)人地址信息被獲取的主要方式,最后提出增加個(gè)人手機(jī)地理位置信息保密性的解決方案.
GPS系統(tǒng)包括三個(gè)部分:空間衛(wèi)星,地面監(jiān)控,用戶接收機(jī).空間星座部分由24顆衛(wèi)星組成,每一顆衛(wèi)星都包含了衛(wèi)星星歷和時(shí)間信息,這些衛(wèi)星以高精度的星載原子頻率標(biāo)準(zhǔn)作基準(zhǔn)發(fā)射導(dǎo)航信號[1].地面監(jiān)控部分主要由1個(gè)主控站,4個(gè)地面天線站和6個(gè)監(jiān)測站組成,主要負(fù)責(zé)完成和協(xié)調(diào)地面監(jiān)控,同時(shí)將衛(wèi)星的一些重要參數(shù)傳送到注入站.如圖1所示,要得到GPS信號的具體信息,首先用MATLAB生成并捕獲GPS信號,然后分析得到信號的具體參數(shù),也就是用戶具體位置,最后用Eclipse軟件模擬Android操作環(huán)境該用戶具體信息.最后通過分析整個(gè)過程的安全漏洞,給出幾點(diǎn)解決方案.
圖1 系統(tǒng)整體方案
GPS導(dǎo)航系統(tǒng)的基本原理是測量出已知位置的衛(wèi)星到用戶接收機(jī)之間的距離,根據(jù)多普勒頻移并綜合多顆衛(wèi)星的數(shù)據(jù)得出接收機(jī)的具體位置.為了跟蹤GPS衛(wèi)星信號并對其進(jìn)行解碼,首先接收機(jī)必須要捕獲到GPS信號,然后將捕獲到的GPS信號的一些重要參數(shù)即跟蹤過程立刻傳送給地面基站,最后根據(jù)數(shù)據(jù),接收機(jī)就可以得到衛(wèi)星的導(dǎo)航電文[2].因此,GPS信號捕獲有需要兩個(gè)重要參數(shù):C/A碼(即GPS衛(wèi)星發(fā)出的偽隨機(jī)碼,即跟蹤過程數(shù)據(jù))的起始點(diǎn)和載波頻率[3].有了這兩個(gè)參數(shù),我們就可以計(jì)算得出已知位置的衛(wèi)星到用戶接收機(jī)之間的距離.采集到的一組數(shù)據(jù)通常包括幾個(gè)衛(wèi)星的信號,每個(gè)衛(wèi)星的C/A碼不同,多普勒頻移也不同.針對某一個(gè)特定的衛(wèi)星信號,捕獲程序要找到C/A碼的起始點(diǎn),并利用這個(gè)信息對頻譜解擴(kuò),頻譜解擴(kuò)以后,輸出信號就變成了一個(gè)連續(xù)波信號,這樣就可以得到它的載波頻率[4].
本次設(shè)計(jì)采用傳統(tǒng)的C/A碼捕獲方式,通過Matlab仿真捕獲到的C/A碼起始點(diǎn)及載波頻率流程圖如圖所示:
圖2 C/A碼捕獲程序流程圖
在實(shí)際捕獲過程的當(dāng)中,GPS接收機(jī)捕獲到的衛(wèi)星信號包括有C/A碼、D碼、載波,所以在對C/A碼的捕獲進(jìn)行仿真時(shí),先模擬生成GPS衛(wèi)星信號,下面是捕獲C/A碼的主要程序.
捕獲時(shí)先對生成的GPS衛(wèi)星信號數(shù)字化,該程序中采樣頻率為5MHZ,步長1000HZ,數(shù)字化之后一共有5000個(gè)采樣點(diǎn),然后生成本地C/A碼并對其做傅立葉變換,將數(shù)字化之后的衛(wèi)星信號與經(jīng)過傅立葉變換的C/A碼信號循環(huán)卷積,找出卷積結(jié)果中的峰值點(diǎn),這個(gè)峰值點(diǎn)就為C/A碼的起始點(diǎn),圖3顯示了C/A碼捕獲示意圖.
圖3 C/A碼起點(diǎn)捕獲圖
從圖中我們可以看出來在5000個(gè)采樣點(diǎn)中,在第4000-5000之間的某個(gè)采樣點(diǎn)本地產(chǎn)生的C/A碼與輸入信號相匹配,出現(xiàn)了一個(gè)峰值,通過工作窗口可以知道起始點(diǎn)具體位置為4751,載波頻率為1.25×106hz,捕獲到C/A碼起始點(diǎn)之后,接收機(jī)通過時(shí)間延遲器,使本次C/A碼與輸入信號中的C/A碼對齊,而對齊所用的時(shí)間就是信號從衛(wèi)星傳到接收機(jī)所用的時(shí)間,將其乘以電磁波的傳播速度,便可以得到給衛(wèi)星距離用戶接收機(jī)的距離.
通過程序?qū)PS定位進(jìn)行仿真,首先編寫程序模擬出了運(yùn)動(dòng)的衛(wèi)星在軌道上的運(yùn)行狀態(tài),然后輸入了衛(wèi)星導(dǎo)航電文,顯示出了可見衛(wèi)星在軌道上的位置,最后通過計(jì)算得到了用戶在空間的坐標(biāo).
圖4 GPS衛(wèi)星坐標(biāo)圖
上圖顯示了5顆可見衛(wèi)星分別分布在不同的軌道上,通過Matlab工作窗口可以知道用戶在空間的位置坐標(biāo)為(7757.8,-844.61,2491.9).
圖5 軟件流程圖
通過上述章節(jié),模擬了GPS信號的捕獲并得出了該用戶的位置坐標(biāo),下面通過定位技術(shù)、地圖技術(shù)和Android操作系統(tǒng),將得到的GPS信號可視化的向用戶展現(xiàn)當(dāng)前位置.首先需要地圖,本次設(shè)計(jì)中采用中國百度公司提供的baidu Map api.該地圖涵蓋了地圖應(yīng)用的全部方面,提供了地圖構(gòu)建、熱點(diǎn)搜索、線路規(guī)劃等應(yīng)用接口.本次設(shè)計(jì)僅使用地圖構(gòu)建的接口.設(shè)計(jì)的思路是首先開發(fā)一個(gè)獨(dú)立的不附帶其他功能的定位界面,實(shí)現(xiàn)之后在其基礎(chǔ)上增加一個(gè)返回按鈕和一個(gè)發(fā)送按鈕.并加入主界面,把主界面中的“我的位置”按鈕與之前做的定位Activity關(guān)聯(lián)起來,再在主界面中加入“短信發(fā)送”、“版本信息”、“退出程序”按鈕.最后將該用戶的坐標(biāo)導(dǎo)入到程序中,模擬仿真完成GPS信號的捕獲、解碼及可視化過程.
定位模塊的實(shí)現(xiàn)需要引用百度公司提供的baidumapapi.jar開發(fā)包,引入該開發(fā)包后,可以在布局文件中添加一個(gè)MapView,一個(gè)MapView對應(yīng)著一個(gè)地圖視圖,然后在代碼里通過對MapView相關(guān)屬性的設(shè)置和OverlayItem的繪制后,即可在展現(xiàn)出一個(gè)完整的地圖和在地圖中顯示對應(yīng)的信息.系統(tǒng)定位流程如圖6所示.
圖6 系統(tǒng)定位流程圖
需要注意的是,地圖采用的是在線地圖,需要在手機(jī)接通網(wǎng)絡(luò)后才可以正常顯示,所以開發(fā)時(shí)需要在AndroidManifest.xml文件中做相關(guān)權(quán)限的聲明:
<uses-permission android:name="android.permission.INTERNET"/>
當(dāng)系統(tǒng)成功定位后,會(huì)把地圖的中心點(diǎn)移動(dòng)到所定位到的位置,同時(shí)也會(huì)在當(dāng)前位置上用標(biāo)記把位置標(biāo)識(shí)出來,具體的實(shí)現(xiàn)效果如圖7所示.
圖7 定位模塊界面
當(dāng)用戶成功定位到當(dāng)前位置后,可以通過界面右上角的發(fā)送按鈕來發(fā)送當(dāng)前位置信息,發(fā)送方式可以選擇通過短信發(fā)送或通過網(wǎng)絡(luò)發(fā)送兩種方式.
當(dāng)用戶選擇通過短信發(fā)送時(shí),系統(tǒng)會(huì)通過調(diào)用短信Intent來打開短信發(fā)送界面,并且會(huì)把當(dāng)前的地理位置信息傳遞到短信內(nèi)容中,用戶可以輸入一個(gè)目標(biāo)手機(jī)號碼然后發(fā)送.跳轉(zhuǎn)時(shí)我們只需要聲明一個(gè)Intent.ACTION_SENDTO并設(shè)置其Intent.FLAG_ACTIVITY_NEW_TASK和短信的內(nèi)容(通過putExtra傳遞),最后通過startActivity方法來跳轉(zhuǎn)即可.短信發(fā)送流程如圖8所示:具體的實(shí)現(xiàn)效果如圖9所示.
圖8 短信發(fā)送流程圖
圖9 位置發(fā)送界面
本測試為測試系統(tǒng)的短信發(fā)送信息調(diào)用模塊是否正常,通過獲取定位信息后,點(diǎn)擊“通過短信發(fā)送”選項(xiàng)來調(diào)用短信模塊來傳遞和發(fā)送定位信息.
圖10 短信發(fā)送測試
首先點(diǎn)擊地圖界面右上角的發(fā)送按鈕,在彈出的菜單中選“通過短信發(fā)送”由此可以得到以下結(jié)果.結(jié)果如圖10所示.
由上圖我們可以看到,系統(tǒng)已經(jīng)成功調(diào)用打開了短信編輯界面,并且短信內(nèi)容也已經(jīng)默認(rèn)了剛剛獲取得到的地理位置信息,由此可見系統(tǒng)的短信發(fā)送模塊是沒問題的.
隨著智能手機(jī)的廣泛使用,手機(jī)里存儲(chǔ)著越來越多的私人信息,這些信息包含用戶的個(gè)人及生意信息,甚至是用戶密碼,銀行帳號以及用戶具體位置等[5].因此,手機(jī)的安全性已經(jīng)成為一個(gè)越來越不容忽視的問題.智能手機(jī)往往注重建立協(xié)議去創(chuàng)建更好的服務(wù)而忽視了手機(jī)的安全風(fēng)險(xiǎn).手機(jī)黑客們最易攻擊的方向來自于手機(jī)自身的操作系統(tǒng).上面的章節(jié)里模擬了獲取用戶位置的過程,其中可以設(shè)置將用戶的位置以短信的方式發(fā)送到目的手機(jī)上,而目的手機(jī)可能是任何終端,用戶的位置信息可能輕易被暴露.那么如何防止手機(jī)的信息被輕易盜取?首先,用戶需謹(jǐn)慎下載APP,從以上的模擬過程我們可以看出,如果用戶手機(jī)里安裝了相應(yīng)的APP,手機(jī)黑客們甚至不需要經(jīng)過用戶的同意,就可以設(shè)置用戶手機(jī)自動(dòng)發(fā)送位置到指定手機(jī),因此,手機(jī)的安裝軟件必須是從比較權(quán)威的網(wǎng)站下載軟件.其次,在不使用的時(shí)候,用戶的GPS發(fā)送模塊最好處于關(guān)閉狀態(tài),這樣即使手機(jī)不小心安裝了自動(dòng)獲取位置的APP,手機(jī)黑客們也沒有那么容易成功.最后,目前一種比較有效的安全性辦法叫做安全盒,它是一種安全軟件,一旦用戶的設(shè)備被確定使用,所有的信息會(huì)被放置在一個(gè)叫做安全盒的軟件中,安全盒覆蓋了手機(jī)的整個(gè)應(yīng)用,如果黑客入侵手機(jī),也必須通過安全盒,這就阻止了很大一部分的入侵.
本文模擬了GPS信號的捕獲/分析及信號可視化的過程,分析了每個(gè)過程可能出現(xiàn)的安全性問題.分析表明,雖然GPS導(dǎo)航技術(shù)已廣泛應(yīng)用于各個(gè)領(lǐng)域,它的安全性能并不高.目前提出的解決方案分以下幾個(gè)方面:用戶自身謹(jǐn)慎下載APP已報(bào)賬手機(jī)操作系統(tǒng)安全、在不使用的時(shí)候?qū)PS模塊處于關(guān)閉狀態(tài)以及下載安全盒軟件防止入侵.但是隨著智能手機(jī)信息的私密性越來越強(qiáng),手機(jī)黑客們可能運(yùn)用的手段層出不窮,如何能更好的保障手機(jī)用戶位置信息的安全,依然是以后研究的重要議題.
[1]楊俊,武奇生.GPS基本原理及其Matlab仿真[M].西安:西安電子科技大學(xué)出版社,2006.
[2]許其風(fēng).GPS衛(wèi)星導(dǎo)航定位與精密定位[M].北京:解放軍出版社,1989.
[3]程一沛.基于GPS/GIS/GPRS的車輛監(jiān)控管理系統(tǒng)的設(shè)計(jì)與開發(fā)[D].西安:西安科技大學(xué)碩士學(xué)位論文,2009.
[4]劉小磊.GPS車輛監(jiān)控系統(tǒng)車載終端的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱理工大學(xué)碩士學(xué)位論文,2010.
[5]周小星.中國移動(dòng)數(shù)據(jù)與信息業(yè)務(wù)運(yùn)營管理研究[D].南京:南京航空航天大學(xué)碩士學(xué)位論文,2011.