亚洲精品不卡久久久久久_色视频线观看在线 _妽妽夹得我好舒服_国产真人一级a爱做片高潮_亚洲aⅴ无码专区在线观看q

當(dāng)前位置: 首頁(yè) >綜合 > 正文

網(wǎng)絡(luò)安全知識(shí):藍(lán)牙安全

2023-06-03 11:22:46 來(lái)源:祺印說(shuō)信安

主要的兩個(gè)藍(lán)牙無(wú)線(xiàn)電版本是:

藍(lán)牙基本速率/增強(qiáng)數(shù)據(jù)速率 (BR/EDR),也稱(chēng)為藍(lán)牙經(jīng)典


(資料圖)

藍(lán)牙低功耗 (BLE),也稱(chēng)為藍(lán)牙智能,是2010年作為藍(lán)牙4.0的一部分引入的輕量級(jí)子集

Bluetooth Classic 和 BLE 使用不兼容的不同堆棧。但是,它們可以共存于共享同一天線(xiàn)的一臺(tái)設(shè)備中,因?yàn)樗鼈兌际褂?2.4 GHz ISM 頻段的相同無(wú)線(xiàn)電頻率,并應(yīng)用跳頻擴(kuò)頻 (FHSS) 機(jī)制來(lái)避免干擾。事實(shí)上,在許多情況下,它們是相輔相成的;這就是為什么現(xiàn)在大多數(shù)設(shè)備都是雙模式的原因。如下圖所示,Bluetooth Classic 單模設(shè)備預(yù)計(jì)將在未來(lái)消失,而 BLE 單模設(shè)備則因 IoT 行業(yè)的擴(kuò)張而增長(zhǎng)。

值得注意的是,Bluetooth Classic 并不是 BLE 的過(guò)時(shí)版本;它們是用于不同應(yīng)用的不同技術(shù)。Bluetooth Classic 主要用于需要點(diǎn)對(duì)點(diǎn)連續(xù)流傳輸?shù)那闆r,例如無(wú)線(xiàn)音頻流傳輸(無(wú)線(xiàn)揚(yáng)聲器、耳機(jī)、車(chē)載娛樂(lè)系統(tǒng))或文件傳輸。另一方面,BLE 專(zhuān)為極低功耗操作而設(shè)計(jì),支持多種通信拓?fù)洌瑥狞c(diǎn)對(duì)點(diǎn)擴(kuò)展到廣播和網(wǎng)狀網(wǎng)絡(luò)。BLE 應(yīng)用的示例包括監(jiān)控傳感器、信標(biāo)和高精度室內(nèi)定位服務(wù)。

這篇文章的重點(diǎn)是 BLE,特別是 4.2 版,該版本將在 2025 年 2 月之前有效。需要注意的是,藍(lán)牙規(guī)范的第 5 版引入了一些本文未概述的新功能(例如,擴(kuò)展廣告,網(wǎng)狀網(wǎng)絡(luò),或測(cè)向)。但是,第 5 版設(shè)備在市場(chǎng)上還不是很普遍。

是什么讓它“低能耗”?

要點(diǎn)是 BLE 盡可能讓無(wú)線(xiàn)電保持關(guān)閉狀態(tài)。這是通過(guò)以下方式實(shí)現(xiàn)的:

只有三個(gè)廣告頻道,而不是經(jīng)典規(guī)格的16到32個(gè)。這減少了待機(jī)時(shí)間。

非常快速的連接建立(從非連接狀態(tài)到連接狀態(tài))大約需要三毫秒,這意味著使用無(wú)線(xiàn)電的時(shí)間更少。Bluetooth Classic連接最多可能需要100 毫秒。

低峰值功率,15mA,有助于節(jié)省電池。Bluetooth Classic 峰值功率為 25mA,這也很低,但對(duì)于基于紐扣電池的應(yīng)用來(lái)說(shuō)還不夠。

藍(lán)牙堆棧:

應(yīng)用層

應(yīng)用

主持人

通用訪(fǎng)問(wèn)配置文件 (GAP)

通用屬性配置文件 (GATT)

屬性協(xié)議 (ATT)

保安經(jīng)理

邏輯鏈路控制和適配協(xié)議 (L2CAP)

控制器

鏈路層

直接測(cè)試模式

物理層

讓我們簡(jiǎn)要定義每一層是如何工作的:

應(yīng)用層通常是最重要數(shù)據(jù)所在的位置。在這一層之下,其他人負(fù)責(zé)傳輸或轉(zhuǎn)換數(shù)據(jù)。

