ble mesh学习笔记(10)mesh网络各种key的应用
?
一、網(wǎng)絡(luò)密鑰(Network Key)
應(yīng)使用符合核心規(guī)范要求的隨機(jī)數(shù)生成器生成。 網(wǎng)絡(luò)密鑰層次結(jié)構(gòu)的圖示如圖所示。
?
1、用NID EncryptionKey PrivacyKey 來(lái)對(duì)mesh網(wǎng)絡(luò)數(shù)據(jù)加密。
?
?
2、Network ID 安全網(wǎng)絡(luò)廣播 以及GATT網(wǎng)絡(luò)廣播
?
?
3、IdentityKey 用于節(jié)點(diǎn)識(shí)別廣播
?
其中hash就是采用 IdentityKey生成。
?
4、beaconkey
?
?
二、應(yīng)用密鑰(AppKey)
?
1、AID 用于接入消息的驗(yàn)證
?
?
不同應(yīng)用之間可以采用不同的應(yīng)用秘鑰。AppKey用于應(yīng)用程序的數(shù)據(jù)。網(wǎng)絡(luò)中的一些節(jié)點(diǎn)具有特定應(yīng)用,并且根據(jù)應(yīng)用的需要對(duì)一些潛在敏感數(shù)據(jù)的訪問(wèn)進(jìn)行限制。這些節(jié)點(diǎn)具有特定的AppKey,并與特定應(yīng)用相關(guān)聯(lián)。會(huì)使用不同AppKey的領(lǐng)域通常包括安全(樓宇門(mén)禁、機(jī)房門(mén)禁和CEO辦公室門(mén)禁)、照明(制造廠房、外部樓宇照明和人行道)和HVAC系統(tǒng)。
?
當(dāng)一節(jié)點(diǎn)接收到訊息時(shí),會(huì)將訊息從架構(gòu)最底下的低功耗藍(lán)牙,一層一層往上傳(從載體層到網(wǎng)絡(luò)層)。接著,網(wǎng)絡(luò)層會(huì)進(jìn)行各項(xiàng)檢查來(lái)決定是否將訊息傳給上一層,或者直接拋棄。
此外,PDU當(dāng)中有一個(gè)網(wǎng)絡(luò)識(shí)別碼(Network ID)欄位,可用來(lái)快速判斷訊息使用的網(wǎng)絡(luò)密鑰。如果接收端的網(wǎng)絡(luò)層無(wú)法辨識(shí)該網(wǎng)絡(luò)密鑰,就代表接收端裝置不屬于該網(wǎng)絡(luò)的成員,而會(huì)將PDU拋棄。此外,還有一個(gè)網(wǎng)絡(luò)訊息完整性檢查(MIC) 欄位。節(jié)點(diǎn)會(huì)辨識(shí)PDU網(wǎng)絡(luò)識(shí)別碼對(duì)應(yīng)的網(wǎng)絡(luò)密鑰,如果檢查失敗,訊息便會(huì)直接被拋棄。在發(fā)送端節(jié)點(diǎn)訊號(hào)范圍內(nèi)的所有節(jié)點(diǎn)都會(huì)收到發(fā)出的訊息,與收到裝置不相干的訊息則會(huì)迅速被拋棄,例如來(lái)自不同的網(wǎng)絡(luò)或子網(wǎng)絡(luò)的訊息。
同樣的原則在上層傳輸層也一樣適用。不過(guò),該層檢查的是訊息的應(yīng)用密鑰,也就是PDU當(dāng)中的應(yīng)用識(shí)別碼(AID)欄位。如果收到的節(jié)點(diǎn)無(wú)法辨識(shí)PDU中的應(yīng)用識(shí)別碼,上層傳輸層就會(huì)將PDU直接拋棄。此外,若是傳輸訊息的完整性檢查(TransMIC)失敗,訊息也會(huì)被拋棄。
?
三、設(shè)備秘鑰(DevKey)
設(shè)備密鑰(DevKey)是僅為節(jié)點(diǎn)和配置客戶端所知的訪問(wèn)層密鑰。 設(shè)備密鑰應(yīng)綁定到節(jié)點(diǎn)已知的每個(gè)網(wǎng)絡(luò)密鑰。 那些綁定不能改變。 設(shè)備密鑰派生的圖示如圖所示。
?
總結(jié)
以上是生活随笔為你收集整理的ble mesh学习笔记(10)mesh网络各种key的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算服务器Centos 7.9 配置to
- 下一篇: 操作系统进程同步例题(三)汽车过桥2