摘要:
Z-stack对Zigbee提供了全面的支持,功能之强大,性能稳定、安全性高,说到安全性是我们今天的主题。CC2530硬件支持128bit的AES加密算法,在协议栈中为了避开相同设备的干扰,和防止被其他设备监听,我们就采用这个技术将数据加密来提高数据的安全性。
前日,微信上刷到一篇文章——《ZigBee曝出严重漏洞,或引发物联网安全危机》,当时我就惊呆了!回过神来,立马点进去探个究竟。看完文章,我真是心潮澎湃,只想反问:自己生不出孩子,可不可以怪隔壁的老王?明明是制造厂商没有负责任,却责怪Zigbee安全性不高。
其实,在我眼里,Zigbee是无线里最安全的!是…最安全的!无线里最安全的!我已经忍不住了,感觉再不说点什么就ZigBee黑锅背的可就大了。那么,且看小编娓娓道来,给你带来一场技术性的、有冲击性的解析。
对于ZigBee技术,至今全球尚未出现一起破解先例。其安全性源于其系统性的设计:采用AES加密(高级加密系统),严密程度相当于银行卡加密技术的12倍;其次,Zigbee采用蜂巢结构组网,每个设备均能通过多个方向与网关通信,网络稳定性高;另外,其网络容量理论节点为65300个,足够满足家庭网络覆盖需求,即便是智能小区、智能楼宇等仍能全面覆盖;最后,Zigbee具备双向通讯的能力,不仅能发送命令到设备,同时设备也会把执行状态反馈回来,这对终端使用体验至关重要,尤其是安防设备,倘若你点击了关门,却不知道门是否真的已经锁上,将会带来多大的安全隐患;此外,Zigbee采用了极低功耗设计,可以全电池供电,理论上一节电池能使用10年以上,节能环保。
AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预计能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。
在Z-stack中采用的是128bit的加密,首先需要一个128bit的key,这个KEY不同,加密出来的内容也不同在Z-stack中是通过DEFAULT_KEY=”{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x 0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}”这种方式来定义的。
在Z-stack中已经在协议栈中实现了这个加密算法,如果需要使用直接开启这个服务就可以了,下面我们主要将Z-stack的加密算法的开启。
Z-stack1.4.3加密算法的功能开启方法:
1.将f8wConfig.cfg文件中设置为-DSECURE=1,这句话的意思是SECURE=1,这个变量在协议栈中作为if语句的条件使用,条件为真的语句中就是开启加密算法的函数。所以要使用第一步是要将这个参数设置为1。
2.将ZGlobals.c中的uint8 zgPreConfigKeys = FLASE;修改为uint8 zgPreConfigKeys = TRUE。
3.准备一个key,这个可以在函数nwk_global.c中修改:
如果使用了加密算法后,网络中所有的设备都需要开启这个算法,而且各个设备中的key必须相同。否则后果是很严重的,这会导致你的网络不能正常通讯,因为没有加密的数据或者相同key加密,这些数据网络是不认识的,根本就不会传到网络层。
加密算法开启以后,如果你需要修改代码,就必须改变你的key,或者是擦除一次你的flash,否则会出现不可逾期的错误,而且没有规律。通常的做法是擦除flash一次,这样可以保证和整个网络的key相同。
除此之外,还加入了一个加密入网白名单机制,通过将入网设备的Mac地址加密后生成key可以在运行时通过串口协议控制节点的入网许可,同时也限制了网内设备的生产厂家必须是经过协调器开发者认证的,否则不可能得到合法的key。
通过以上的论证,我真的认为黑客想进入系统是很难的!
在这个时代,放眼全球,“无线取代有线”已是大势所趋,如今人们只需置身于WiFi环境,或者打开设备的蓝牙功能,彼此间就能轻松的进行数据传输。另一方面,无线技术的不断发展,也为家庭物联网领域带来了全新的发展机遇,而家庭自动化(智能家居)更是成为了先进无线技术的竞技场。谈及无线技术,多数人最先想到的可能会是WiFi、蓝牙,但实际上,目前在智能家居行业中,较为主流的无线技术一共有四种:WiFi、蓝牙、Zwave和ZigBee。
其实,智能化家居这个概念早在十几年前就出现了,1998年比尔盖茨就为自己建造过一座智能化的豪宅。早期的智能家居是有线的,这在很大程度上,限制了其自身的发展:首先是布线问题,需要开墙破洞,使得多数已装修好的房子不愿加入进来;其次,将线布好埋于墙体内,检修维护非常不便,一旦出现问题,意味着要再次开墙破洞;最后,就是造价不菲,以至于早期的智能家居只适合高端人群,而非平民消费品。
无线解决方案为家居自动化带来了曙光,剪掉了这些繁琐的线,就减去了很多麻烦。就目前而言,无线智能家居根据所使用的技术不同,主要分为蓝牙、Wi-Fi、Zwave和ZigBee四种,无线技术让人们得以实现对家居的远程控制。
经过这么一番技术性的解析后,真是让人更加坚定Zigbee是安全的!当然,“采用 ZigBee 协议的智能家居设备存在严重漏洞”客观上并没有错,只是这其中的问题出在制造厂商,并不能说ZigBee 存在安全漏洞!
作者:王文斌,华享科技总经理
物联传感小小夕 整理发布
原文链接:https://smartroomcn.com/13355.html