GAP 定義了 BLE 連接的兩個(gè)主要方面:

可見(jiàn)性:設(shè)備如何相互發(fā)現(xiàn),包括掃描和廣告交互:設(shè)備如何相互交互,包括如何管理連接(角色、模式、安全參數(shù)等)

BLE 中主要有兩種連接模式:Advertising(單向發(fā)送數(shù)據(jù),不建立連接)和Connected(雙向發(fā)送數(shù)據(jù))。

只有在 GAP 完全設(shè)置可見(jiàn)性和交互方面之后,GATT 才會(huì)定義設(shè)備如何相互交換信息。為此,GATT 使用 ATT 作為底層協(xié)議來(lái)定義服務(wù)器如何向客戶(hù)端公開(kāi)其數(shù)據(jù)以及數(shù)據(jù)的結(jié)構(gòu)。數(shù)據(jù)被構(gòu)造為屬性,可以是多種類(lèi)型(命令、請(qǐng)求、響應(yīng)、通知、指示或確認(rèn))中的一種,并使用 16 位唯一 ID(也稱(chēng)為“句柄”)存儲(chǔ)在表中入口。因此,屬性的句柄可以從 0x0001 到 0xFFFF。根據(jù)藍(lán)牙規(guī)范,保留值為 0x0000 的屬性句柄,不得使用。

如前所述,GATT 定義了如何與屬性(必須發(fā)送的數(shù)據(jù))進(jìn)行交互,為此,它使用以下概念:

服務(wù):一組一個(gè)或多個(gè)屬性特性:服務(wù)端要暴露給客戶(hù)端的一段數(shù)據(jù)

gatttool是一個(gè)有用的工具,可以用來(lái)處理這些屬性。

BLE 中的安全管理器負(fù)責(zé)配對(duì)、加密和簽名等安全程序。所有連接都從“無(wú)安全”模式(不配對(duì))開(kāi)始,當(dāng)它們想要以安全的方式交換數(shù)據(jù)時(shí),它們需要配對(duì)。配對(duì)過(guò)程涉及交換臨時(shí)密鑰 (TK) 以生成用于加密連接鏈路的短期密鑰 (STK)。整個(gè)通信的安全性在很大程度上取決于這種傳統(tǒng)知識(shí)是如何交換的。有四種關(guān)聯(lián)模型(針對(duì) BLE 4.2),選擇其中一種取決于設(shè)備的輸入/輸出能力(以明文形式交換的信息)。我們將它們從最不安全到最安全進(jìn)行了排序:

關(guān)聯(lián)模型 (1-3) 被稱(chēng)為L(zhǎng)E Legacy Pairing,由于缺乏安全性,應(yīng)該避免使用。

Just works:此模型適用于沒(méi)有顯示屏的設(shè)備,例如耳機(jī)或揚(yáng)聲器(因此,此方法可能最適用于 BLE <4.2 設(shè)備)。TK 設(shè)置為零,因此可以通過(guò)輕松計(jì)算 STK 進(jìn)行竊聽(tīng)和中間人 (MiTM) 攻擊。密碼:此模型適用于通常具有顯示屏的設(shè)備(盡管有一些例外)。一臺(tái)設(shè)備顯示一個(gè)隨機(jī)生成的 6 位數(shù)字 TK,另一臺(tái)設(shè)備請(qǐng)求它。如果設(shè)備沒(méi)有顯示,用戶(hù)需要在兩者中輸入相同的 TK。此方法提供了一些針對(duì)竊聽(tīng)和 MITM 攻擊的保護(hù);但是,由于 TK 很容易被暴力破解,因此整體安全性很差。帶外 (OOB):此模型適用于具有替代通信技術(shù)(例如 NFC)的設(shè)備,可用于交換加密信息。如果備用通道是安全的,此方法可提供良好的安全保護(hù)。在這種情況下,TK 可能不容易被暴力破解,因?yàn)椴恍枰斯そ换ィ虼舜朔椒ㄉ傻?TK 可能更長(zhǎng)(最多 128 位)且更復(fù)雜。

關(guān)聯(lián)模型 (4) 是最安全的,被稱(chēng)為L(zhǎng)E 安全連接(在 BLE 4.2 中引入)。該模型的主要區(qū)別在于,這些關(guān)聯(lián)模型不使用 TK 和 STK,而是使用長(zhǎng)期密鑰 (LTK) 來(lái)加密連接鏈接,并使用公鑰密碼學(xué)(特別是橢圓曲線(xiàn) Diffie Hellman 算法)來(lái)交換LTK。此改進(jìn)可防止竊聽(tīng)攻擊,但不能防止 MitM 攻擊。

