張竹嫻
(長沙大學電子信息與電氣工程系,湖南長沙410022)
安卓(Android)是第一個基于Linux的開源手機操作系統,通過操作系統,用戶界面和應用軟件構成這個系統平臺.由于安卓系統的開放性,程序員及手機游戲編寫愛好者可以通過使用Eclipse平臺,用JAVA語言編寫適用各種需求的手機程序.這些程序可以很方便的通過Eclipse轉化成手機APP程序,從而實現在安卓手機上的應用.正是這一開放又自由的開發環境,使得安卓手機占有了越來越大的市場份額,根據鳳凰網近期的調研報告,正在使用手機的人群中有54.7%的人使用安卓手機,而近期打算購買手機的人群中有89.5%的人打算購買安卓手機,可見安卓手機應用之廣.
GPS(Global Positioning System)是20世紀70年代由美國陸海空三軍聯合研制的新一代空間衛星導航定位系統.其主要目的是為陸、海、空三大領域提供實時、全天候和全球性的導航服務,它的民用系統產品占據了我國市場份額的90%以上[1].目前市場上只要下載Baidu APP并安裝相應的程序,就可以實現手機位置的實時追蹤,然而這種方式的保密性并不高,所獲取的地址很容易被別的通信設備截獲.甚至,有的用戶的地址信息有可能在個人不知情的情況下被別人獲取.本文通過Matlab模擬GPS信號的捕獲過程,分析了GPS信號碼的特性.并利用JAVA語言編寫了GPS系統在安卓手機的實現過程,得出了個人地址信息被獲取的主要方式,最后提出增加個人手機地理位置信息保密性的解決方案.
GPS系統包括三個部分:空間衛星,地面監控,用戶接收機.空間星座部分由24顆衛星組成,每一顆衛星都包含了衛星星歷和時間信息,這些衛星以高精度的星載原子頻率標準作基準發射導航信號[1].地面監控部分主要由1個主控站,4個地面天線站和6個監測站組成,主要負責完成和協調地面監控,同時將衛星的一些重要參數傳送到注入站.如圖1所示,要得到GPS信號的具體信息,首先用MATLAB生成并捕獲GPS信號,然后分析得到信號的具體參數,也就是用戶具體位置,最后用Eclipse軟件模擬Android操作環境該用戶具體信息.最后通過分析整個過程的安全漏洞,給出幾點解決方案.

圖1 系統整體方案
GPS導航系統的基本原理是測量出已知位置的衛星到用戶接收機之間的距離,根據多普勒頻移并綜合多顆衛星的數據得出接收機的具體位置.為了跟蹤GPS衛星信號并對其進行解碼,首先接收機必須要捕獲到GPS信號,然后將捕獲到的GPS信號的一些重要參數即跟蹤過程立刻傳送給地面基站,最后根據數據,接收機就可以得到衛星的導航電文[2].因此,GPS信號捕獲有需要兩個重要參數:C/A碼(即GPS衛星發出的偽隨機碼,即跟蹤過程數據)的起始點和載波頻率[3].有了這兩個參數,我們就可以計算得出已知位置的衛星到用戶接收機之間的距離.采集到的一組數據通常包括幾個衛星的信號,每個衛星的C/A碼不同,多普勒頻移也不同.針對某一個特定的衛星信號,捕獲程序要找到C/A碼的起始點,并利用這個信息對頻譜解擴,頻譜解擴以后,輸出信號就變成了一個連續波信號,這樣就可以得到它的載波頻率[4].
本次設計采用傳統的C/A碼捕獲方式,通過Matlab仿真捕獲到的C/A碼起始點及載波頻率流程圖如圖所示:

圖2 C/A碼捕獲程序流程圖
在實際捕獲過程的當中,GPS接收機捕獲到的衛星信號包括有C/A碼、D碼、載波,所以在對C/A碼的捕獲進行仿真時,先模擬生成GPS衛星信號,下面是捕獲C/A碼的主要程序.

捕獲時先對生成的GPS衛星信號數字化,該程序中采樣頻率為5MHZ,步長1000HZ,數字化之后一共有5000個采樣點,然后生成本地C/A碼并對其做傅立葉變換,將數字化之后的衛星信號與經過傅立葉變換的C/A碼信號循環卷積,找出卷積結果中的峰值點,這個峰值點就為C/A碼的起始點,圖3顯示了C/A碼捕獲示意圖.

圖3 C/A碼起點捕獲圖
從圖中我們可以看出來在5000個采樣點中,在第4000-5000之間的某個采樣點本地產生的C/A碼與輸入信號相匹配,出現了一個峰值,通過工作窗口可以知道起始點具體位置為4751,載波頻率為1.25×106hz,捕獲到C/A碼起始點之后,接收機通過時間延遲器,使本次C/A碼與輸入信號中的C/A碼對齊,而對齊所用的時間就是信號從衛星傳到接收機所用的時間,將其乘以電磁波的傳播速度,便可以得到給衛星距離用戶接收機的距離.
通過程序對GPS定位進行仿真,首先編寫程序模擬出了運動的衛星在軌道上的運行狀態,然后輸入了衛星導航電文,顯示出了可見衛星在軌道上的位置,最后通過計算得到了用戶在空間的坐標.

圖4 GPS衛星坐標圖
上圖顯示了5顆可見衛星分別分布在不同的軌道上,通過Matlab工作窗口可以知道用戶在空間的位置坐標為(7757.8,-844.61,2491.9).

