博雯 發自 凹非寺
量子位 報道 | 公眾號 QbitAI

2019年,蘋果系統上線瞭查找(Find My)功能。

這項功能讓蘋果用戶的外設即使在斷網或GPS關閉時,也能被附近其他蘋果設備發現。

這樣,當你追蹤定位自己的設備時,就可以喊附近其他蘋果設備上傳它們自己的位置信息。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

基本原理跟遇到困難搖人幫忙差不多,總之就是突出一個“我為人人,人人為我”。

可就是這樣還是有用戶表示:光Find My怎麼行,再幫忙Send My一下吧?

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

今天,就一起來看看這個離線無網時仍然能上傳數據,來自柏林的研究團隊Positive Security開發的應用,Send My

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

查找功能的“可乘之機”

先來看看查找系統具體是如何運行的。

首先,當蘋果設備用戶通過Find My app將自己的蘋果設備與其他外設連接時,會協商出一對密鑰對

Find My app保存私鑰和公鑰,外設保存公鑰。

這時的外設相當於一個BLE beacon(藍牙低能耗廣播),會不斷廣播一個由公鑰衍生而來的變化密鑰。

周圍的蘋果設備在檢測到後,就將這一密鑰和自己的位置信息打包,一起上傳蘋果服務器。

最終,再由最開始的蘋果設備從服務器下載這一信息包,並通過保存在己設備app上的密鑰解密,得到具體位置數據。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

註意到瞭嗎?上述流程中是有一個數據上傳的步驟的。

如果能將我們想要上傳的數據混入其中,就有可能搭著Find My離線網絡機制的便車一並上傳。

而上傳的數據內容為密鑰+位置報告。

其中,位置報告隻有正確的私鑰(存儲在所有者設備上)才能解密,不能被暴力破解。

那麼,突破點就在那個由公鑰衍生而來的密鑰上瞭。

將數據“滲漏”進去

研究團隊設計瞭這樣一個數據滲漏(Data Exfiltration)協議:

設定公鑰中的任意位(bit),並進行不斷的循環播報,直到發送一條完整信息。當發送端和接收端都承認同一個編碼方案時,就可以成功傳輸數據。

當發送特定位數據時,創建一個結構為[4b bit index] [4b message ID] [4b modem ID] [padding 0s…] [bit value]的28字節數組。

然後建立一個調制解調器(modem),通過串行接口接收一個信息並循環發送。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

△將信息位編碼為可廣播的有效載荷

研究團隊使用低成本,低功耗的ESP32作為發送固件

這種集成瞭Wi-Fi和雙模藍牙的單片機微控制器可以快速改變其藍牙MAC地址。

在啟動時會廣播一個硬件編碼的默認信息,然後在串行接口上監聽並進行循環廣播,直到收到一個新信息。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

獲取數據時,接收程序生成同樣結構的28字節的數據。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

△從連接互聯網的macOS設備中檢索以前發送的數據。

應用程序的開發

Send My的應用程序基於OpenHaystack,由達姆施塔特工業大學的研究人員開發,是一個有些黑客化的逆向工程。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

OpenHaystack在今年3月份開源,當時蘋果還尚未向第三方配件制造商開放Find My應用程序。

但此時用戶已經可以利用OpenHaystack自定義可被Find My跟蹤的配件瞭。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

參照OpenHaystack,Send My使用相同的AppleMail插件技巧,向蘋果後端發送位置檢索(retrieval)的請求。

這時會提示用戶輸入一個4位的調制解調器ID,這可以在刷新ESP固件時設置。

之後,應用程序就可以自動獲取、解碼並顯示ID為0的信息

測試一下

在成功配備瞭硬件和應用程序後,研究團隊進行瞭第一次測試:接收32位信息。

幾分鐘後,其中的23位信息成功到達。

研究團隊猜測,剩餘9位生成的公鑰可能被附近的蘋果設備作為無效公鑰拒絕瞭。

對此,他們決定在廣播一個有效載荷(payloads)之前,先檢查它所代表的的EC點對其所使用的曲線(curve)是否真的有效。

如果否,就遞增計數器,直到找到一個有效公鑰為止。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

△此過程可以在問詢密鑰ID之前,由位置檢索程序離線執行

目前Send My的發送速度約為每秒3字節

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

根據周圍的設備數和其他隨機因素,可能會有1分鐘到1小時的延遲。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

△公鑰廣播和相應的位置報告被上傳之間的延遲分佈

蘋果很難ban掉這種應用。

研究團隊在最後表示。

因為Find My系統根本無法讀取未加密的位置信息,也不知道公鑰所屬,更不知道位置信息與公鑰之間的聯系。

如果要禁止這種基於OpenHaystack的黑客化應用的濫用,那麼或許應該重新考慮Find My的安全性。

比如加強BLE廣播的認證,或限制位置報告的檢索速率。

團隊介紹

Positive Security是一傢來自德國柏林的IT安全咨詢和研究公司,主要提供網絡安全支持服務。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

創始人有兩位。其中fabian畢業於德國波茨坦大學,lukas畢業於卡爾斯魯厄理工學院,兩人都曾效力與德國安全研究室SRLabs。

斷網也能上傳數據!蘋果用戶又可以瞭 | 開源

參考鏈接:
https://positive.security/blog/send-my

應用下載:
https://github.com/positive-security/send-my

團隊官網:
https://positive.security

創作者介紹
創作者 3C王者 的頭像
3C王者宇晨

3C王者

3C王者宇晨 發表在 痞客邦 留言(0) 人氣( 0 )