Part Number:CC2538Other Parts Discussed in Thread:Z-STACK
A设备向信任中心申请与B设备的app链接密钥,成功后,A与B通信却并没有使用app链接密钥进行加密,这是什么原因呢?endToend.rar
今天你自律了呀,:
压缩文件为通信时抓包文件。
,
Annie Liu:
我理解packet sniffer log中涉及的所有设备都是 TI 产品。您是否知道每个版本都在使用哪个版本的 Z-Stack?来自 Z-STACK 和 Z-STACK-ARCHIVE 的 Z-Stack 3.0.2、HA 1.2.2a、Lighting、Mesh 等都是可能的。由于未启动 TC 链接密钥更新,因此似乎未使用 Z-Stack 3.0。我不完全确定要完成什么。两个器设备A 和 B 都是 Zigbee 终端设备,因为它们宣布为缩减功能器件,发送数据请求,并且不发送链接状态消息。因此,他们应该只与他们的父设备(本例中的 Zigbee 协调器)通信,而不是与其他子设备通信。
,
今天你自律了呀,:
我用的都是z-stack mesh版本的协议栈,首先终端设备并不只是能跟它们的父设备通信,在抓包文件中显然可以看出两个终端设备是直接通信的而未经过父设备,且协议规范里面有提到app链接密钥(此密钥并不是TC链接密钥)是用来加密端到端通信的,所以为啥两个终端设备端到端通信并没有使用链接密钥加密呢,如果不用链接密钥加密,那向信任中心申请端到端链接密钥有何用呢?
,
今天你自律了呀,:
,
Susan Ren:
如果Zigbee终端设备将“始终打开”并与其他终端设备通信,那么它们应该被配置为Zigbee路由器节点。这样,他们就可以执行网格路由功能。客户可以调试 ZDSec传输密钥输入,以进一步确定 ZDSecMgrLink 芯片组未执行或未生效的原因。一个常见原因可能是没有建立正确的安全定义。
,
今天你自律了呀,:
从抓包文件可以看出,两个终端设备已经从信任中心获得了app链接密钥,但他们交互数据时并没有使用app链接密钥加密;所谓没有建立正确的安全定义是什么意思呢,需要如何设置。谢谢!
,
Susan Ren:
终端设备的运行方式与路由器不同,因此 Z-Stack 设置会有所不同。调试 ZDSecMgr 传输密钥输入并找出 ZDSecMgrLink 芯片组未执行或未生效的原因,并评估将“终端设备”更改为“路由器”节点配置的操作。
,
今天你自律了呀,:
好的谢谢,我先试试。
,
今天你自律了呀,:
我想问问没有建立正确的定义是什么意思?
,
今天你自律了呀,:
如果你要实现端到端通信用链接密钥加密,你在代码中会如何实现呢,可以给我解答一下吗谢谢
,
Annie Liu:
ZG_CHECK_SECURITY_MODE 必须是 ZG_SECURITY_SE_STANDARD KEY_TYPE_APP_LINK 才能在 ZDSecMgrTransportKeyInd 中处理。ZG_SECURITY_MODE 应该由 ZGlobals.h 文件定义。
Zigbee Security Features SimpleLink Academy Lab介绍了针对不同设备的部分内容。您还可以查看 Z-Stack Mesh Developer's Guide.pdf,它详细介绍 APS 链接密钥。
,
今天你自律了呀,:
您说的这个问题我知道,显然你还没看明白我想问的啥;问题是:两个终端设备已经接收到app链接密钥却无法使用其加密通信时的数据。
,
Annie Liu:
我明白这个问题。这就是为什么我请您调试 ZDSecMgrTransportKeyInd 并找出 ZDSecMgrLinkKeySet 未执行或未生效的原因,并评估将终端设备更改为路由器节点配置的操作。