圖5 軟件流程圖
通過上述章節,模擬了GPS信號的捕獲并得出了該用戶的位置坐標,下面通過定位技術、地圖技術和Android操作系統,將得到的GPS信號可視化的向用戶展現當前位置.首先需要地圖,本次設計中采用中國百度公司提供的baidu Map api.該地圖涵蓋了地圖應用的全部方面,提供了地圖構建、熱點搜索、線路規劃等應用接口.本次設計僅使用地圖構建的接口.設計的思路是首先開發一個獨立的不附帶其他功能的定位界面,實現之后在其基礎上增加一個返回按鈕和一個發送按鈕.并加入主界面,把主界面中的“我的位置”按鈕與之前做的定位Activity關聯起來,再在主界面中加入“短信發送”、“版本信息”、“退出程序”按鈕.最后將該用戶的坐標導入到程序中,模擬仿真完成GPS信號的捕獲、解碼及可視化過程.
定位模塊的實現需要引用百度公司提供的baidumapapi.jar開發包,引入該開發包后,可以在布局文件中添加一個MapView,一個MapView對應著一個地圖視圖,然后在代碼里通過對MapView相關屬性的設置和OverlayItem的繪制后,即可在展現出一個完整的地圖和在地圖中顯示對應的信息.系統定位流程如圖6所示.

圖6 系統定位流程圖
需要注意的是,地圖采用的是在線地圖,需要在手機接通網絡后才可以正常顯示,所以開發時需要在AndroidManifest.xml文件中做相關權限的聲明:
<uses-permission android:name="android.permission.INTERNET"/>
當系統成功定位后,會把地圖的中心點移動到所定位到的位置,同時也會在當前位置上用標記把位置標識出來,具體的實現效果如圖7所示.

圖7 定位模塊界面
當用戶成功定位到當前位置后,可以通過界面右上角的發送按鈕來發送當前位置信息,發送方式可以選擇通過短信發送或通過網絡發送兩種方式.
當用戶選擇通過短信發送時,系統會通過調用短信Intent來打開短信發送界面,并且會把當前的地理位置信息傳遞到短信內容中,用戶可以輸入一個目標手機號碼然后發送.跳轉時我們只需要聲明一個Intent.ACTION_SENDTO并設置其Intent.FLAG_ACTIVITY_NEW_TASK和短信的內容(通過putExtra傳遞),最后通過startActivity方法來跳轉即可.短信發送流程如圖8所示:具體的實現效果如圖9所示.

圖8 短信發送流程圖

圖9 位置發送界面
本測試為測試系統的短信發送信息調用模塊是否正常,通過獲取定位信息后,點擊“通過短信發送”選項來調用短信模塊來傳遞和發送定位信息.

圖10 短信發送測試
首先點擊地圖界面右上角的發送按鈕,在彈出的菜單中選“通過短信發送”由此可以得到以下結果.結果如圖10所示.
由上圖我們可以看到,系統已經成功調用打開了短信編輯界面,并且短信內容也已經默認了剛剛獲取得到的地理位置信息,由此可見系統的短信發送模塊是沒問題的.
隨著智能手機的廣泛使用,手機里存儲著越來越多的私人信息,這些信息包含用戶的個人及生意信息,甚至是用戶密碼,銀行帳號以及用戶具體位置等[5].因此,手機的安全性已經成為一個越來越不容忽視的問題.智能手機往往注重建立協議去創建更好的服務而忽視了手機的安全風險.手機黑客們最易攻擊的方向來自于手機自身的操作系統.上面的章節里模擬了獲取用戶位置的過程,其中可以設置將用戶的位置以短信的方式發送到目的手機上,而目的手機可能是任何終端,用戶的位置信息可能輕易被暴露.那么如何防止手機的信息被輕易盜取?首先,用戶需謹慎下載APP,從以上的模擬過程我們可以看出,如果用戶手機里安裝了相應的APP,手機黑客們甚至不需要經過用戶的同意,就可以設置用戶手機自動發送位置到指定手機,因此,手機的安裝軟件必須是從比較權威的網站下載軟件.其次,在不使用的時候,用戶的GPS發送模塊最好處于關閉狀態,這樣即使手機不小心安裝了自動獲取位置的APP,手機黑客們也沒有那么容易成功.最后,目前一種比較有效的安全性辦法叫做安全盒,它是一種安全軟件,一旦用戶的設備被確定使用,所有的信息會被放置在一個叫做安全盒的軟件中,安全盒覆蓋了手機的整個應用,如果黑客入侵手機,也必須通過安全盒,這就阻止了很大一部分的入侵.
本文模擬了GPS信號的捕獲/分析及信號可視化的過程,分析了每個過程可能出現的安全性問題.分析表明,雖然GPS導航技術已廣泛應用于各個領域,它的安全性能并不高.目前提出的解決方案分以下幾個方面:用戶自身謹慎下載APP已報賬手機操作系統安全、在不使用的時候將GPS模塊處于關閉狀態以及下載安全盒軟件防止入侵.但是隨著智能手機信息的私密性越來越強,手機黑客們可能運用的手段層出不窮,如何能更好的保障手機用戶位置信息的安全,依然是以后研究的重要議題.
[1]楊俊,武奇生.GPS基本原理及其Matlab仿真[M].西安:西安電子科技大學出版社,2006.
[2]許其風.GPS衛星導航定位與精密定位[M].北京:解放軍出版社,1989.
[3]程一沛.基于GPS/GIS/GPRS的車輛監控管理系統的設計與開發[D].西安:西安科技大學碩士學位論文,2009.
[4]劉小磊.GPS車輛監控系統車載終端的設計與實現[D].哈爾濱:哈爾濱理工大學碩士學位論文,2010.
[5]周小星.中國移動數據與信息業務運營管理研究[D].南京:南京航空航天大學碩士學位論文,2011.