數(shù)值比較:該模型提供了最好的安全性,而不會(huì)過(guò)多地影響用戶(hù)體驗(yàn)。因此,在設(shè)計(jì) BLE 設(shè)備或應(yīng)用程序時(shí)推薦使用它。使用此模型時(shí),兩個(gè)設(shè)備交換其公共 ECDH 密鑰,并為每個(gè)對(duì)等方獨(dú)立生成一個(gè)隨機(jī)的 128 位隨機(jī)數(shù),以提供針對(duì)重放攻擊的保護(hù)。然后,交換這些隨機(jī)數(shù)(使用 ECDH 密鑰,以避免竊聽(tīng)攻擊)并使用確認(rèn)值生成功能進(jìn)行檢查.最后,兩個(gè)設(shè)備都使用交換的公鑰和隨機(jī)數(shù)獨(dú)立計(jì)算出一個(gè)六位數(shù),并在顯示器上顯示出來(lái)。此時(shí),用戶(hù)需要檢查它們并確認(rèn)(用“是”或“否”)兩個(gè)數(shù)字匹配。匹配數(shù)字意味著沒(méi)有執(zhí)行 MitM 攻擊,因此可以安全地加密連接鏈接。如果數(shù)字不匹配且用戶(hù)選擇“否”,則配對(duì)過(guò)程失敗,從而保護(hù)用戶(hù)。

總之,上面列出的所有關(guān)聯(lián)模型的主要和困難目標(biāo)是在沒(méi)有建立連接的兩個(gè)設(shè)備之間安全地交換密鑰。最大的優(yōu)勢(shì)是通常這兩種設(shè)備之間都有一個(gè)人。

接下來(lái)是邏輯鏈路控制和適配協(xié)議 (L2CAP) 層,負(fù)責(zé)多路復(fù)用、分段和重組、邏輯連接建立和流量控制。它相當(dāng)于TCP/IP棧中的IP。

最后,我們有鏈路層,它負(fù)責(zé)掃描、通告和創(chuàng)建連接,并直接與將位轉(zhuǎn)換為 RF 的物理層交互。這兩層是由藍(lán)牙芯片中的硬件實(shí)現(xiàn)的。所有其他的都由設(shè)備中的軟件實(shí)現(xiàn)。

滲透測(cè)試 BLE 連接

安全性如何?BLE只是一種技術(shù);因此,兩個(gè)設(shè)備之間的 BLE 安全責(zé)任取決于制造商應(yīng)用的實(shí)施。

當(dāng)可以完全控制至少一臺(tái)設(shè)備時(shí):

滲透測(cè)試 BLE 設(shè)備的最簡(jiǎn)單方法是使用主機(jī)控制器接口 (HCI)。如前所述,Host層由軟件實(shí)現(xiàn),Controller層由硬件實(shí)現(xiàn)。藍(lán)牙 HCI 指定了它們之間的所有交互,并且可以記錄這些交互。不需要額外的硬件。

記錄 HCI 事件和命令非常容易,尤其是在 Android、Linux 和 OS X 系統(tǒng)上:

Android:不需要 root 或其他應(yīng)用程序。“開(kāi)發(fā)者選項(xiàng)”下已經(jīng)有一個(gè)名為“啟用藍(lán)牙 HCI 監(jiān)聽(tīng)日志”的選項(xiàng)。啟用此選項(xiàng)后,智能手機(jī)將開(kāi)始將所有通過(guò) HCI 的流量記錄到一個(gè)文件中。Linux:“btmon”工具用于將 HCI 事件和命令記錄到文件中。OS X:XCode 的附加工具,稱(chēng)為“PacketLogger”,用于記錄此流量。

日志記錄應(yīng)用程序生成 BTsnoop 格式的文件,這些文件不是純文本。但是,它們可以很容易地加載到 Wireshark 中。以下 Wireshark 過(guò)濾器可用于分析 BLE 流量:

btatt:顯示ATT數(shù)據(jù)包,內(nèi)容是應(yīng)用程序發(fā)送和接收的數(shù)據(jù)。bthci_cmd.le_long_term_key:顯示 BLE 加密的長(zhǎng)期密鑰。在捕獲的流量中找不到這些字節(jié)意味著連接未經(jīng)過(guò) BLE 加密(但可以在應(yīng)用層加密)。

對(duì)于經(jīng)典藍(lán)牙:

