ZIGBEE学习之---ZSTACK1.4.3修改密钥(CC2430)

10.安全(Security)

10.1 概述(Overview)

ZigBee security is built with the AES blockcipher and the CCM mode of operation as the underlying security primitive。AES/CCM安全算法是ZigBee联盟以外的研究人员发明的,并且广泛应用于其他通讯协议之中。

ZigBee提供如下的安全特性:

l  构造安全 (Infrastructure security)

网络访问控制(Network access control)

3  应用数据安全

10.2  配置(Configuration)

为了拥有一个安全的网络,首先所有的设备镜像的创建,必须将预处理标志位SECURE都置为1。在文件“f8wConfig.cfg”文件中可以找到。

接下来,必须选择一个默认的密码。这个可以通过“f8wConfig.cfg”文件中的DEFAULT_KEY来设置。理论上,这个值设置为一个随机的128位数据。内容如下,上电联网依靠这个128位数值查找
/* Default security key. 连网密钥,从协调器下发或者同一配置成相同的值 受gPreConfigKeys变量控制*/
-DDEFAULT_KEY="{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}"

这个默认的密码可以预先配置到网络上的每个设备或者只配置到协调器上,然后分发给假如网络的所有设备。这个可以通过文件“Z_Globals.c”文件的 gPreConfigKeys变量 选项来配置。如果这个值为真,那么默认的密码将被预先配置到每一个网络设备上如果这个值为假,那么默认的密码只需配置到协调器设备当中。注意,在以后的场合,这个密码将被分发到每一个加入网络当中的设备。因此,加入网络期间成为“瞬间的弱点”,竞争对手可以通过侦听获取密码,从而降低了网络的安全性能。

10.3 网络访问控制(Network access control)

在一个安全的网络中,当一个设备加入网络时会被告知一个信任中心(协调器)。协调器拥有允许设备保留在网络或者拒绝网络访问这个设备的选择权。

信任中心可以通过任何逻辑方法决定一个设备是否允许进入这个网络中。其中一种就是信任中心只允许一个设备在很短的窗口时间加入网络。这个是可能的,举例说明,如果一个信任中心设备有一个“push”按键。当按键按下,在这个很短的时间窗口中,它允许任何设备加入网络。否则所有的加入请求都将被拒绝。以他们的IEEE地址为基础,一个秒级的时间段将被配置在信任中心用来接收或者拒绝设备。

这种类型的策略可以通过修改ZDSeeMgr.c模块中的ZDSecMgrDeviceValidate()函数来实现。

10.4 更新密码(Key Updates)

信任中心可以根据自己的判断更新通用网络密码。应用程序开发人员修改网络密码更新策略。默认信任中心执行能够用来符合开发人员的指定策略。一个样例策略将按照一定的间隔周期更新网络密码。另外一种将根据用户输入来更新网络密码。ZDO安全管理器(ZDSecMgr.c)API通过 “ZDSecMgrUpdateNwkKey”和“ZDSecMgrSwitchNwkKey”提供必要的功能。“ZDSecMgrUpdateNwkKey”允许信任中心向网络中的所有设备广播新的网络密码,此时,新的网络密码将被作为替代密码保存在所有网络设备中。一旦信任中心调用“ZDSecMgrSwitchNwkKey”,一个全网范围的广播将触发所有的网络设备使用替代密码。

10.5 快速参考(Quick Reference)

 修改密钥,只改前3步就可以了。

使能安全(Enabling Security)

SECURE = 1(f8wConfig.cfg)

使能预配置网络密码(Enabling Preconfig Network Key)

gPreConfigKeys = TRUE(Z_Globals.c)

设置预配置网络密码(Setting Preconfig Network Key)

设置defautlKey = {KEY}( nwk_globals.c)

使能/禁止信任中心的加入许可功能(Enabling/Disabling joining permission on the Trust Center)

调用函数ZDSecMgrPermitJoining()(ZDSecMgr.c)

加入期间特定设备批准(Specific device validation during joining)

修改ZDSecMgrDeviceValidate(ZDSecMgr.c)

网络密码更新(Network key updates)

调用ZDSecMgrUpdateNwkKey()和ZDSecMgrSwitchNwkKey()函数(ZDSecMgr.c)

 


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值