引言
前段時間在知乎上回答了一個關於手機定位相關的問題,被一個知友問到“加一個人微信聊天之后,收到了人家的一個視頻,隨后也把這個人及他發的視頻都刪除了,幾天后在網吧上網,被別人定位到了,勒索了一筆錢,說‘再來這一片,還能找到你’,他的位置是如何被定位的?“。地理位置是一種很隱私的信息,嚴重關系到個人的生命財產安全,當然一些設備也有很好的隱私保護政策,在未經用戶允許的情況下,位置信息是不會被竊取的。但,現實生活中絕大部分人都是非科班出身的,並不能有效的防范位置信息泄露,有太多的方式可以誘導用戶應允獲取用戶隱私信息,也有不少方式不需要用戶同意就可以知道其位置信息。本人結合自己已有的知識儲備,並查找了一些資料,重新溫習了定位相關知識,本文就總結一下幾種常見的定位技術及其原理。
利用手機常用的定位方式有:
- 衛星定位(GPS,北斗,伽利略,Glonass);
- 移動基站定位;
- WiFi輔助定位;
- AGPS定位。
1.衛星定位。
常見的衛星定位系統有GPS、北斗、伽利略和Glonass,雖然這些系統提供的服務有些差異,但其背后的定位原理都是相同,現在以應用最廣泛的GPS為例來介紹衛星定位。
GPS(Global Positioning System)即全球定位系統,是由美國建立的一個衛星導航定位系統,利用該系統,用戶可以在全球范圍內實現全天候、連續、實時的三維導航定位和測速;另外,利用該系統,用戶還能夠進行高精度的時間傳遞和高精度的精密定位。
1.1GPS系統構成
GPS系統包括三大部分:空間部分--GPS衛星星座;地面控制部分--地面監控部分;用戶設備部分--GPS信號接收機。如圖1:
圖1 GPS系統構成
1.1.1GPS工作衛星及其星座
21顆工作衛星和3顆在軌備用衛星組成GPS衛星星座。24顆衛星距地高度為20200km,運行周期為11小時58分(恆星時12小時),均勻分布在6個軌道平面內,軌道傾角為55度,各個軌道平面之間相距60度,每個軌道平面內各顆衛星之間相差90度。衛星通過天頂時,衛星可見時間為5個小時,在地球表面上任何地點任何時刻,在高度角15度以上,平均可同時觀測到6顆衛星,最多可達9顆衛星。示例如圖2:
圖2 GPS衛星網絡
為了解算測站的三維坐標,必須觀測4顆GPS衛星,稱為定位星座。
1.1.2地面監控系統
對於導航定位來說,GPS衛星是一動態已知點。星的位置是依據衛星發射的星歷--描述衛星運動及其軌道的參數算得的。每顆GPS衛星所播發的星歷,是由地面監控系統提供的。衛星上的各種設備是否正常工作,以及衛星是否一直沿着預定軌道運行,都要由地面設備進行監測和控制。地面監控系統另一個重要作用是保持各顆衛星的時間,求出鍾差,然后由地面注入站發給衛星,衛星再由導航電文發給用戶設備。
GPS工作衛星的地面監控系統包括一個主控站、三個注入站和五個監測站。主控站的作用是根據各監控站對GPS的觀測數據,計算出衛星的星歷和衛星鍾的改正參數等,並將這些數據通過注入站注入到衛星中去;同時,它還對衛星進行控制,向衛星發布指令,當工作衛星出現故障時,調度備用衛星,替代失效的工作衛星工作;另外,主控站也具有監控站的功能;監控站主要任務是為主控站提供衛星的觀測數據;注入站任務是將主控站發來的導航電文注入到相應衛星的存儲器。
1.1.3GPS信號接收機
能夠捕獲到按一定衛星高度截止角所選擇的待測衛星的信號,並跟蹤這些衛星的運行,對所接收到的GPS信號進行變換、放大和處理,以便測量出GPS信號從衛星到接收機天線的傳播時間,解譯出GPS衛星所發送的導航電文,實時地計算出測站的三維位置,甚至三維速度和時間。
1.2GPS定位原理
GPS導航系統的基本原理是測量出已知位置的衛星到用戶接收機之間的距離,然后綜合多顆衛星的數據就可知道接收機的具體位置。要達到這一目的,衛星的位置可以根據星載時鍾所記錄的時間在衛星星歷中查出。而用戶到衛星的距離則通過紀錄衛星信號傳播到用戶所經歷的時間,再將其乘以光速得到(由於大氣層電離層的干擾,這一距離並不是用戶與衛星之間的真實距離,而是偽距)。
當GPS衛星正常工作時,會不斷地用1和0二進制碼元組成的偽隨機碼(簡稱偽碼)發射導航電文。導航電文包括衛星星歷、工作狀況、時鍾改正、電離層時延修正、大氣折射修正等信息。GPS導航系統衛星部分的作用就是不斷地發射導航電文。然而,由於用戶接受機使用的時鍾與衛星星載時鍾不可能總是同步,所以除了用戶的三維坐標x、y、z外,還要引進一個變量 t 即衛星與接收機之間的時間差作為未知數,然后用4個方程將這4個未知數解出來。所以如果想知道接收機所處的位置,至少要能接收到4個衛星的信號。如下圖所示:
圖3 GPS位置計算方法
從以上四個方程中解出x,y,z和t就可以定時、定位。
GPS定位方式,不需要sim卡,不需要連接網絡,只要在戶外,基本上隨時隨地都可以准確定位。其他類型衛星定位方式與GPS差不多,不再講述。
2.基站定位
2.1相關概念
因為處在相同頻率范圍的信號會相互干擾,為防止相鄰基站相互干擾,相鄰的基站會選擇不同的信道(不同頻率范圍的信號)與移動設備通信。如上圖是一個蜂窩移動基站的示意圖,其任意相鄰的兩個基站都具有不同的通信頻段。基站不是孤立存在的,其覆蓋區域相互交接,組成一張巨大的移動通信網絡(如下圖)。
圖4 蜂窩基站
移動設備在插入sim卡開機以后,會主動搜索周圍的基站信息,與基站建立聯系,而且在可以搜索到信號的區域,手機能搜索到的基站不止一個,只不過遠近程度不同,再進行通信時會選取距離最近、信號最強的基站作為通信基站。其余的基站並不是沒有用處了,當你的位置發生移動時,不同基站的信號強度會發生變化,如果基站A的信號不如基站B了,手機為了防止突然間中斷鏈接,會先和基站B進行通信,協調好通信方式之后就會從A切換到B。這也就是為什么同樣是待機一天,你在火車上比在家里耗電要多的原因,手機需要不停的搜索、連接基站。每次坐火車,我都會把手機調成飛行模式,看看電影、聽聽歌,依然可以維持很長時間。
圖5 移動網絡
如上圖所示,在這張巨大移動網絡中,根據你所在的小區,所從屬的基站就可大致知道你的位置信息,如果再加上一些估計算法,就可以更確切的找出你的位置。
2.2基站定位原理
移動電話測量不同基站的下行導頻信號,得到不同基站下行導頻的TOA(到達時刻)或 TDOA(到達時間差),根據該測量結果並結合基站的坐標,一般采用三角公式估計算法,就能夠計算出移動電話的位置。實際的位置估計算法需要考慮多基站(3個或3個以上)定位的情況,因此算法要復雜很多。一般而言,移動台測量的基站數目越多,測量精度越高,定位性能改善越明顯。
上面的介紹有點官方,不是很容易理解。直白的說,距離基站越遠,信號越差,根據手機收到的信號強度可以大致估計距離基站的遠近,當手機同時搜索到至少三個基站的信號時(現在的網絡覆蓋這是很輕松的一件事情),大致可以估計出距離基站的遠近;基站在移動網絡中是唯一確定的,其地理位置也是唯一的,也就可以得到三個基站(三個點)距離手機的距離,根據三點定位原理,只需要以基站為圓心,距離為半徑多次畫圓即可,這些圓的交點就是手機的位置。網傳的微信三點定位原理也是這個樣子。
圖6 三點定位原理
由於基站定位時,信號很容易受到干擾,所以先天就決定了它定位的不准確性,精度大約在150米左右,基本無法開車導航。定位條件是必須在有基站信號的位置,手機處於sim卡注冊狀態(飛行模式下開wifi和拔出sim卡都不行),而且必須收到3個基站的信號,無論是否在室內。但是,定位速度超快,一旦有信號就可以定位,目前主要用途是沒有GPS且沒有wifi的情況下快速大體了解下你的位置。另外,如果你的手機里沒有基站位置數據包,還需要聯網才行。
3.WiFi定位
WiFi(也就是Wireless Access Point:AP,或者無線路由器)定位的方法有很多種,例如可以依據測信號強度來判定目標的距離,也可以依據信號角度來檢測目標的方向和角度,依據相位,時間和時間差來初步判定目標距離AP的位置等等。
3.1WiFi定位原理
- 每一個無線AP(路由器)都有一個全球唯一的MAC地址,並且一般來說無線AP在一段時間內不會移動;
- 設備在開啟Wi-Fi的情況下,無線路由器默認都會進行SSID廣播(除非用戶手動配置關閉該功能),在廣播幀包含了該路由器的MAC地址;
- 采集裝置可以通過接收周圍AP發送的廣播信息獲取周圍AP的MAC信息和信號強度信息,將這些信息上傳到服務器,經過服務器的計算,保存為“MAC-經緯度”的映射,當采集的信息足夠多時候就在服務器上建立了一張巨大的WiFi信息網絡;
- 當一個設備處在這樣的網絡中時,可以將收集到的這些能夠標示AP的數據發送到位置服務器,服務器檢索出每一個AP的地理位置,並結合每個信號的強弱程度,計算出設備的地理位置並返回到用戶設備,其計算方式和基站定位位置計算方式相似,也是利用三點定位或多點定位技術;
- 位置服務商要不斷更新、補充自己的數據庫,以保證數據的准確性。當某些WiFi信息不在數據庫中時,可以根據附近其他的WiFi位置信息推斷出未知WiFi的位置信息,並上傳服務器。
圖7 WiFi 定位
3.2數據采集
這些AP位置映射數據怎么采集的呢?其采集方式大致可以分為主動采集和用戶提交。
主動采集:
谷歌的街景拍攝車還有一個重要的功能就是采集沿途的無線信號並打上通過GPS定位出的坐標回傳至服務器,Skyhook公司也是采用這樣的方式。
用戶提交:
Android手機用戶在開啟“使用無線網絡定位”時會提示是否允許使用Google的定位服務,如果允許,用戶的位置信息就被谷歌收集到。iPhone則會自動收集WiFi的MAC地址、GPS位置信息、運營商基站編碼等,並發送給蘋果公司的服務器。
由上面的介紹可知,WiFi定位在AP密集的地方有很好的效果,比如在GPS不能使用的室內,而且具有較快的反映速度,在不連上WiFi的情況下也可以定位,這就是有時候在不開數據服務時百度地圖提示打開WiFi功能定位的原因。由於其依賴於WiFi,如果不想讓人通過這種方式知道你的位置信息,直接關閉WLAN功能即可。
4.AGPS定位
AGPS(AssistedGPS:輔助全球衛星定位系統)是結合GSM/GPRS與傳統衛星定位,利用基地台代送輔助衛星信息,以縮減GPS芯片獲取衛星信號的延遲時間,受遮蓋的室內也能借基地台訊號彌補,減輕GPS芯片對衛星的依賴度。AGPS利用手機基站的信號,輔以連接遠程定位服務器的方式下載衛星星歷 (英語:Almanac Data),再配合傳統的GPS衛星接受器,讓定位的速度更快。是一種結合網絡基站信息和GPS信息對移動台進行定位的技術,既利用全球衛星定位系統GPS,又利用移動基站,解決了GPS覆蓋的問題,可以在2代的G、C網絡和3G網絡中使用。
普通的GPS系統是由GPS衛星和GPS接受器組成,與普通的GPS不同,AGPS在系統中還有一個輔助定位服務器。在AGPS網絡中,接收器可通過與輔助服務器的通信而獲得定位輔助。由於AGPS接收器與輔助服務器間的任務是互為分工的,所以AGPS往往比普通的GPS系統有速度更快的定位能力、有更高的效率,可以很快捕捉到GPS信號,這樣的首次捕獲時間將大大減小,一般僅需幾秒的時間(單純GPS接收機首次捕獲時間可能要2~3分鍾時間),而精度也僅為幾米,高於GPS的精度。 利用AGPS接收器不必再下載和解碼來自GPS衛星的導航數據,因此可以有更多的時間和處理能力來跟蹤GPS信號,這樣能降低首次定位時間,增加靈敏度以及具有最大的可用性。
AGPS定位基本步驟
- AGPS手機首先將本身的基站地址信息通過網絡傳輸到定位服務器;
- 定位服務器根據該手機的大概位置傳輸與該位置相關的GPS輔助信息(包含GPS的星歷和方位俯仰角等)到手機;
- 該手機的AGPS模塊根據輔助信息(以提升GPS信號的第一鎖定時間TTFF能力)接收GPS原始信號;
- 手機在接收到GPS原始信號后解調信號,計算手機到衛星的偽距(偽距為受各種GPS誤差影響的距離),並將有關信息通過網絡傳輸到定位服務器;
- 定位服務器根據傳來的GPS偽距信息和來自其他定位設備(如差分GPS基准站等)的輔助信息完成對GPS信息的處理,並估算該手機的位置;
- 定位服務器將該手機的位置通過網絡傳輸到定位網關或應用平台(如手機上的GPS應用程序)。
圖8 AGPS定位
AGPS的優勢主要在其定位精度上。在室外等空曠地區,其精度在正常的GPS工作環境下,可達10米左右,堪稱目前定位精度最高的一種定位技術。另一優點為:首次捕獲GPS信號的時間一般僅需幾秒,不像GPS的首次捕獲時間可能要2~3分鍾。雖然AGPS技術的定位精度很高、首次捕獲GPS信號時間短,但是該技術也存在着一些缺點。首先,室內定位的問題目前仍然無法圓滿解決。另外,AGPS的定位實現必須通過多次網絡傳輸(最多可達六次單向傳輸),這對運營商來說是被認為大量的占用了空中資源,對消費者而言將產生不少的流量費用。而且AGPS手機比一般手機在耗電上有一定的額外負擔,間接減短了手機的待機時間。除此之外,有時無法取得多個衛星傳來的訊號,通常這是因為您的AGPS 話機天線接收器所在環境的限制。在這種情況下,AGPS 功能將不能很好地使用。
幾種常用的定位方式介紹完了,那么文章最初那個知友遇到的問題,他怎么被定位的呢?
先分析一下有用信息:
- 使用的IPhone;
- 微信添加過對方為好友,隨后解除好友關系;
- 接收了對方一段視頻,隨后並刪除;
- 在那一片,還會被找到。
IPhone系統比較封閉,對用戶隱私保護較好,微信對用戶隱私保護也很好,那么是怎么被定位的呢?
首先想到是接收的視頻(.exe格式,或其他)里含有病毒,在播放視頻后,會感染手機,同時竊取一些用戶信息。如果這病毒在系統里一直存在,隨時竊取用戶信息(包括位置信息),以IOS系統的安全性應該會發現並刪除。這種方式應該不可行。
那會不會通過微信號或其他方式獲取了用戶的手機號碼呢?由基站定位原理可以知道,手機在連接運營商服務時,會不斷同步自己的一些狀態信息,根據這些信息就可以獲得用戶的大致位置。但可以根據電話號碼定位手機位置的技術應該只有公檢法和運營商具備,個人或者公司怎么獲取呢?這又是一個問題。
那會不會是通過WiFi定位呢?通過某些方式獲得手機的一些信息,如MAC地址,然后通過附近的WiFi熱點對手機進行了定位。當然,這也存在一些問題。
還有就是“在這一片,還會被找到”,說明在這一塊區域應該有定位能力,那么應該是在這特定的區域內,安裝了一些設備,對附近的手機進行定位與識別。
究竟是以怎樣的方式竊取的位置信息,已經無從得知。也很有可能比我預想的簡單很多,以一種更為簡潔和直接的方式進行定位。隨着IT技術發展,有越來越多的黑科技產生,信息安全也越來越重要。好多個人信息暴露在網絡上,在互聯網上裸奔很危險,以后要注意個人信息保護。
PS/歡迎探討文中那位知友被別人如何定位的,我也很想知道。