网络安全攻防:ZigBee安全

安全 应用安全
ZigBee(又称紫蜂协议)是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。

[[395695]]

微信公众号:计算机与网络安全

ID:Computer-network

1. ZigBee简介

ZigBee(又称紫蜂协议)是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。ZigBee来源于蜜蜂的八字舞,由于蜜蜂(Bee)是靠飞翔和“嗡嗡”(Zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的、低功耗的近距离无线组网通信技术。ZigBee是一种低速短距离传输的无线网络协议。ZigBee 协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层和媒体访问控制层遵循IEEE 802.15.4标准的规定。

给出ZigBee的定义之后,接下来对ZigBee的特点进行详细的介绍。

(1)低功耗:两节五号电池支持长达6个月到2年左右的使用时间。

(2)低成本:由于简化了协议栈,降低内核的性能要求,以CC2530为例,内核就是一个增强型的8051内核,从而降低了芯片成本,每块CC2530大约15元。

(3)低速率:ZigBee可以提供3种原始数据吞吐率,分别为:250 kbit/s(2.4 GHz)、40 kbit/s(915 MHz)、20 kbit/s(868 MHz)。

(4)近距离:“近”是相对的,与蓝牙相比,ZigBee属于低速率远距离数据传输。

(5)可靠:采用碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突;节点模块之间具有自动动态组网的功能,信息在整个 ZigBee网络中通过自动路由的方式进行传输,从而保证了信息传输的可靠性。

(6)短时延:针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时延都非常短。

(7)网络容量大:ZigBee可采用星状、树状和网状网络结构。

(8)安全:ZigBee提供数据完整性检查和鉴权功能,加密算法采用通用的AES-128。

(9)高保密性:64位出厂编号和支持AES-128加密。

ZigBee协议的层次结构如图1所示。

 

 

图1 ZigBee协议的层次结构 

 

物理层是由IEEE802.15.4规范定义的,该协议与IEEE 802.11协议类似,都是无线网络协议。而介质访问控制层也与物理层一样,是由该协议定义的,这一层还包含了构建扩张ZigBee网络的各项功能,如相连设备间的拓扑结构、数据帧的结构设计、“设备的角色”以及网络上的“建立关联”和“解除关联”等。网络层以及应用层都是根据ZigBee标准定义的,其中,网络层主要是负责实现高层的功能,如“网络程序”“设备发现”“地址分配”和“数据路由”。应用层则是这个协议栈的最高层,规定了“应用对象”的操作和接口。

2. ZigBee安全

无线取代有线是一个趋势,因为每个人都可能为繁杂的线路烦恼。而现在无线技术主要分为蓝牙、Wi-Fi、Zwave、ZigBee 4种。而ZigBee在小范围的无线技术中是比较安全的。

ZigBee使用的加密算法是AES加密算法。AES(Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密金融、电信和政府数字信息等内容的方法。AES是一个新的可以用于保护电子数据的加密算法。明确地说,AES是一个迭代的、对称密钥分组的密码,它可以使用128 bit、192 bit和256 bit密钥,并且用128 bit(16 B)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。

在Z-stack中采用的是128 bit的密,首先需要一个128 bit的key,不同的key加密出来的内容也不同,在 Z-stack 中是通过 DEFAULT_KEY="{0x01,0x03,0x05,0x07,0x09,0x0B,0x0D,0x0F,0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0D}"这种方式来定义的。

Z-stack已经在协议栈中实现了这个加密算法,如果需要使用,直接开启这个服务就可以了。

如果使用了加密算法,网络中所有的设备都需要开启这个算法,而且各个设备中的 key必须相同,否则后果是很严重的,这会导致网络不能正常通信,因为没有加密的数据或相同key加密,这些数据网络是不认识的,根本就不会传到网络层。

加密算法开启以后,如果需要修改代码,就必须改变key,或擦除一次flash,否则会出现不可预期的错误,而且没有规律。通常的做法是擦除一次flash,这样可以保证和整个网络的key相同,除了这个机制以外,还具备白名单机制。在入网时,将入网设备的MAC地址加密后生成key,可以在运行时通过串口协议控制节点的入网许可。

3. ZigBee攻击

作为无线通信协议,它避免不了在通信过程中造成的协议漏洞。在使用ZigBee通信时,攻击者可以嗅探传输的数据,捕获传输的数据后进行重放攻击,在初次通信时嗅探加密密钥、欺骗攻击、拒绝服务。这些攻击是无线通信协议的通病,每个无线通信协议基本上都会存在。

将ZigBee的攻击分为两种,一种是窃听攻击,另一种是密钥攻击。

(1)窃听攻击

ZigBee的安全机制共有3种模式:非安全模式、访问控制模式和安全模式。

非安全模式:为默认安全模式,即不采取任何安全服务,因此可能被窃听。

访问控制模式:通过访问控制列表(ACL,Access Control List)限制非法节点获取数据,ACL中包含有允许接入的硬件设备MAC地址。

安全模式:采用AES 128位加密算法进行通信加密,同时提供有0、32、64、128 bit的完整性校验,该模式又分为标准安全模式(明文传输密钥)和高级安全模式(禁止传输密钥)。

所以,窃听攻击发送在非安全模式下,攻击者可以通过抓取数据分组的形式,查看受害者的数据分组内容。

(2)密钥攻击

由于在密钥传输过程中,可能会以明文形式传输网络/链接密钥,因此可能被窃取到密钥,从而解密出通信数据,或伪造合法设备。也有可能通过一些逆向智能设备固件,从中获取密钥进行通信命令解密,然后伪造命令进行攻击。

ZigBee攻击的工具,比较有名的就是KillerBee。KillerBee是一套专门用来攻击ZigBee网络和IEEE802.15.4 协议的一组攻击套件,它是基于 Python 编写的应用程序框架。整个项目都是在Linux操作系统上完成的。而这个项目不是去完成攻击,而是提供编写程序的框架,攻击者可以通过自己学习这个程序以简化常见的攻击过程。详细地说,就是使用这个框架中的一些功能可以完成对ZigBee的安全漏洞攻击,在攻击的同时还需要使用KillerBee工具包。

要想使用KillerBee工具包的全部功能,有些组件需要被编译链接,然后创建到工具包中,其中主要包括下面的硬件和软件。

硬件:RZ Raven USB接口的记忆棒、AVR Dragon片上编译器、100 ms到50 ms JTAG支持架适配器、50 ms“公头对公头”的连接头和10针2排5列100 ms“母头对母头”带状连接线。

软件:AVRDUDE工具、RZUSBstick记忆棒的免费KillerBee固件、主机(用于运行连接和将程序写入RZUSBstick记忆棒中)。 

责任编辑:庞桂玉 来源: 计算机与网络安全
相关推荐

2021-06-16 09:40:44

网络安全物联网代码

2021-04-23 13:35:41

网络安全蓝牙Wi-Fi

2019-01-10 15:44:00

2021-05-24 11:40:50

网络安全数据库安全服务器

2021-05-07 14:12:50

网络安全Web安全CSRF

2021-02-02 14:02:48

网络安全对称密码密钥

2021-04-06 10:30:49

网络安全暗网互联网

2021-06-11 13:57:46

网络安全大数据安全互联网

2021-05-08 15:22:31

网络安全Web安全SQL

2021-04-27 10:00:27

网络安全WebURL

2021-05-27 12:30:49

网络安全数据泄露加密

2021-05-25 11:40:27

网络安全隐写互联网

2021-03-22 10:52:58

网络安全Android数据安全

2021-04-15 11:55:40

网络安全无线网络WPA

2021-04-13 11:30:09

网络安全无线网络WEP

2021-04-30 19:38:42

网络安全WebHTTP

2021-05-13 20:38:30

2021-05-21 12:52:47

网络安全Android App虚拟机

2021-06-01 09:26:20

网络安全APT代码

2021-04-01 10:40:22

网络安全软件
点赞
收藏

51CTO技术栈公众号