zigbee3.0的協議特性


ZigBee協議有如下特性:

  • 支持多種網絡拓撲,比如點對點,點對多點,自組網;
  • 低工作占空比能力,提供長電池供電的可能;
  • 低延遲;
  • 采用DSSS擴頻技術;
  • 每個網絡最高可支持65,000節點
  • 128-bit AES 加密
  • 碰撞避免,重試和應答確認
  • zigbee3.0的協議特性

ZigBee 3.0軟件棧集成了一個“基礎設備”,它為配置節點加入到網絡提供一致的行為。它提供了一套通用的配置方法,包括Touchlink,一種通過鄰近節點的配置入網的方法。

ZigBee 3.0增強了網絡的安全特性,有兩種安全的方法來生成網絡: 集中式安全入網:這種方法采用協調器/信任中心來生成網絡,管理網絡資源和連接密鑰。 分布式安全入網:這種方法沒有協調器/信任中心,它通過路由節點為其它節點提供入網密鑰。 Zigbee 3.0支持越來越多和越大的網絡, ZigBee網絡有強大的自愈能力能應對各種場景的變化。ZigBee具有向前兼容能力, ZLL 1.0和ZHA 1.2已經支持ZigBee 3.0。ZigBee smart energy在功能上兼容zigBee 3.0,但它有額外的安全要求僅在這個profile中處理。

ZigBee 3.0中的密鑰和安全性

ZigBee的安全規范中,分別使用Network Key和Link Key在網絡層和APS層加密數據。APS層安全允許信任中心(Trust Center)來安全傳輸Network Key給加入節點或拒絕節點加入,並且它允許應用來增加可選的安全加密消息。網絡層安全用來保證所有的ZigBee網絡中發送消息的安全性。ZigBee定義了這些不同類型的密鑰,所有的Keys都是用128位對稱密鑰(AES-128)來解密和加密數據包。
Network Key
Network Key用來保證網絡層的安全傳輸。所有ZigBee網絡中的設備都會對Network Key進行備份。Trust Center可以周期性的更新Network Key。
Trust Center Link Key 
Trust Center Link Key用於兩個節點(其中有一個節點是Trust center)之間的端到端的安全通信。在以下情況下使用Trust Center Link Key: 
• 當節點初次加入網絡時,需加密傳輸Network Key到加入節點。 
• 當Network Key更新時,有些節點因未接收到新的Network Key,因此需要Rejoin。此時,Trust Center使用Trust Center Link Key加密 Network Key發送給該重新入網節點。 
• 路由器向發送給Trust Center,或從Trust Center接收APS安全消息時,需要使用Trust Center Link Key。比如路由器發送節點加入或Rejoin的更新給Trust Center時,或由Trust Center發送到路由器以執行一些安全功能的命令時, 需要使用Trust Center Link Key。 
• 啟用APS加密的應用程序單播消息,其中發送或接收設備是Trust Center。 
由Trust Center決定如何管理Trust Center Link Key的選項。它可以為每個設備選擇唯一的密鑰 (從設備的IEEE地址導出的密鑰),或者對於所有的設備采用相同的全局密鑰。

Installation Code Keys
ZigBee 3.0支持Installation Code Key,在之前只用於Smart Energy Network(智能能源網絡),Smart Energy Network必須使用install code。現在所有ZigBee 3.0認證設備都需要支持install code,但是由Trust center決定是否在網絡中使用。 
Install code用來預配置Trust Center Link Key,其用於加入ZigBee網絡時對Network Key的傳輸進行加密。在進入網絡時,加入設備和Trust Center都必須知道這個唯一的密鑰,所以install code用於在兩端導出密鑰。Install code可以是6,8,12或16字節的任意值,再末尾加上這些字節的16位CRC(最低有效字節優先)。Install code用作Matyas-Meyer-Oseas(MMO)Hash散列函數的輸入,其散列長度等於128位。該AES-MMO哈希函數的128位(16字節)結果就是用作該設備的預配置Trust Center Link Key的值,並且Trust Center可以安裝密鑰表條目(該密鑰和加入設備的EUI64),其然后允許在加入網絡期間成功地進行認證,加入設備可以成功地接收和解密Network Key。作為此過程的一部分,Install code和加入設備的EUI64必須在帶外傳送(目標ZigBee之外網絡,因為新節點尚未加入)到網絡的Trust Center,以允許創建正確的Link key表條目。
Application Link Keys 
屬於可選的一種安全機制。Application Link Key用於網絡中兩個都不是Trust Center的設備之間的APS級加密。

ZigBee的入網機制

在入網過程中,有一個相關的預配置連接密鑰:Trust Center可以選擇該密鑰是Default global Link Key(ZigBeeAlliance09)還是installation code。如果新設備沒有這個密鑰,它將無法加入網絡。為了允許設備加入到網絡,Trust Center發送Network Key(使用Preconfigured Link Key加密)給父節點。ZigBee 3.0和所有ZigBee應用程序配置文件需要Preconfigured Link Key才能加入。 ZigBee 3.0設備成功加入網絡后,設備需要請求更新的Trust Center Link Key以替換它們現有的Preconfigured Link Key或Install code。

  • 子節點入網過程

設備加入ZigBee Standard Security網絡時,首先向父節點發送MAC關聯請求。 如果關聯成功,則設備處於已加入但未認證狀態,此時它不具有Network Key。父節點給設備發送MAC關聯成功的響應之后,再向Trust Center發送更新設備消息,指示新節點希望加入ZigBee網絡。 然后由Trust Center決定是否允許設備加入。 如果不允許設備加入,則向父節點發送移除設備(Remove device)請求。 如果允許該設備加入,Trust Center則向父節點發送Network Key,Trust Center的行為取決於設備是否具有預配置的Trust Center Link Key。

ZCL

ZCL的幀格式:一個普通的ZCL幀由ZCL Header和ZCL payroad組成。 在Digi的API中,ZCL header和ZCL payroad都是放在RF payload字段,以方便用戶設計各種zigbee設備,而和ZigBee網絡相關的cluster,endpoint,profile等都有專門字段,無需用戶去熟悉網絡層的相關事務。用XCTU或是利用Digi提供的XBee API很容易實現組幀和解幀的識讀。

在這其中,ZCL Header的第一字節是幀控制域字段,它的信息包括幀命令類型和其它控制標志位. 其中幀控制域字段的第三位定義了這個ZCL是否是廠家的自定義特別擴展,默認為0也就是ZCL幀對所有廠家設備都有效,如果定義為1,ZCL Header會多出兩個廠家代碼字節在控制域字段之后,表示這個ZCL幀是特定廠家使用的擴展。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM