想玩LBS服務嗎?手機定位結果並不那麼可靠唷!

隨著LBS的熱潮,越來越多使用者熱衷於無時無刻的check-in,試圖想在Foursquare或其他的競賽型LBS服務中獲得更多的mayors和badges。當然,這些LBS當然也會有檢查的機制以避免使用者作弊,但根本的源頭、iOS的定位結果真的是可靠的嗎?
評論
評論

(dickobrien@flickr)

隨著 LBS 的熱潮,越來越多使用者熱衷於無時無刻的 check-in,試圖想在 Foursquare 或其他的競賽型 LBS 服務中獲得更多的 mayors 和 badges。當然,這些 LBS 當然也會有檢查的機制以避免使用者作弊,但根本的源頭、iOS 的定位結果真的是可靠的嗎?

iOS 的定位機制

在筆者年初的 CS193P iPhone 學習課程筆記中 ,曾經談過 iOS 上的定位系統是分成三種不同的方式,分別是:

  • 手機基地台三角定位 -- 透過手機基地台定位,準確度最差但速度最快
  • Wifi 基地台定位 -- 透過 WiFi 基地台定位,準確度中等速度也是一般,但在 iPod touch 上僅有此種定位方式
  • GPS 定位 -- 透過 GPS 衛星進行地位,準確度最佳,但速度最慢且耗電量大

雖然蘋果並沒有提供直接的方法在軟體中設定要透過哪種方式定位,但開發者可以透過參數的設定來限制誤差範圍,而 iOS 便會依照誤差範圍的限制來調整定位的方法。

定位的漏洞

或許有讀者好奇,為什麼 Wifi 基地台可以作為定位使用呢?

這是因為每一台基地台都有獨一無二的 MAC 地址 ,而 Skyhook 這間在背後提供蘋果 Wifi 定位技術的廠商,便在世界各地的大街小巷中駕駛裝備了特殊器材的車輛,將路上每個 Wifi 基地台的 MAC 地址與車子目前所在座標進行記錄,而透過查詢這些記錄,便可以進行 Wifi 的基地台定位了,也因此若是你的 WIfi 基地台被搬離原有的位置,而那個 Wifi 基地台在下次定位時便仍然會是搬離前的所在地,而不是目前真正的位置。

換而言之,Wifi 的定位方式並不是真正根據地理的位置定位,而是根據你目前 Wifi 基地台在資料庫中的位置進行定位,因此便間接造成了一些淺在的漏洞。

假造的 MAC 地址

事實上,MAC 地址是可以假造的,且這並不是一門很難的技術,在網路上可以找到非常多相關資訊。所以我們只需要透過一台能假造 MAC 地址的電腦或是網路裝置,再加上世界各地的 Wifi 基地台 MAC 地址,便可以隨時的作出假的 Wifi 基地台訊號,並進一步的誤導 iOS 定位到錯誤的地點了。

換而言之,iOS 上的定位只需要透過一些小技巧,便可以製作出任何假的定位結果了!

結論

因此對於 LBS 的開發商來講,對於使用者所回報的位置並不能完全的信任,且特別是某些需要高度可靠性的服務,就得加入更多的檢查機制來防堵使用者作假。此外,這些淺在的漏洞,也多少會影響企業們採用 LBS 作為內部系統的意願性。

另外一點讓筆者感覺到可惜的是,在發展出更有效的防堵方式前,LBS 的 check-in 在未來的法庭上將很難成為有效的證據了。不過我相信這些問題將會隨著 LBS 越來越普及、應用層面越來越廣而獲得改善,就讓我們一同關注後續發展吧!

參考資源