藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)就像一個(gè)俱樂部。如果您是俱樂部會(huì)員,則可以進(jìn)入俱樂部并使用您的會(huì)員類型允許的設(shè)施和服務(wù)。如果你不是,不管你怎么說,你都不能進(jìn)門。
藍(lán)牙網(wǎng)狀設(shè)備可以是或者不是藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的成員。如果是會(huì)員,則有權(quán)至少以一種基本的方式與其他也是該網(wǎng)絡(luò)成員的設(shè)備進(jìn)行通信。如果不是會(huì)員,那么設(shè)備傳送的任何內(nèi)容都將被網(wǎng)絡(luò)中的其他設(shè)備忽略。
藍(lán)牙網(wǎng)絡(luò)設(shè)備也可以被認(rèn)為具有會(huì)員類型,例如可以訪問特定的俱樂部設(shè)施(健身房,高爾夫球場(chǎng)等),而不是整個(gè)俱樂部。它只能與網(wǎng)絡(luò)中的某些設(shè)備交互。其背后就是應(yīng)用程序的概念。例如,藍(lán)牙網(wǎng)狀燈開關(guān)可以在網(wǎng)絡(luò)中打開或關(guān)閉藍(lán)牙網(wǎng)狀燈,因?yàn)檫@些設(shè)備中的每一個(gè)都是照明應(yīng)用的一部分。由于加熱系統(tǒng)不是照明應(yīng)用的一部分,燈開關(guān)不能接通加熱系統(tǒng)。
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)安全性
要使設(shè)備成為藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的成員,必須使用稱為provisioning的安全過程將其添加到網(wǎng)絡(luò)中。
安全是藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的核心,我們將在本系列的后面詳細(xì)介紹這個(gè)主題。在藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)中添加或移除設(shè)備都是安全性要求的過程。
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)使用不同安全密鑰類型的系統(tǒng)來保護(hù)整個(gè)網(wǎng)絡(luò),以及保護(hù)和分離網(wǎng)絡(luò)中的各個(gè)應(yīng)用。作為網(wǎng)絡(luò)的成員并有權(quán)參與特定的應(yīng)用程序,在這兩種情況下都是設(shè)備擁有正確安全密鑰的結(jié)果。網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都擁有一個(gè)稱為網(wǎng)絡(luò)密鑰或NetKey的密鑰。它擁有使該設(shè)備成為該網(wǎng)絡(luò)成員的這個(gè)密鑰,即它的一個(gè)節(jié)點(diǎn)。
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)術(shù)語
在之前的藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)系列中,我們介紹了正式的技術(shù)術(shù)語‘device’和‘node’。您可能還記得,一個(gè)網(wǎng)狀網(wǎng)絡(luò)成員的設(shè)備稱為node,而不是device?,F(xiàn)在,我將使用帶有大寫“D”的“device”來表示尚未成為網(wǎng)狀網(wǎng)絡(luò)一部分的設(shè)備,并繼續(xù)像我一直使用的那樣使用“device”來表示更通用的電子設(shè)備,非正式的感覺。
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)配置
配置將一個(gè)簡(jiǎn)單的設(shè)備轉(zhuǎn)換成一個(gè)節(jié)點(diǎn),一個(gè)藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的正式成員。該過程使用應(yīng)用程序來完成,該應(yīng)用程序通常由產(chǎn)品制造商提供以供在智能手機(jī)或平板電腦上使用,但也可以采用其他形式,例如桌面或網(wǎng)絡(luò)應(yīng)用程序。
運(yùn)行配置應(yīng)用程序的設(shè)備稱為Provisioner。提供者必須物理性的安全,因?yàn)樗哂刑厥獾慕巧?/p>
配置協(xié)議
在配置期間,Provisioner和要配置的設(shè)備使用稱為配置協(xié)議的藍(lán)牙網(wǎng)狀協(xié)議進(jìn)行通信。 Provisioner可以在PB-ADV或PB-GATT承載[i]上使用配置協(xié)議,以確保Provisioner應(yīng)用可以在舊的智能手機(jī)上實(shí)現(xiàn),只需要它們支持藍(lán)牙低功耗(LE)和GATT。
向網(wǎng)絡(luò)添加新的設(shè)備
將設(shè)備添加到網(wǎng)絡(luò)主要涉及為其提供該網(wǎng)絡(luò)的所有其他節(jié)點(diǎn)所擁有的網(wǎng)絡(luò)密鑰。當(dāng)然,這個(gè)過程本身必須是安全的,這樣惡意設(shè)備就不能竊聽在添加新設(shè)備和竊取NetKey時(shí)發(fā)生的通信。
當(dāng)購買新設(shè)備并且需要將其添加到現(xiàn)有的藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)時(shí),用戶將使用Provisioner以及來自新設(shè)備的制造商的指令將其添加到藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)。這將新設(shè)備轉(zhuǎn)換為藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的節(jié)點(diǎn)和成員。
該過程涉及幾個(gè)步驟,如下面的流程圖所示。
配置過程
步驟1:信標(biāo)
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)規(guī)范已經(jīng)引入了新的GAPAD類型,包括“Mesh Beacon”廣告類型[ii]。
設(shè)備通過使用> AD類型將自身宣告為未提供的設(shè)備來指示其可用性。用戶可能需要按照制造商所描述的程序,例如按下按鈕的組合或按住按鈕一段時(shí)間的方式開始新的設(shè)備廣告。
用戶還將在Provisioner中啟動(dòng)“Add Deviceto Network”過程,這將導(dǎo)致它從信標(biāo)設(shè)備接收廣告數(shù)據(jù)包。請(qǐng)記住,Provisioner可能是智能手機(jī)或平板電腦應(yīng)用程序,因此實(shí)際上,這涉及到解鎖智能手機(jī),啟動(dòng)應(yīng)用程序,可能登錄到應(yīng)用程序(以獲得額外的安全性),并使用其用戶界面來啟動(dòng)尋找信標(biāo)設(shè)備。通過這種方式,Provisioner就會(huì)意識(shí)到新的配置,并準(zhǔn)備好通過配置過程的其余部分。
步驟2:邀請(qǐng)
接下來,Provisioner向要配置的設(shè)備發(fā)送邀請(qǐng)消息。邀請(qǐng)采用配置邀請(qǐng)協(xié)議(PDU)的形式。信標(biāo)設(shè)備在ProvisioningCapabilities PDU中響應(yīng)有關(guān)其自身的信息。
Provisioning Capabilities PDU提供的信息包括元素的數(shù)量以及它支持的與供應(yīng)相關(guān)的算法。它還指示設(shè)備具有的輸入和輸出功能的類型,這是在“Authentication”步驟中使用的信息。
步驟3:交換公鑰
所有藍(lán)牙網(wǎng)狀設(shè)備(包括Provisioner)都支持FIPS P-256Elliptic Curve算法,因此必須具有公鑰?;谠撍惴ǖ姆菍?duì)稱密碼術(shù)被用于創(chuàng)建安全通道,通過該通道來執(zhí)行剩余的provisioning過程。為此,Provisioner和設(shè)備交換其公共密鑰。請(qǐng)注意,設(shè)備可能會(huì)通過帶外方法(如QR碼)提供其公鑰。我們將在后面的藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)系列文章中關(guān)注網(wǎng)狀網(wǎng)安全性,包括配置安全性。
步驟4:授權(quán)
Provisioner利用其對(duì)新設(shè)備功能的知識(shí)并向其發(fā)送消息,指示消息輸出單個(gè)或多個(gè)數(shù)值以響應(yīng)各種支持的用戶動(dòng)作之一,例如按下按鈕。根據(jù)設(shè)備的不同,輸出的值會(huì)有所不同。一個(gè)設(shè)備可能在LED面板上顯示一個(gè)三位數(shù)字值,而另一個(gè)設(shè)備可能會(huì)多次閃爍紅色LED,閃爍次數(shù)為輸出驗(yàn)證值。Provisioner的用戶將觀察設(shè)備輸出的值,并將其輸入到Provisioner用戶界面。
然后,設(shè)備和Provisioner交換一個(gè)加密哈希,該加密哈希由包含由該設(shè)備輸出的隨機(jī)值的數(shù)據(jù)導(dǎo)出,從而允許它們完成其認(rèn)證。
步驟5:分配Provisioning數(shù)據(jù)
在authentication成功完成之后,會(huì)話密鑰由兩個(gè)設(shè)備中的每一個(gè)從它們的私鑰和交換的對(duì)等公鑰得出。會(huì)話密鑰隨后用于保護(hù)完成供應(yīng)過程所需的數(shù)據(jù)的后續(xù)分配,包括設(shè)備的NetKey和唯一地址(稱為UnicastAddress)。
配置完成后,配置的設(shè)備擁有網(wǎng)絡(luò)的NetKey,這是一個(gè)被稱為IVIndex的藍(lán)牙網(wǎng)狀網(wǎng)安全參數(shù),它具有由Provisioner分配的UnicastAddress[iii]。新設(shè)備現(xiàn)在正式成為節(jié)點(diǎn)和藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的成員。
從網(wǎng)絡(luò)中移除節(jié)點(diǎn)
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的節(jié)點(diǎn)需要被刪除。該設(shè)備可能已經(jīng)損壞,需要更換,或者可能需要將該設(shè)備移到其他城市另一家辦事處的另一個(gè)藍(lán)牙網(wǎng)絡(luò)網(wǎng)絡(luò)。同樣,該設(shè)備可能已經(jīng)出售,預(yù)計(jì)新的擁有者將使用上述供應(yīng)過程將設(shè)備添加到他們自己的藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)。
有時(shí)候有些設(shè)備會(huì)損壞
如果設(shè)備出現(xiàn)故障而無法修復(fù),您可能會(huì)試圖將其扔到垃圾箱中。如果您將設(shè)備出售給某人,您也同樣可能只想拿錢,忘記舊設(shè)備。然而,這是不明智的。
節(jié)點(diǎn)包含通過供應(yīng)過程提供的安全密鑰。請(qǐng)記住,它是擁有主要的NetKey,它確定一個(gè)設(shè)備是一個(gè)網(wǎng)絡(luò)的成員,因此有權(quán)訪問它。丟棄或銷售設(shè)備時(shí),將與您的藍(lán)牙網(wǎng)絡(luò)網(wǎng)絡(luò)相關(guān)的密鑰留在設(shè)備內(nèi)可能會(huì)使您的網(wǎng)絡(luò)容易受到攻擊。因此,已經(jīng)定義了一個(gè)消除節(jié)點(diǎn)的安全過程,這個(gè)過程將在這里進(jìn)行描述。
從網(wǎng)絡(luò)中刪除節(jié)點(diǎn)涉及兩個(gè)步驟。首先,Provisioner應(yīng)用程序用于將要?jiǎng)h除的節(jié)點(diǎn)添加到“黑名單”中。其次,啟動(dòng)一個(gè)稱為密鑰刷新過程的過程。
黑名單
使用Provisioner,用戶必須將要?jiǎng)h除的節(jié)點(diǎn)添加到黑名單中。黑名單的目的只是充當(dāng)那些在啟動(dòng)密鑰刷新過程時(shí)不能用新的安全密鑰發(fā)布的節(jié)點(diǎn)的列表。
The Key Refresh Procedure
秘鑰刷新過程
密鑰刷新過程導(dǎo)致網(wǎng)絡(luò)中的所有節(jié)點(diǎn)(黑名單的成員除外)被發(fā)布新的網(wǎng)絡(luò)密鑰,應(yīng)用密鑰和所有相關(guān)的派生數(shù)據(jù)。換句話說,構(gòu)成網(wǎng)絡(luò)和應(yīng)用程序安全基礎(chǔ)的整套安全密鑰被替換。
用戶使用Provisioner啟動(dòng)密鑰刷新,Provisioner使用配置消息創(chuàng)建新密鑰并將其發(fā)送到網(wǎng)狀網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn),但黑名單的成員除外。
低功率節(jié)點(diǎn)將接收他們的Friend的新密鑰。因此,在接收它們之前可能需要相當(dāng)長的時(shí)間,因此整個(gè)網(wǎng)絡(luò)都要更換密鑰。
由于每個(gè)節(jié)點(diǎn)不會(huì)在同一時(shí)間收到新的密鑰,因此密鑰刷新過程定義了一個(gè)稱為“Phase 2”的過渡階段,在此過程中使用舊密鑰和新密鑰。具體而言,傳輸使用新密鑰,但支持接收消息的節(jié)點(diǎn)同時(shí)使用舊密鑰和新密鑰。
Provisioner通知所有節(jié)點(diǎn),當(dāng)Phase2完成時(shí),它們應(yīng)撤銷舊密鑰,并且每個(gè)非黑名單的節(jié)點(diǎn)都收到其新密鑰。
此時(shí),從網(wǎng)絡(luò)中刪除并且包含舊的NetKey和舊的AppKeys的節(jié)點(diǎn)不再是網(wǎng)絡(luò)的成員,因此不構(gòu)成威脅。
結(jié)論
安全性是藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)技術(shù)設(shè)計(jì)的核心。我們已經(jīng)看到了這種情況如何在網(wǎng)絡(luò)管理場(chǎng)景中最基本的地方體現(xiàn)出來,將新設(shè)備添加到藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)并將其刪除。
-
通信
+關(guān)注
關(guān)注
18文章
6032瀏覽量
135992 -
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5823瀏覽量
170324 -
協(xié)議
+關(guān)注
關(guān)注
2文章
602瀏覽量
39223
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論