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