什么是Zigbee?
隨著物聯(lián)網(wǎng)(IoT)行業(yè)的發(fā)展,越來越多的無線技術應運而生。眾所周知,在物聯(lián)網(wǎng)行業(yè)中,我們有兩種典型的網(wǎng)絡。一個是WAN(廣域網(wǎng)),另一個是PAN(個人區(qū)域網(wǎng))。
● 對于LoRa,NB-IoT,2G / 3G / 4G等無線技術,通常傳輸距離超過1 km,因此它們主要用于廣域網(wǎng)(WAN)。
● 對于Wi-Fi,藍牙,BLE,Zigbee和Zwave等無線技術,通常的傳輸距離小于1公里,因此它們主要用于個人局域網(wǎng)(PAN)。
Zigbee是IoT網(wǎng)絡(尤其是家庭自動化行業(yè))中最流行的無線技術之一。其特點包括:
● 短距離 – 無線覆蓋范圍在10到100米之間。
● 低數(shù)據(jù)速率 – 最大數(shù)據(jù)速率為250 Kbps。
● 低功耗 – 處于睡眠狀態(tài)的Endpoint設備在睡眠模式下可以使用低于5uA的電流;
● 這是一種網(wǎng)狀技術 – 網(wǎng)絡可以輕松擴展到很大。理論上最大節(jié)點數(shù)為65535。
Zigbee是Zigbee聯(lián)盟發(fā)布和修訂的開放標準。歷史悠久。從很早開始,Silicon Labs(亦稱“芯科科技”)就致力于Zigbee技術。Silicon Labs的Zigbee技術來自Ember,Ember是一家自成立以來就開始研究Zigbee的公司。2012年,Silicon Labs收購了Ember,并繼續(xù)提供Zigbee產(chǎn)品和解決方案。
Zigbee協(xié)議概述
1、物理層和MAC層由IEEE-802.15.4定義。物理層負責無線電管理,包括諸如調制/解調,信號強度檢測等功能。MAC層負責單跳通信。
2、網(wǎng)絡層負責消息的發(fā)送和接收,設備維護,路由等。
3、應用程序支持層(APS)負責端到端消息的傳輸。
4、應用層留給用戶設計。每個應用程序實例稱為一個Endpoint。為管理功能保留了一個特殊的Endpoint,即Endpoint 0。我們也將此管理功能模型稱為Zigbee設備對象(ZDO)。
5、在APS層和網(wǎng)絡層中,有一些安全功能可用于保護網(wǎng)絡免遭黑客攻擊。
Zigbee安全性
由于Zigbee是一種無線技術,因此安全性非常重要,因為黑客可以通過無線檢測到這些數(shù)據(jù)包。想象您有一個智能門鎖。如果黑客捕獲了打開您的門的數(shù)據(jù)包,那么他可以重發(fā)該文件以打開您的門。那很危險。為了防止這種情況發(fā)生,Zigbee定義了許多安全功能。讓我們簡要介紹。
下圖顯示了如何在網(wǎng)絡層中保護不安全的網(wǎng)絡幀。
首先,網(wǎng)絡有效負載將被加密。之后,將在加密的有效負載之前添加安全標頭。然后根據(jù)網(wǎng)絡標頭,安全標頭和加密的有效負載來計算哈希值。最后,將32位哈希值附加到幀的末尾。如果更改了網(wǎng)絡標頭,安全標頭和加密的有效負載中的任何字節(jié),則哈希值將不同。我們將此值稱為MIC,是消息完整性檢查的縮寫。
網(wǎng)絡加密使用對稱加密算法(AES128),這意味著使用相同的密鑰進行加密和解密。該密鑰稱為Network Key。由于它是一種對稱加密算法,因此同一Zigbee網(wǎng)絡中的所有設備都將使用相同的Network Key。
在網(wǎng)絡安全標頭中,添加了“幀計數(shù)器”的字段和加密信息節(jié)點的源Eui64,以防止重發(fā)攻擊。還添加了密鑰序列號以支持Network Key更新。
創(chuàng)建Zigbee網(wǎng)絡
首先,由協(xié)調器創(chuàng)建一個網(wǎng)絡,您必須準備4個參數(shù):
● PAN ID
● 擴展 PAN ID
● 工作頻道
● 發(fā)射功率
使用已知Link Key加入
您需要指定這四個參數(shù)。如果您不這樣做,協(xié)調器將隨機選擇一個PAN ID和一個擴展的PAN ID。如果您未指定頻道,則協(xié)調器將掃描并選擇一個相對安靜的頻道進行工作。網(wǎng)絡創(chuàng)建后,新設備可以開始加入。
1、新設備將開始查找可連接的網(wǎng)絡。在此階段,新設備將在每個通道上發(fā)送信標請求。
/2、路由器和協(xié)調器將使用信標幀中攜帶的網(wǎng)絡信息來響應信標。這些信息包括PAN ID,擴展PAN ID以及路由器或協(xié)調器的其他一些屬性,例如設備是否允許連接,設備是否具有允許新設備連接的能力。
3、新設備可以從不同設備接收多個信標。它將選擇信號質量最好的一個,并開始發(fā)送關聯(lián)請求。在該關聯(lián)請求中,將PAN ID設置為所選的PAN,并將目標節(jié)點ID設置為所選設備的節(jié)點ID。在此框架中,將繼續(xù)使用新設備的功能。
4、當路由器或協(xié)調器收到此關聯(lián)請求時,它將為新設備選擇一個節(jié)點ID,并以關聯(lián)響應進行響應。然后,新設備獲得了其節(jié)點ID,但由于未獲得安全密鑰而無法與其他節(jié)點通信。
5、協(xié)調器會將當前的NWK密鑰傳輸?shù)叫略O備。該傳輸消息在應用程序層中使用已知的Link key加密。
6、當新設備收到此消息時,它將使用已知的Link key對消息解密并獲取Network Key。之后,該設備實際上已加入網(wǎng)絡,并能夠與網(wǎng)絡中的所有其他節(jié)點通信。
7、設備將發(fā)送一條通知消息,以通知網(wǎng)絡的其他節(jié)點,以通知他們我已加入。
使用Install Code派生的Link key加入
在出廠之前,應該已經(jīng)使用Install Code碼對新設備進行了編程。
在加入之前,用戶需要獲取新設備的Install Code和Eui64,然后在協(xié)調器上對其進行配置。
然后,協(xié)調器從Install Code中獲取Link key,并將協(xié)調器設置為使用此Link key來加密此新設備的傳輸NWK密鑰消息。
其余過程類似于使用眾所周知的Link key進行連接的過程。當協(xié)調器開始將Network Key傳輸?shù)叫略O備時,它將對消息進行加密并將其傳輸?shù)叫略O備。當新設備收到此消息時,它將從閃存中讀取Install Code并從中獲取Link key,然后使用此密鑰對消息進行解密并獲取Network Key。
(轉載)