0
本文作者: 劉琳 | 2020-05-20 18:25 |
讓人感到驚訝的是,蘋(píng)果居然未修復(fù)只需檢查就能找到的 bug 。
近日,來(lái)自德國(guó)達(dá)姆施塔特大學(xué)的研究人員檢查了 MagicPairing 協(xié)議,發(fā)現(xiàn)它的三種實(shí)現(xiàn)方式 iOS、macOS 和 RTKIT——在它們之間存在十個(gè)公開(kāi)的缺陷,這些缺陷至今尚未得到解決。
在了解這項(xiàng)研究成果之前,我們先來(lái)了解下 MagicPairing 協(xié)議是什么。
MagicPairing 是蘋(píng)果的一種專有協(xié)議,它能夠提供無(wú)縫的配對(duì)功能,例如在用戶的 Airpods 和他們所有的蘋(píng)果設(shè)備之間是通過(guò)通過(guò)蘋(píng)果的云服務(wù) iCloud 同步鍵來(lái)實(shí)現(xiàn)的。MagicPair 協(xié)議的最終目標(biāo)是派生一個(gè)藍(lán)牙鏈路密鑰 (LK) ,用于單個(gè)設(shè)備和 Airpods 之間。為每個(gè)連接創(chuàng)建一個(gè)新的 LK ,這意味著可以有效地縮短此 LK 的生存期。
當(dāng)一個(gè)新的或重置的一對(duì) Airpods 最初與蘋(píng)果設(shè)備屬于 iCloud 帳戶,安全簡(jiǎn)單配對(duì)(SSP)被使用,所有后續(xù)連接到 iCloud 帳戶的 Airpod 和設(shè)備將使用作為配對(duì)機(jī)制的 Magicpair 協(xié)議。MagicPair 包含多個(gè)鍵和派生函數(shù)。它依賴于綜合初始化向量( SIV )模式下的高級(jí)加密標(biāo)準(zhǔn)( AES )進(jìn)行認(rèn)證加密。
Magic Pairing 的一般邏輯是可以集成到任何基于的物聯(lián)網(wǎng)生態(tài)系統(tǒng)中,從而增加對(duì)整個(gè)安全社區(qū)的相關(guān)性。
盡管 MagicPairing 協(xié)議克服了藍(lán)牙設(shè)備配對(duì)的兩個(gè)缺點(diǎn):即可擴(kuò)展性差和易崩潰安全模型缺陷。(如果永久密鑰 Link Layer 或 Long-Term Key 受陷則會(huì)崩潰。)
但研究人員使用名為 ToothPicker 的代碼執(zhí)行無(wú)線模糊測(cè)試和進(jìn)程內(nèi)模糊測(cè)試后發(fā)現(xiàn)了 8 個(gè) MagicPairing 和 2 個(gè) L2CAP 漏洞,它們可導(dǎo)致崩潰、CPU 過(guò)載且配對(duì)設(shè)備關(guān)聯(lián)取消。據(jù)外媒報(bào)道,這些信息是在2019 年 10 月 30 日至 2020 年 3 月 13 日期間披露的,目前尚未確定。
“由于 MagicPair 用于配對(duì)和加密前,因此它提供了龐大的零點(diǎn)擊無(wú)線攻擊面。我們發(fā)現(xiàn)所有的有不同實(shí)施都有不同的問(wèn)題,包括鎖定攻擊和可導(dǎo)致百分之百 CPU 負(fù)載的拒絕服務(wù)。我們?cè)陂_(kāi)展通用的無(wú)線測(cè)試和 iOS 進(jìn)程內(nèi)模糊測(cè)試時(shí)發(fā)現(xiàn)了這些問(wèn)題?!?/p>
研究人員如是說(shuō)。
那么,這些漏洞本身的威脅來(lái)自哪里呢?
首先是藍(lán)牙堆棧本身的安全性。
蘋(píng)果的每個(gè)堆棧都是針對(duì)單個(gè)設(shè)備類型的,并且支持一個(gè)特性子集。因此,它們支持的協(xié)議有重復(fù)的實(shí)現(xiàn)。雖然這種情況有助于逆轉(zhuǎn)這些協(xié)議,但它增加了蘋(píng)果公司的維護(hù)成本。從安全的角度來(lái)看,這會(huì)導(dǎo)致在這些堆棧中出現(xiàn)雙向安全問(wèn)題。
例如,RTKit 是一個(gè)單獨(dú)的資源約束嵌入設(shè)備框架。用于蘋(píng)果 AirPods 1、2和 Pro,Siri Remote 2,Apple Pencil 2 和 Smart Keyboard Folio 中,雖然這種分離用來(lái)減少功能是有意義的,但 iOS 和 MacOS 也有各自的藍(lán)牙堆棧,由于它們是封閉的,而且只有很少的公開(kāi)文檔。但它在速度上是有限的,不提供覆蓋。相比之下,iOS 進(jìn)程中的模糊處理程序速度更快,不受連接重置的限制,但需要大量的平臺(tái)專用接口調(diào)整。
也就是說(shuō),這三個(gè)藍(lán)牙堆棧在實(shí)際實(shí)施中所面臨的的攻擊和 bug 也會(huì)不同。
其次是,零點(diǎn)擊無(wú)線攻擊面大。
Magicpairing 的無(wú)線攻擊面相當(dāng)大。首先,它是在配對(duì)和加密之前使用的。通過(guò)邏輯鏈路控制和適配協(xié)議( L2CAP )提供的 MagicPairing Providesa 連接,用于藍(lán)牙內(nèi)部的各種數(shù)據(jù)傳輸;第二, 通過(guò)對(duì) IOS、MacOS、RTKit 的實(shí)現(xiàn),進(jìn)一步擴(kuò)大了 MagicPair 攻擊面。
最后是代碼居然有拼寫(xiě)錯(cuò)誤問(wèn)題。
研究人員發(fā)現(xiàn),蘋(píng)果在 iOS 和 macOS 中的 MagicPairing 實(shí)現(xiàn)的日志信息和 macOS Bluetooth 守護(hù)進(jìn)程 bluetoothd 函數(shù)名稱中存在大量拼寫(xiě)錯(cuò)誤。例如,棘輪和 upload 這兩個(gè)單詞在不同的時(shí)間被拼成了 diff。但研究人員認(rèn)為,由于這些誤讀隨堆棧的不同而不同,每個(gè)棧可能是由不同的開(kāi)發(fā)人員實(shí)現(xiàn)的。雖然拼寫(xiě)錯(cuò)誤和實(shí)現(xiàn)中的缺陷之間并不直接相關(guān),但這讓人認(rèn)為代碼并未仔細(xì)審查,開(kāi)發(fā)工作很可能是外包完成的。
但總的來(lái)說(shuō),這些漏洞雖然存在,也并未修復(fù),但影響不大。蘋(píng)果也對(duì)此問(wèn)題未予置評(píng)。
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
參考來(lái)源:
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。