斷網(wǎng)也能上傳數(shù)據(jù)!蘋果用戶又可以了 | 開源
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯(lián)系出處。
2019年,蘋果系統(tǒng)上線了查找(Find My)功能。
這項功能讓蘋果用戶的外設即使在斷網(wǎng)或GPS關閉時,也能被附近其他蘋果設備發(fā)現(xiàn)。
這樣,當你追蹤定位自己的設備時,就可以喊附近其他蘋果設備上傳它們自己的位置信息。
基本原理跟遇到困難搖人幫忙差不多,總之就是突出一個“我為人人,人人為我”。
可就是這樣還是有用戶表示:光Find My怎么行,再幫忙Send My一下吧?
今天,就一起來看看這個離線無網(wǎng)時仍然能上傳數(shù)據(jù),來自柏林的研究團隊Positive Security開發(fā)的應用,Send My。

查找功能的“可乘之機”
先來看看查找系統(tǒng)具體是如何運行的。
首先,當蘋果設備用戶通過Find My app將自己的蘋果設備與其他外設連接時,會協(xié)商出一對密鑰對。
Find My app保存私鑰和公鑰,外設保存公鑰。
這時的外設相當于一個BLE beacon(藍牙低能耗廣播),會不斷廣播一個由公鑰衍生而來的變化密鑰。
周圍的蘋果設備在檢測到后,就將這一密鑰和自己的位置信息打包,一起上傳蘋果服務器。
最終,再由最開始的蘋果設備從服務器下載這一信息包,并通過保存在己設備app上的密鑰解密,得到具體位置數(shù)據(jù)。

注意到了嗎?上述流程中是有一個數(shù)據(jù)上傳的步驟的。
如果能將我們想要上傳的數(shù)據(jù)混入其中,就有可能搭著Find My離線網(wǎng)絡機制的便車一并上傳。
而上傳的數(shù)據(jù)內容為密鑰+位置報告。
其中,位置報告只有正確的私鑰(存儲在所有者設備上)才能解密,不能被暴力破解。
那么,突破點就在那個由公鑰衍生而來的密鑰上了。
將數(shù)據(jù)“滲漏”進去
研究團隊設計了這樣一個數(shù)據(jù)滲漏(Data Exfiltration)協(xié)議:
設定公鑰中的任意位(bit),并進行不斷的循環(huán)播報,直到發(fā)送一條完整信息。當發(fā)送端和接收端都承認同一個編碼方案時,就可以成功傳輸數(shù)據(jù)。
當發(fā)送特定位數(shù)據(jù)時,創(chuàng)建一個結構為[4b bit index] [4b message ID] [4b modem ID] [padding 0s…] [bit value]的28字節(jié)數(shù)組。
然后建立一個調制解調器(modem),通過串行接口接收一個信息并循環(huán)發(fā)送。

△將信息位編碼為可廣播的有效載荷
研究團隊使用低成本,低功耗的ESP32作為發(fā)送固件。
這種集成了Wi-Fi和雙模藍牙的單片機微控制器可以快速改變其藍牙MAC地址。
在啟動時會廣播一個硬件編碼的默認信息,然后在串行接口上監(jiān)聽并進行循環(huán)廣播,直到收到一個新信息。

獲取數(shù)據(jù)時,接收程序生成同樣結構的28字節(jié)的數(shù)據(jù)。

△從連接互聯(lián)網(wǎng)的macOS設備中檢索以前發(fā)送的數(shù)據(jù)。
應用程序的開發(fā)
Send My的應用程序基于OpenHaystack,由達姆施塔特工業(yè)大學的研究人員開發(fā),是一個有些黑客化的逆向工程。

OpenHaystack在今年3月份開源,當時蘋果還尚未向第三方配件制造商開放Find My應用程序。
但此時用戶已經可以利用OpenHaystack自定義可被Find My跟蹤的配件了。

參照OpenHaystack,Send My使用相同的AppleMail插件技巧,向蘋果后端發(fā)送位置檢索(retrieval)的請求。
這時會提示用戶輸入一個4位的調制解調器ID,這可以在刷新ESP固件時設置。
之后,應用程序就可以自動獲取、解碼并顯示ID為0的信息
測試一下
在成功配備了硬件和應用程序后,研究團隊進行了第一次測試:接收32位信息。
幾分鐘后,其中的23位信息成功到達。
研究團隊猜測,剩余9位生成的公鑰可能被附近的蘋果設備作為無效公鑰拒絕了。
對此,他們決定在廣播一個有效載荷(payloads)之前,先檢查它所代表的的EC點對其所使用的曲線(curve)是否真的有效。
如果否,就遞增計數(shù)器,直到找到一個有效公鑰為止。

△此過程可以在問詢密鑰ID之前,由位置檢索程序離線執(zhí)行
目前Send My的發(fā)送速度約為每秒3字節(jié)。

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

△公鑰廣播和相應的位置報告被上傳之間的延遲分布
蘋果很難ban掉這種應用。
研究團隊在最后表示。
因為Find My系統(tǒng)根本無法讀取未加密的位置信息,也不知道公鑰所屬,更不知道位置信息與公鑰之間的聯(lián)系。
如果要禁止這種基于OpenHaystack的黑客化應用的濫用,那么或許應該重新考慮Find My的安全性。
比如加強BLE廣播的認證,或限制位置報告的檢索速率。
團隊介紹
Positive Security是一家來自德國柏林的IT安全咨詢和研究公司,主要提供網(wǎng)絡安全支持服務。

創(chuàng)始人有兩位。其中fabian畢業(yè)于德國波茨坦大學,lukas畢業(yè)于卡爾斯魯厄理工學院,兩人都曾效力與德國安全研究室SRLabs。
參考鏈接:
https://positive.security/blog/send-my
應用下載:
https://github.com/positive-security/send-my
團隊官網(wǎng):
https://positive.security