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

使用Simplelink?無線MCU系列的Z-Stack大型網(wǎng)狀網(wǎng)絡(luò)性能

各無線通信技術(shù)有哪些?各有什么優(yōu)缺點
是否可以創(chuàng)建一個包含多個esp8266模塊(esp-01)的網(wǎng)狀網(wǎng)絡(luò)?
為什么ESP8266不支持802.11s進行網(wǎng)狀網(wǎng)絡(luò)?
請問是否可以將非網(wǎng)狀設(shè)備連接到網(wǎng)狀網(wǎng)絡(luò)?
如何使用標準BLE將CYBT-213043-02網(wǎng)狀代理連接到智能手機?
藍牙模塊的安全性與隱私保護
電氣設(shè)備網(wǎng)狀遮攔的高度要求、設(shè)計原則
華普微低功耗藍牙技術(shù)及解決方案

評論