ZigBee是一种非常注重安全的协议,它有许多机制来帮您实现种种级别的安全。讨论安全问题,应该根据自己的实际项目需求,而非追求极致就是越好。当您在ZigBee上实施加密时,你的有效带宽也会实际降低,因此在确定您所需的安全模型之前,我们先来看看XBee有哪些机制可以保护网络和数据通信的安全。

ZigBee 3.0增强了网络的安全特性,有两种安全的方法来生成网络: 集中式安全入网:这种方法采用协调器/信任中心来生成网络,管理网络资源和连接密钥。 分布式安全入网:这种方法没有协调器/信任中心,它通过路由节点为其它节点提供入网密钥。

在XBee3为了支持ZigBee 3.0的默认安全机制,参数中默认使用中心化的信任中心(EO=2),在S2C,默认是分布式的信任中心(EO=0). 在一个网络中,EO的bit1必须相同,以便它们知道如何做密钥交换。由于在S2C中,CE=1代表协调器,由它维护着集中式安全的网络。在ZigBee 3.0引入了分布式网络的概念,CE不再特指协调器。XBee3的Router为了加入之前S2C协调器维护的集中式网络,应该使用EO=2,而非和S2C一样配置为EO=0。

首先,在ZigBee网络内,只有入了网,才有了资格和网络内的节点进行通信。即便你入了网,每个模块都有唯一的MAC地址,您只能收到指定要发给你的信息或是广播的信息。第一层安全防护实际上在于入网的控制上。通常网关(协调器)在应用层会维护一张网络内许可以设备列表,如果有未授权的设备入网,可以用远程AT命令使它退网。ZigBee网络在正常运行时可以设置为封网运作,这时它并不允许新的设备加入,只有在部署或是运维时才会开启一定的加入时间窗口,因此第三方设备也很难有机会尝试入网。
不过,在未开启加密时,空中传输的数据是明文的,理论上黑客是可以通过嗅探空中的数据包来截取一些数据。但是因为不同企业应用层的数据格式都只有在内部知道,空中的数据包即使被截取,要识别出是什么数据也很难。很多工业应用都是传输一些传感器采集的数据,这部分数据一般也不需要特别的保护。因此,在一些工业应用中,为了更有效利用带宽,很多业务选择的是不开启通信加密。

但在智能家居等应用领域,由于会涉及到计费,以及不同厂家的设备相互通信,开启数据通信加密也是很常见的。在XBee模块上,有三个参数决定了ZigBee加密网络的安全等级。不论哪一种等级,开启加密后,通讯会用128位AES加密,即使用嗅探工具也无法识别出数据包。不同安全等级主要区别在于密钥的分发。在ZigBee网络中,数据包的在APS层的加密是通过网络密钥NK。在启用点对点加密前,需要先把密钥分发给对应的节点,这时可用