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