微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于z-stack的安全加密

关于z-stack的安全加密

时间:10-02 整理:3721RD 点击:

现建立一个简单zigbee网络,有两种设备:协调器、终端。现需对网络进行加密,使我的终端不会连到别人的网络,且别人的终端不会连到我的协调器。

实际调试过程中发现一些问题,如下:(zgPreConfigKeys = TRUE,)

(加密:SECURE=1 ,ZG_SECURE_DYNAMIC=1;  不加密:SECURE=0 ,ZG_SECURE_DYNAMIC=0)

1、若对协调器和终端都进行加密,且DEFAULT_KEY相同,则能成功组网,数据通信亦没有问题(抓包发现,数据都已被加密)。

2、若对协调器和终端都进行加密,但DEFAULT_KEY不同,则终端仍能加入网络,但大约8秒钟之后,终端会退出网络(调试发现,终端实际是进行了一次复位)。

3、若对协调器加密、对终端不加密,则终端仍能加入网络,但相互间发送的数据,对方都不会接收(或者接手之后直接丢弃)。

要怎样做才能使未加密、或者KEY不同的终端无法加入网络?

要怎样做才能是我经过加密的终端不会加入到那些未加密、或者KEY不同的网络?

有谁能help me。

怎样加密我的网络,使别人的设备无法连进来。

 这个过程是正常的,整个入网过程中,beacon requets/beacon/associate request /associate response 都是基于MAC的数据帧,所以没有加密的,在这个时候,如果使能加密的话,就会有认证这个过程,如果认证没有通过的话,节点不会发出来device Announce,所以入网没有成功。

所以说评判入网有没有成功是看最后的有没有发device Announce出来的。

所以说未加密和key不同的终端,虽然可以分配到短地址,但是认证不会通过的,最后还是会退网。

同样经过加密的终端也不会加入到密码不对的网络里面去。

根据测试,与你所讲的基本一致。似乎zstack只能在网络层进行加密(SECURE=1时,抓包发现网络层sec字段为1),而MAC层是不能加密的(SECURE=1时,抓包发现MAC层sec字段为0)。而入网过程都是在MAC层进行的,所以即使SECURE=1,这个过程仍然能通过。

若终端和协调器KEY不同,终端若一段时间未通过认证,会自动退出网络。(这样就能使我的终端不会连到别人的网络)

不过有一点好像不对:

若终端未加密、协调器加密,我发现终端不会自动退出网络,且协调器也不会强制令终端退出,不过我的协调器在给这个终端分配了地址之后不会对它进行device Announce,且它们之后也不会进行通信(因为我的协调器已加密)。

谢谢VV的解答,问题已解决

请问如何实现zigbee的双重加密?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top