Apple地理定位API暴露了全球WiFi接入點
蘋果公司的 Wi-Fi 定位系統(tǒng) (WPS)可用于繪制和跟蹤全球的 Wi-Fi 接入點 (AP) 。
在 2024 年黑帽大會的演講中,馬里蘭大學研究員 Erik Rye 將演示他是如何在幾天內(nèi)繪制出數(shù)億個接入點的地圖的,而在繪制過程中甚至不需要蘋果設備或任何權(quán)限。
蘋果是如何暴露全球接入點
你有沒有想過,你的手機是如何判斷確切位置的?雖然大多都使用全球定位系統(tǒng)(GPS)這種工具,但這并不是萬能的。它可能存在很多潛在的問題,比如信號不佳、耗電量大等等,對于那些持久性任務來說并不理想。
但相對而言,Wi-Fi 定位系統(tǒng)就比較適用。WPS 的工作原理有點像 GPS,只是將衛(wèi)星換成了 Wi-Fi 接入點(AP)。
首先,運行蘋果或谷歌操作系統(tǒng)的設備會定期報告它們的位置(通過 GPS 或基站三角測量),以及附近網(wǎng)絡的相對信號強度(通過基本服務集標識符或 BSSID 標識),從而顯示它們之間的距離。通過這種眾包方式,這些公司開發(fā)出了全球 AP 位置的龐大數(shù)據(jù)庫。
正如Rye所解釋的那樣:不管你是否使用蘋果設備,但只要使用蘋果設備的人路過你家、給你送包裹或住在你家附近,那么你的 Wi-Fi 接入點就可能會出現(xiàn)在這個系統(tǒng)中。
因此,單個設備可以通過掃描附近的 Wi-Fi 網(wǎng)絡并將其報告給公司服務器,從而確定自己的位置。在蘋果公司的案例中,WPS 服務器會返回這些 Wi-Fi 網(wǎng)絡的位置,設備可以將其與觀察到的信號強度進行比較,從而確定自己的相對位置。那么,問題出在哪里呢?
要知道,蘋果的 WPS API 是開放和免費使用的,是專為蘋果設備設計的,然而,可查詢的權(quán)限卻沒有什么限制。任何人都可以通過非蘋果設備進行查詢,無需任何形式的身份驗證或 API 密鑰。
Rye 使用 Go 編寫并在 Linux 上運行的程序,強行猜測了大量 BSSID 號碼,直到最終找到一個真實的號碼,WPS API 端點為此向他提供了一組與之相近的其他 BSSID。
他解釋說:一旦你開始獲得點擊率,你就可以進行所謂的“滾雪球式采樣”,將這些信息反饋回去,不斷重復采樣。在不到一周的時間里,我們就積累了大約 5 億個獨特的 BSSID。
蘋果公司 WPS 的一個特殊功能提高了這一過程的效率。在響應位置查詢時,它不會只返回附近的幾個網(wǎng)絡,而是會主動返回多達 400 個結(jié)果。
蘋果地理位置API存在的風險是什么?
Rye 表示,蘋果地理位置API基本上能夠繪制出地球的 Wi-Fi 地圖,包括一些最偏遠的地方: 南極洲、大西洋中部的小島。它甚至能繪制出一張在飽受戰(zhàn)爭蹂躪的烏克蘭提供互聯(lián)網(wǎng)接入服務的星鏈接入點地圖,或者一張不斷變化的加沙互聯(lián)網(wǎng)接入圖,這可能都是非常有價值的軍事情報。
更有針對性的隱私攻擊可能涉及在個人搬家或使用移動接入點(比如在房車里)旅行時對其進行跟蹤。那么既然蘋果和谷歌都有 WPS,為什么我們只挑其中一個呢?雖然這兩個系統(tǒng)都使用龐大的全球 BSSID 數(shù)據(jù)庫來三角定位設備位置。但是當安卓設備查詢谷歌的 WPS API 時,谷歌的服務器會進行三角測量并回復結(jié)果,而不是回復一長串 BSSID。這樣,所有額外的數(shù)據(jù)都不會泄露。
谷歌還要求用戶提供 API 密鑰,并利用該密鑰對查詢收取費用(最多為每兩次請求收取 1 美分)。這對于普通用戶來說微不足道,但對于攻擊者來說,這個微小的成本就會讓他們望而卻步,因為他們需要猜測大量的 BSSID,然后才能找到真正的 BSSID。
以上只是蘋果公司、接入點制造商甚至立法者可以改進接入點安全性的眾多方法中的兩種。同時,個人也可以采取一些預防措施。
Rye 表示,如果你是一個特別精通技術(shù)的用戶,在運行 OpenWrt 或類似的軟件時,你可以自己手動隨機化 BSSID,但這超出了大多數(shù)人的能力范圍。
如果想完全避免安全風險,可以使用旅行接入點,并在搬家時采用新的接入點。蘋果公司表示,如果在網(wǎng)絡名稱末尾添加'_nomap',可阻止你的 Wi-Fi 接入點進入他們的系統(tǒng)。