你(们)好
我正在尝试建立一个安全的 ZigBee 网络
我在节点和协调器中均具有 ENBALED NV INIT 和 NV REESTORE 功能
但默认情况下会注释"DTC_LINKKEY_JOIN"
协调器-我正在使用 ZNP Mesh
节点是 ZigBee 路由器器件
我是否必须匹配 ZigBee 协调器和节点(路由器)中的某些密钥
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你(们)好
我正在尝试建立一个安全的 ZigBee 网络
我在节点和协调器中均具有 ENBALED NV INIT 和 NV REESTORE 功能
但默认情况下会注释"DTC_LINKKEY_JOIN"
协调器-我正在使用 ZNP Mesh
节点是 ZigBee 路由器器件
我是否必须匹配 ZigBee 协调器和节点(路由器)中的某些密钥
但我对此有疑问
按照 z 堆栈开发人员指南
""""如果设置为 true,则必须在每个设备上预配置默认密钥的值(完全相同的值)。 如果将其设置为 false、则只需在协调器器件上设置默认关键参数。 请注意、在后一种情况下、密钥将通过无线方式分配给每个加入器件。 因此,在加入过程中存在一个“漏洞时刻”,在此期间,对手可以通过侦听空中流量来确定密钥并破坏网络安全
""
这就是我保持不变的原因
在我的案例中、我还设置了两个协调器和一个节点
每个协调器都有不同的 TCL_KEY,我已经根据固件制作了两个具有密钥匹配的节点代码,在这种情况下,它有时会起作用 (节点仅通知匹配的密钥协调器),但有时它不起作用,节点会自行重新启动
您对此有何建议?
下面是 ubiqua 数据包分析器日志
情况
Coordintaor 键
-DDEFAULT_KEY ="{0x01、0x03、0x05、0x07、0x09、 0x0B、0x0D、0x0F、0x00、0x02、 0x04、0x06、0x08、0x0A、 0x0E、 0x0F}"
节点密钥
-DDEFAULT_KEY ="{0x01、0x03、0x05、0x07、0x09、 0x0B、0x0D、0x0F、0x00、0x02、 0x04、0x06、0x08、0x0A、 0x0C、 0x0D}"
ZNP 上的 SoC 意味着?
如何附加 ubiqua 数据包分析器日志文件,因为它没有上载(文件格式有问题)
我在 CC2530上使用 ZNP 堆栈、对于应用 、我使用 Z 工具
CC2530使用串行转 USB 转换器连接到我的 PC
节点设备未通过身份验证时出现问题,应重新启动或重新启动(看门狗重置) 或者类似的东西、它应该开始重新搜索新网络 (如果我缺少一些东西,请更正我)
在 ZDApp_ProcessNetworkJoin 中,它将通过调用"ZDApp_ResetTimerStart( MAX_DEVICE_unauth_TIMEOUT );"来创建一个 ZDO_DEVICE_RESET 事件。 如果未提供 NWK 或 TC_LINK_KEY 不匹 配、则会转至 ZDApp_EVENT_LOOP 中以下代码的红色部分、我想您可以在那里执行您的过程。
if (事件和 ZDO_DEVICE_RESET)
{
#ifdef ZBA_FRELET_NWKKEY
if (devState == dev_end_device_unauth)
{
ZDSecMgrFallbackNWKKey();
}
其他
#endif
{
//设置 NV 启动选项以强制"新建"加入。
zgWriteStartupOptions (ZG_STARTUP_SET、ZCD_STARTOPT_DEFAULT_NETWORK_STATE);
//设备已处于取消验证状态,因此请重置
//注意:此呼叫不会返回
SystemResetSoft();
}
}
我已通过更改节点中的默认键值进行检查
尽管协调器中未按预期进行设备通知
但 PC 在事件中未到达、
if (事件和 ZDO_DEVICE_RESET)
您是说我必须使用 TC_LINK_KEY、而不是默认密钥吗
并尝试通过更改 节点中"NWK_globals.h"中的 tc_link_key 值来实现此目的
并检查
就像现在一样、在我的代码中禁用了 TC_LINKKEY_JOIN 预处理器
如果我错了,请纠正我的问题?