藍牙mesh的keys

  Mesh 標準規範定義了兩種類型的密鑰:應用程序密鑰(AppKey)和網絡密鑰(NetKey)。 AppKeys用於保護上層傳輸層的通訊,NetKeys用於保護網絡層的通訊。 兩種類型的密鑰在節點之間共享。 還有一個設備密鑰(DevKey),它是每一個節點惟一的特殊應用密鑰,只有節點和配置客戶端知道,並用於保護節點和配置客戶端之間的通訊。

應用程序密鑰綁定到網絡密鑰。 這意味着應用程序密鑰僅用於它們綁定的網絡密鑰的上下文中。 應用程序密鑰只能綁定到單個網絡密鑰。 設備密鑰隱式綁定到全部網絡密鑰。安全

全部藍牙mesh網絡消息的安全保障都來自網絡密鑰(NetKey)和應用密鑰(AppKey)對消息的加密和驗證。NetKey用於網絡層通訊。假設藍牙mesh網絡沒有子網,則該mesh網絡內的全部通訊都使用相同的網絡密鑰。網絡


AppKey用於應用程序的數據。網絡中的一些節點具備特定應用,而且根據應用的須要對一些潛在敏感數據的訪問進行限制。這些節點具備特定的AppKey,並與特定應用相關聯。會使用不一樣AppKey的領域一般包括安全(樓宇門禁、機房門禁和CEO辦公室門禁)、照明(製造廠房、外部樓宇照明和人行道)和HVAC系統。加密



1.設備密鑰spa

設備密鑰(DevKey)是僅爲節點和配置客戶端所知的訪問層密鑰。 設備密鑰應綁定到節點已知的每一個網絡密鑰。 那些綁定不能改變。 設備密鑰派生的圖示如圖所示。
3d

2.應用程序密鑰
blog

應用密鑰(AppKey)應使用與之兼容的隨機數生成器生成,應用程序密鑰標識符(AID)用於標識應用程序密鑰。
ci


3.網絡密鑰隨機數

網絡密鑰(NetKey)應使用符合核心規範要求的隨機數生成器生成。 網絡密鑰層次結構的圖示如圖所示。
配置


使用由NID,加密密鑰和隱私密鑰組成的安全材料來保護每一個網絡PDU。NID是一個7位值,用於標識用於保護此網絡PDU的安全材料。程序

       注意:每一個NID最多有2121個可能的密鑰; 所以,NID值只能提供已用於保護該網絡PDU的安全材料的指示。