與物聯網(IoT)相關的最受爭議的問題之一是安全性。從農業到醫院,從智能家居到商業智能建筑,從發電站到交通管理系統,物聯網系統和技術都將觸及世界許多地區,物聯網系統的安全漏洞可能會產生災難性的后果。
Bluetooth?網狀網絡被設計為將安全性作為其首要任務。在本文中,您將了解主要的安全功能和被解決的安全問題。該系列的其他文章將更詳細地介紹藍牙網狀網絡安全。歡迎點擊“閱讀原文”觀看完整文章!
藍牙網狀網絡的安全性是強制的
藍牙低功耗(LE)GATT設備可以實現藍牙核心規范中定義的一系列安全措施。產品設計人員有責任決定需要采取哪些安全措施,并且可以決定采用任何可用的安全功能。換句話說,藍牙低功耗GATT的安全性是可選的。如果我們正在談論單個設備的安全性及其與另一個設備的連接,這是有道理的,前提是產品設計師正確地執行風險評估。然而,藍牙網狀網絡中的安全性涉及多于單個設備或對等設備之間的連接的安全性; 它關心整個網絡設備的安全性和網絡中各種設備分組的安全性。
因此,藍牙網狀網絡的安全性是強制性的。
藍牙網狀網絡的安全基礎
以下基本安全說明適用于所有藍牙網狀網絡:
加密和認證 |
所有藍牙網狀網絡消息都經過加密和認證。 |
分離關注點 |
網絡安全性,應用安全性和設備安全性被獨立地解決。請參閱下面的關注點分離。 |
區域隔離 |
藍牙網狀網絡可以分為子網,每個子網的加密方式與其他網絡不同。 |
密鑰更新 |
通過密鑰更新過程可以在藍牙網狀網絡的使用壽命期間更改安全密鑰。 |
信息混淆 |
信息混淆使得難以跟蹤在網絡內發送的消息,因此提供了一種使得難以跟蹤節點的隱私機制。 |
重放攻擊保護 |
藍牙網絡安全保護網絡免受重放攻擊。 |
垃圾郵件攻擊保護 |
可以以防止垃圾郵件攻擊的方式安全地從網絡中刪除節點。 |
安全設備配置 |
將設備添加到藍牙網狀網絡以成為節點的過程是一個安全的過程。 |
分離關注點和安全密鑰
藍牙網絡安全的核心是安全密鑰的三種類型。這些密鑰為藍牙網狀網絡的不同方面提供了安全性,并在藍牙網狀網絡安全性中實現了關鍵性能,稱為分離關注點。
考慮作為中繼的網絡網絡燈具。作為中繼,它可能會發現自己處理與建筑物的藍牙網狀網絡門窗安全系統有關的消息。燈具沒有訪問和處理這些消息的細節,但它確實需要將它們轉發到其他節點。
為了處理這種潛在的興趣沖突,藍牙網狀網絡使用不同的安全密鑰稱為AppKeys,用于保護網絡層的消息與用于保護與特定應用相關的數據(例如照明,物理安全,加熱等)的消息。
藍牙網狀網絡中的所有節點擁有一個或多個網絡密鑰(NetKey),每個網絡密鑰對應于可能是主網的子網。它擁有一個使一個節點成為網絡成員的網絡密鑰。網絡加密密鑰和隱私密鑰直接從NetKey派生。
擁有NetKey允許節點對網絡層進行解密和驗證,以便可以執行網絡功能,如中繼。它不允許應用程序數據解密。
每個節點還具有唯一的安全密鑰,稱為設備密鑰或DevKey。 DevKey用于節點的配置。
區域隔離
擁有主NetKey定義藍牙網狀網絡的成員資格并授予對藍牙網狀網絡的訪問權限。但是也可以將網絡劃分成不同的子網,每個子網都有自己的子網密鑰。這意味著只有擁有給定子網密鑰的設備可以與作為該子網的成員的其他設備進行通信。也可以創建和分配子網密鑰。一個很好的例子是將不同酒店房間的節點隔離開來。
節點刪除,密鑰更新和垃圾郵件攻擊
如上所述,節點包含各種藍牙網格安全密鑰。如果一個節點發生故障并需要處理,或者如果所有者決定將節點銷售給另一個所有者,則重要的是,該設備及其包含的密鑰不能用于掛載網絡上的攻擊。
圖1藍牙網狀網絡確保了設備的安全可靠處理
定義了從網絡中刪除節點的過程。Provisioner應用程序用于將節點添加到黑名單,然后啟動密鑰刷新過程。
密鑰更新過程發出網絡中的所有節點,除了黑名單的成員,新的網絡密鑰,應用密鑰以及所有相關的派生數據。換句話說,構成網絡和應用程序安全性基礎的整套安全密鑰被替換。
因此,從網絡中刪除并且包含舊NetKey和舊的AppKeys的節點不再是網絡的成員,并且不構成威脅。
來自NetKey的隱私密鑰用于模糊網絡PDU頭值,例如源地址。模糊確被動竊聽不能用于跟蹤節點和使用它們的人員。它也使得基于流量分析的攻擊變得困難。
重放攻擊
在網絡安全方面,重放攻擊是竊聽者攔截并捕獲一個或多個消息并且稍后重新傳輸的技術,目的是欺騙接收者執行攻擊設備未被授權做的某些事情。通常引用的例子是汽車的無線鑰匙進入系統被攻擊者所竊取,該攻擊者攔截汽車所有者和汽車之間的認證序列,然后重播這些消息以進入汽車并將其竊取。
藍牙網狀網絡通過使用稱為序列號(SEQ)和IV索引的兩個網絡PDU字段來防止重放攻擊。每次發布消息時,元素都會增加SEQ值。從包含SEQ值小于或等于上一個有效消息的值的元素接收消息的節點將丟棄它,因為它可能與重放攻擊有關。類似地,IV索引是與SEQ一起考慮的單獨的字段。來自給定元素的消息中的索引值必須始終等于或大于該元素的最后一個有效消息。
加密工具箱
藍牙網狀網絡的大多數安全功能都依賴于行業標準的加密算法和過程。將在本系列的其他安全相關文章中提及,但我們將在這里解釋最重要的。
在藍牙網格堆棧中使用兩個關鍵的安全功能:AES-CMAC和AES-CCM。這些是基本的加密和認證功能,所有用于密鑰生成的其他功能都是基于它們的。
AES-CMAC
基于密碼的消息認證碼(CMAC)是可以為任何可變長度輸入生成固定長度的128位消息認證值的算法。使用AES-CMAC算法生成消息認證碼MAC的公式為:
MAC= AES-CMACk(m)
The inputs to AES-CMAC are:
AES-CMAC的輸入為:
k- the 128-bit key.
k-128位密鑰
m-要認證的可變長度數據。
AES-CMAC具有出色的錯誤檢測能力。涉及驗證校驗或使用錯誤檢測代碼的其他技術只能檢測數據的意外修改。 AES-CMAC旨在檢測有意,未經授權的數據修改以及意外修改。如果您有興趣了解更多關于此功能的信息,請參考定義它的RFC4493。
AES-CCM
AES-CCM是一種通用的,認證的加密算法,用于加密塊密碼。在藍牙網狀網絡規范中,AES-CCM在所有情況下都被用作基本的加密和認證功能。其使用公式如下:
ciphertext , MIC = AES-CCMk(n,m,a)
There are four inputs to AES-CCM:
AEC-CCN有四個輸入:
k-the 128-bit key.
K-128位密鑰
n-a 104-bitnonce.
n-104位的nonce
m-the variable length data to be encrypted and authenticated.
m-要加密和認證的可變長度數據
a-要認證但未加密的可變長度數據,也稱為附加數據。該輸入參數的長度可能為零字節。
AES-CCM有兩個輸出:
·密文-其加密后的可變長度數據。
·MIC-m和a的消息完整性檢查值。
圖2顯示了可以來自藍牙網狀網絡層或上層傳輸層的明文有效載荷,由具有輸入加密密鑰,隨機數和明文有效載荷的AES-CCM處理。輸出加密的有效載荷和MIC。
圖2用于數據包有效負載加密和認證的AES-CCM。
SALT生成
藍牙網狀網絡安全定義了SALT生成函數s1,它使用AES-CMAC功能。如上所述,AES-CMAC具有兩個輸入參數:k和m。當用于SALT生成時,只有輸入參數m變化。 k總是設置為128位值:0x0000 0000 00000000 0000 0000 0000 0000,在藍牙網狀網絡規范中稱為零。
圖3SALT生成函數。
SALT生成函數的輸入是:
m- 非零長度的八位位組數組或ASCII編碼的字符串。
輸出為128位MAC值,s1公式為:
s1(m) = AES-CMACZERO(m)
欲了解Silicon Labs最新的藍牙網狀網絡解決方案及技術知識,請訪問:https://cn.silabs.com/products/wireless/learning-center/bluetooth/bluetooth-mesh
-
藍牙
+關注
關注
114文章
5835瀏覽量
170717 -
網狀網絡
+關注
關注
1文章
35瀏覽量
20651
原文標題:【學知識】解讀藍牙網狀網絡的安全性
文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論