天天看點

常見手機定位方式淺談

前段時間在知乎上回答了一個關于手機定位相關的問題,被一個知友問到“加一個人微信聊天之後,收到了人家的一個視訊,随後也把這個人及他發的視訊都删除了,幾天後在網吧上網,被别人定位到了,勒索了一筆錢,說‘再來這一片,還能找到你’,他的位置是如何被定位的?“。結合自己已有的知識儲備,并查找了一些資料,本文就總結一下幾種常見的定位技術及其原理。

引言

前段時間在知乎上回答了一個關于手機定位相關的問題,被一個知友問到“加一個人微信聊天之後,收到了人家的一個視訊,随後也把這個人及他發的視訊都删除了,幾天後在網吧上網,被别人定位到了,勒索了一筆錢,說‘再來這一片,還能找到你’,他的位置是如何被定位的?“。地理位置是一種很隐私的資訊,嚴重關系到個人的生命财産安全,當然一些裝置也有很好的隐私保護政策,在未經使用者允許的情況下,位置資訊是不會被竊取的。但,現實生活中絕大部分人都是非科班出身的,并不能有效的防範位置資訊洩露,有太多的方式可以誘導使用者應允擷取使用者隐私資訊,也有不少方式不需要使用者同意就可以知道其位置資訊。本人結合自己已有的知識儲備,并查找了一些資料,重新溫習了定位相關知識,本文就總結一下幾種常見的定位技術及其原理。

利用手機常用的定位方式有:

  1. 衛星定位(GPS,北鬥,伽利略,Glonass);
  2. 移動基站定位;
  3. WiFi輔助定位;
  4. 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/歡迎探讨文中那位知友被别人如何定位的,我也很想知道。

資料冰冷的,但我們要讓資料溫暖起來,改變我們的生活!

繼續閱讀