什么是Zigbee?

随着物联网(IoT)行业的发展,越来越多的无线技术应运而生。众所周知,在物联网行业中,我们有两种典型的网络。一个是WAN(广域网),另一个是PAN(个人区域网)。

对于LoRa,NB-IoT,2G / 3G / 4G等无线技术,通常传输距离超过1 km,因此它们主要用于广域网(WAN)。

对于Wi-Fi,蓝牙,BLE,Zigbee和Zwave等无线技术,通常的传输距离小于1公里,因此它们主要用于个人局域网(PAN)。

Zigbee是IoT网络(尤其是家庭自动化行业)中最流行的无线技术之一。其特点包括:

短距离 – 无线覆盖范围在10到100米之间。

低数据速率 – 最大数据速率为250 Kbps。

低功耗 – 处于睡眠状态的Endpoint设备在睡眠模式下可以使用低于5uA的电流;

这是一种网状技术 – 网络可以轻松扩展到很大。理论上最大节点数为65535。

Zigbee是Zigbee联盟发布和修订的开放标准。历史悠久。从很早开始,Silicon Labs(亦称“芯科科技”)就致力于Zigbee技术。Silicon Labs的Zigbee技术来自Ember,Ember是一家自成立以来就开始研究Zigbee的公司。2012年,Silicon Labs收购了Ember,并继续提供Zigbee产品和解决方案。

Zigbee协议概述

物理层和MAC层由IEEE-802.15.4定义。物理层负责无线电管理,包括诸如调制/解调,信号强度检测等功能。MAC层负责单跳通信。

网络层负责消息的发送和接收,设备维护,路由等。

应用程序支持层(APS)负责端到端消息的传输。

应用层留给用户设计。每个应用程序实例称为一个Endpoint。为管理功能保留了一个特殊的Endpoint,

即Endpoint 0。我们也将此管理功能模型称为Zigbee设备对象(ZDO)。

在APS层和网络层中,有一些安全功能可用于保护网络免遭黑客攻击。

Zigbee安全性

由于Zigbee是一种无线技术,因此安全性非常重要,因为黑客可以通过无线检测到这些数据包。想象您有一个智能门锁。如果黑客捕获了打开您的门的数据包,那么他可以重发该文件以打开您的门。那很危险。为了防止这种情况发生,Zigbee定义了许多安全功能。让我们简要介绍。

下图显示了如何在网络层中保护不安全的网络帧。

首先,网络有效负载将被加密。之后,将在加密的有效负载之前添加安全标头。然后根据网络标头,安全标头和加密的有效负载来计算哈希值。最后,将32位哈希值附加到帧的末尾。如果更改了网络标头,安全标头和加密的有效负载中的任何字节,则哈希值将不同。我们将此值称为MIC,是消息完整性检查的缩写。

网络加密使用对称加密算法(AES128),这意味着使用相同的密钥进行加密和解密。该密钥称为Network Key。由于它是一种对称加密算法,因此同一Zigbee网络中的所有设备都将使用相同的Network Key。

在网络安全标头中,添加了“帧计数器”的字段和加密信息节点的源Eui64,以防止重发攻击。还添加了密钥序列号以支持Network Key更新。

创建Zigbee网络

首先,由协调器创建一个网络,您必须准备4个参数:

PAN ID

扩展 PAN ID

工作频道

发射功率

使用已知Link Key加入

您需要指定这四个参数。如果您不这样做,协调器将随机选择一个PAN ID和一个扩展的PAN ID。如果您未指定频道,则协调器将扫描并选择一个相对安静的频道进行工作。网络创建后,新设备可以开始加入。
新设备将开始查找可连接的网络。在此阶段,新设备将在每个通道上发送信标请求。

路由器和协调器将使用信标帧中携带的网络信息来响应信标。这些信息包括PAN ID,扩展PAN ID以及路由器或协调器的其他一些属性,例如设备是否允许连接,设备是否具有允许新设备连接的能力。

新设备可以从不同设备接收多个信标。它将选择信号质量最好的一个,并开始发送关联请求。在该关联请求中,将PAN ID设置为所选的PAN,并将目标节点ID设置为所选设备的节点ID。在此框架中,将继续使用新设备的功能。

当路由器或协调器收到此关联请求时,它将为新设备选择一个节点ID,并以关联响应进行响应。然后,新设备获得了其节点ID,但由于未获得安全密钥而无法与其他节点通信。

协调器会将当前的NWK密钥传输到新设备。该传输消息在应用程序层中使用已知的Link key加密。

当新设备收到此消息时,它将使用已知的Link key对消息解密并获取Network Key。之后,该设备实际上已加入网络,并能够与网络中的所有其他节点通信。

设备将发送一条通知消息,以通知网络的其他节点,以通知他们我已加入。

使用Install Code派生的Link key加入

在出厂之前,应该已经使用Install Code码对新设备进行了编程。

在加入之前,用户需要获取新设备的Install Code和Eui64,然后在协调器上对其进行配置。

然后,协调器从Install Code中获取Link key,并将协调器设置为使用此Link key来加密此新设备的传输NWK密钥消息。

其余过程类似于使用众所周知的Link key进行连接的过程。当协调器开始将Network Key传输到新设备时,它将对消息进行加密并将其传输到新设备。当新设备收到此消息时,它将从闪存中读取Install Code并从中获取Link key,然后使用此密钥对消息进行解密并获取Network Key。

免责声明:凡注明为其它来源的信息均转自其它平台,目的在于传递更多信息,并不代表本站观点及立场。若有侵权或异议请联系我们处理。

相关推荐