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