由于ZigBee是一种无线技术,因此安全性非常重要,因为黑客可以通过无线检测到这些数据包。想象您有一个智能门锁。如果黑客捕获了打开您的门的数据包,那么他可以重发该文件以打开您的门。这是很危险的。

在ZigBee的网络里面,面临的两种最为典型的安全威胁:
为了防止这种情况发生,ZigBee定义了许多安全功能。下面将会做简要介绍。
APS层和网络层的加密流程,如下图所示:

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

APS层和网络层的两个加密环节使用的都是AES128对称加密算法,这意味着需要使用相同的密钥进行加密和解密。


添加了帧计数器以防止重发攻击。让我们看看它是如何工作的。

在发送方
在接收方
由于Frame Counter是一个32位值,因此如果设备长时间保持运行状态,它可能会自动溢出。显然,如果帧计数器被覆盖,可能会出现问题。为防止这种情况发生,必须在溢出之前更新Network Key。如果更新了Network Key,帧计数器则可以再次从零开始。
对于End Device来说,它通常只需要保存其父节点的Frame Counter即可。
(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)

