datasheet

EEWorld 电子工程世界

文章数:3758 被阅读:1620479

账号入驻

干货 | ZigBee3.0 信任中心加解密

2019-01-06
    阅读数:

EEWorld

电子资讯 犀利解读 

技术干货 每日更新

     

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),然后后面所有的数据包都会自动私钥私钥进行解密!




可以看到所有交互信息都是明文了!



聚焦行业热点, 了解最新前沿

敬请关注EEWorld电子头条

http://www.eeworld.com.cn/mp/wap

复制此链接至浏览器或长按下方二维码浏览

以下微信公众号均属于

 EEWorld(www.eeworld.com.cn)

欢迎长按二维码关注!


EEWorld订阅号:电子工程世界

EEWorld服务号:电子工程世界福利社 

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved