ZigBee的加密和解密介绍
ZigBee方案:TI-ZStack
ZigBee协议栈版本:ZStack 3.0.1

在ZStack 3.0.1中虽然引入了Install Code的方式,但也保留了TC的概念,TC是Trust Center(信任中心)的概念,本章内容主要讲解的是TC的交换秘钥过程。
1. 非对称加密算法。
对称加密算法在加密和解密时使用的是同一个秘钥,而非对称加密算法用的是两个秘钥!
这两个秘钥分别是:公钥(Public Key)、私钥(Private Key)
公钥顾名思义就是公开的钥匙,也就是所有人都知道这个钥匙的内容。
私钥是只有通信相关人员才拥有的钥匙(比如一个ZigBee网络中的所有节点都可以拥有私钥,而其他网络无法知道这个私钥的内容)。
非对称性加密算法,比如AES
ZigBee设备加入网络后,必须得到私钥才能通信(用来解密数据包内容),这个私钥是由一个叫TC的设备(一般是协调器)颁发的。
颁发过程(或者称为:交换秘钥过程):TC设备拿着公钥(Public Key)通过非对称性算法对私钥(Private Key)进行加密,然后将加密后的数据包发给入网的设备,入网设备通过公钥和非对称算法把该数据包解密出来得到私钥,此后所有数据交互都使用私钥(Private Key)进行加密。
漏洞:由于公钥是全世界公开的,而非对称性算法AES也是全世界一致的,所以如果我们可以在交换秘钥的过程中捕获该数据包,就可以解密出私钥!
解密测试:
抓包工具抓取设备入网的前面几个步骤:设备发送beacon request查询可以加入的网络,得到回复后尝试进行关联请求(Association Request),得到网络的回复(Association  Response),然后非常重要的地方来了:Transport Key,这就是交互秘钥过程,这个数据包就是TC设备(比如协调器)用公钥(Public Key)和非对称性加密算法(AES)对私钥(Private Key)的加密数据包!

我们在抓包工具中把公钥配置进去,公钥在协议栈中可以找到,ZStack3.0.1是在文件nwk_globals.h中:
// ZigBee Alliance Pre-configured TC Link Key - 'ZigBeeAlliance09' (for Centralized networks)
#define DEFAULT_TC_LINK_KEY             { 0x5a, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6c,\
                                                               0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x30, 0x39 }
图:

抓包工具内嵌了非对称性加密算法了,所以在捕获交互秘钥的数据包后自动的解密出私钥(Private Key),然后后面所有的数据包都会自动私钥私钥进行解密!
可以看到所有交互信息都是明文了!

ZigBee技术尤其是ZigBee3.0,标志着ZigBee真正可以进行大规模商用的,也说明这个技术已达到新的突破点,更加成熟,行业和技术上的交流学习可以加入QQ群,让我们一起为物联网的产业化加油: 575036716

有需要开发套件可以通过链接进行了解哈: https://shop115377068.taobao.com


阅读更多
个人分类: ZigBee CC2530
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

ZigBee的加密和解密介绍

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