bthci_cmd.link_key:顯示用于加密藍(lán)牙連接的鏈接密鑰。在捕獲的流量中找不到這些字節(jié)意味著連接未經(jīng)過(guò) BLE 加密(但可以在應(yīng)用層加密)。

日志記錄總是比嗅探更容易,應(yīng)盡可能使用。

當(dāng)無(wú)法完全控制任何設(shè)備時(shí):

例如,當(dāng)想要分析無(wú)線(xiàn)游戲控制器與其游戲控制臺(tái)之間的 BLE 流量時(shí)。通常,在這種情況下我們有三種選擇:

將游戲控制器與另一臺(tái)您可以完全控制并記錄流量的設(shè)備配對(duì)(并非總是可行)。在游戲控制臺(tái)中獲得完全控制并記錄流量(并非總是可能)。無(wú)需完全控制任何設(shè)備即可嗅探通信。

最后一個(gè)選項(xiàng)通常需要額外的硬件,例如 BBC MicroBit、BlueFruit 或 Ubertooth。然而,這些設(shè)備并不可靠,它們會(huì)丟失數(shù)據(jù)包,即使連接已被捕獲。

此外,這些設(shè)備中的每一個(gè)都只能在一個(gè) BLE 通道上收聽(tīng)。由于 BLE 頻譜具有三個(gè)廣告通道,因此使用一臺(tái)設(shè)備捕獲連接的概率為 33.33%。使用兩個(gè)設(shè)備,則為 66.66%。使用三臺(tái)設(shè)備(每個(gè)廣告頻道一臺(tái)),概率為 100%。

通常用于嗅探的軟件是BTLE Jack,它自動(dòng)解決了 BLE 中應(yīng)用的跳頻機(jī)制帶來(lái)的所有困難。

對(duì)于更專(zhuān)業(yè)的任務(wù),Ellisys 公司銷(xiāo)售用于藍(lán)牙嗅探的非常好的和可靠的設(shè)備,例如 Bluetooth Explorer 或 Bluetooth Vanguard。但是,價(jià)格比 MicroBit 或 BlueFruit 高得多。

總之,對(duì)于大多數(shù)筆測(cè)試項(xiàng)目,使用主機(jī)控制器接口記錄流量就足夠了。如果顧問(wèn)無(wú)法完全控制任何設(shè)備,一個(gè) BBC MicroBit(或類(lèi)似的嗅探工具)就足夠了。但是,如果設(shè)備丟失數(shù)據(jù)包,他們將需要重復(fù)該過(guò)程。

中間人攻擊

當(dāng)日志記錄或嗅探還不夠并且需要修改流量時(shí),我們通常使用兩種攻擊向量:

在完全受控的設(shè)備上掛鉤函數(shù)(例如,使用Frida )。在網(wǎng)絡(luò)級(jí)別執(zhí)行中間人 (MitM) 攻擊。

如今,一些供應(yīng)商對(duì)他們的應(yīng)用程序代碼進(jìn)行了嚴(yán)重的混淆,使得逆向工程師很難理解。此外,滲透測(cè)試幾乎總是有時(shí)間限制的,因此當(dāng)代碼被混淆時(shí),第一個(gè)選項(xiàng)通常變得不可行。

然而,僅使用一臺(tái)筆記本電腦和兩個(gè) BLE 加密狗,就可以執(zhí)行 MitM 攻擊,而無(wú)需對(duì)固件或移動(dòng)應(yīng)用程序進(jìn)行任何類(lèi)型的分析。因此,代碼混淆不能防止第二種攻擊向量。

gattacker和BTLE Juice等工具已經(jīng)處理了所有 BLE 協(xié)議階段和功能,以允許 MitM 和中繼攻擊。這些工具非常靈活,非常適合發(fā)現(xiàn)應(yīng)用程序或 BLE 協(xié)議本身的新缺陷。

例如,攻擊者可以使用工具 gattacker 在配對(duì)階段對(duì)兩個(gè)設(shè)備之間的連接進(jìn)行中間人攻擊,并修改流量以誘使設(shè)備進(jìn)入更不安全的關(guān)聯(lián)模型。

結(jié)論

強(qiáng)烈建議開(kāi)始研究 BLE 和物聯(lián)網(wǎng)設(shè)備。許多物聯(lián)網(wǎng)供應(yīng)商仍在為其設(shè)備應(yīng)用非常薄弱的安全性(如果有的話(huà)),這相當(dāng)于 90 年代計(jì)算機(jī)的安全性。

標(biāo)簽:

返回頂部