各位好:
我在调试z-stack3.0协议栈过程中发现,协议栈默认的密钥传输模式为空中传输密钥,我参看了开发指南,发现密钥传输方式有两种,一种是预配置的,即每个设备代码中都预先配置一个相同的网络密钥,另一种是每次加入网络由信任中心进行分发密钥;
我理解前一种即预配置密钥的方法可以减少入网时候的往来报文(因为没有密钥分发往来报文?),因此我参照开发指南上对以下两处进行了修改:
1. ZGlobals.c文件中
uint8 zgPreConfigKeys = TRUE; // 设置为TRUE使用f8wconfig.cfg中设置的密钥,每个设备必须设置的密钥一致,设置为FALSE则使用空中传输密钥的方式
2. f8wConfigs文件
/* Default security key. */ //设置为0的话随机生成一个密钥
-DDEFAULT_KEY="{0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf}"
在ZC和ZE代码中以上两处都进行了修改,修改前后进行了对比实验,发现入网的往来报文完全一样,均有密钥请求,密钥传输、成功、确认等环节,此后我又将ZE中密钥DEFAULT_KEY中改了一个字节数据使ZC和ZE的密钥预配置不一样,发现仍然可以连接网络,证明此方式没有奏效;
另外我使用的是2538板件,用的是TI官方的400+节点宏定义;
请问一下我没有实现预配置密钥安全设置(通过预配置网络密钥减少入网报文)的原因???