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

智芯公司安全藍牙芯片獲得BQB權威認證
NRF54L15藍牙模組性能與場景應用
PTR5415藍牙模組性能與場景應用深度解析
Nordic藍牙開發(fā)不用Keil用VS code了?
藍牙AES+RNG如何保障物聯(lián)網(wǎng)信息安全
使用Simplelink?無線MCU系列的Z-Stack大型網(wǎng)狀網(wǎng)絡性能

藍牙MESH是什么?

藍牙技術聯(lián)盟發(fā)布全新安全精準測距功能 為藍牙設備帶來真實距離感知

各無線通信技術有哪些?各有什么優(yōu)缺點

評論