ZigBee安全相关

ZigBee安全由AES加密算法和CCM操作方式作为安全方案,广泛使用在ZigBee联盟的通信协议中。ZDO层负责安全策略和安全配置的管理。

Technorati 标签: ZigBee 安全

2. 配置

在Z-Stack协议栈中,安全网络配置默认是关闭的,如需开启,将SECURE设置为非0即可。

全局变量zgSecurityMode表示设备默认的安全模式

取值有以下几种情况:

   
全局安全模式 ZG_SECURITY_MODE


模式含义


SECURE =0


ZG_SECURE_DYNAMIC=0


ZG_SECURITY_NONE

 

SECURE非0


定义TC_LINKKEY_JOIN


ZG_SECURITY_SE_STANDARD

 

SECURE非0


定义了ZIGBEEPRO


ZG_SECURITY_PRO_STANDARD


Pro基本的安全设定


SECURE非0


其他


ZG_SECURITY_RESIDENTIAL


住宅安全相关

 

1. 没有定义ZG_SECURE_DYNAMIC或者定义了ZG_SECURE_DYNAMI并且赋值为1

     如果定义SECURE并且zgSecurityMode不为ZG_SECURITY_NONE,那么ZG_SECURE_ENABLED就定义为1,否则为0.

     ZG_CHECK_SECURITY_MODE定义为   zgSecurityMode本身。

2. 如果ZG_SECURE_DYNAMIC没有定义为1,而是定义为其他值,

     ZG_SECURE_ENABLED为SECURE值

     ZG_CHECK_SECURITY_MODE为    ZG_SECURITY_MODE

逻辑关系如下:

 

默认密钥(defaultKey,也称为网络密钥),可以选用默认的,也可以自己定义。定义了DEFAULE_KEY时,选用默认秘钥,默认秘钥在f8wConfig.cfg文件里面。

如果没有定义DEFAULT_KEY的话,使用的密钥在nwk_golbals.c中的defaultKey数组中。

 

1. Default_Key密钥有两种使用方式。

zgPreConfigKeys设为TRUE时,预先配置到网络上的每个设备

zgPreConfigKeys设为FALSE,只配置在协调器上,然后明文分发给入网设备。这种缺点是,加入网络的期间成为”瞬间的弱点”,此时的密钥是明文传递的,容易被竞争对手通过侦听获取。

 

2. 协调器可以通过任何逻辑方法决定一个设备是否允许加入这个网络。

        2.2通过修改ZDSeeMgr.c文件中的函数来实现自定义策略。

              加入策略修改,ZDSecMgr.c文件中的ZDSecMgrDeviceValidate函数

  ZDO接收到ZDO_NEW_DEVICE消息时,触发下面的调用流程。

ZDSecMgrNewDeviceEvent()

           ---->ZDSecMgrDeviceNew()

             ---->ZDSecMgrDeviceJoinDirect()

                ------>ZDSecMgrDeviceJoin()

                    ----->ZDSecMgrDeviceValidate()

 

 

        2.1加入时间窗口设置函数ZDSecMgrPermitJoining

        此函数和允许加入命令请求相关联。

        ZDO_ProcessMgmtPermitJoinReq

            --->ZDSecMgrPermitJoining

 

3.  协调器可以根据自己的判断更新通用网络密钥

     ZDO安全管理器(ZDSecMgr.c)通过

功能说明:加载一个新的NWK Key,并且触发网络密钥更新。允许协调器向网络中的所有设备广播新的网络密钥,此时,新的网络密钥将作为替代密钥保存在所有网络设备中。当协调器调用ZDSecMgrSwitchNwkKey时,一个全网范围内的广播将触发所有设备使用替换密钥。

ZDSecMgrUpdateNwkKey(key,keySeqNum,dstAddr)

     |----------->AddrMgrEntryGet

     |----------->APSME_TransportKeyReq

     |----------->SSP_UpdateNwkKey

     |----------->ZDApp_NVUpdate

 

功能说明:通过网络命令,更改使用的NWK密钥

ZDSecMgrSwitchNwkKey(keySeqNum,dstAddr)

    |--------------->AddrMgrEntryGet

    |--------------->APSME_SwitchKeyReq

    |--------------->SSP_SwitchNwkKey

    |--------------->ZDApp_NVUpdate

 

与安全相关的文件有,ssp.h,ssp_hash.h, nwk_global.c,

nwk_global.c中定义了默认的TCLinkKey:

DEFAULT_TC_LINK_KEY是在nwk_globals.h中定义的:

 

密钥类型(ssp.h文件中):

这六个密钥,可以划分为三类,

 
Master_key         


Link_Key


信任中心


TC_MASTER        


TC_LINK


应用程序


APP_MASTER      


APP_LINK

     

网络安全


标准网络密钥(NWK)


高强度网络密钥(NWK_HIGH)

 

上述两者的最大默认值都为3

 

下面介绍每种密钥的使用场景:

1.TC_MASTER

    由ZDO的事件处理循环ZDApp_event_loop里面的ZDApp_ProcessSecEvent来处理。

向ZDO发起ZDO_NEW_DEVICE事件,会触发新加入设备的请求。

        ZDSecMgrNewDeviceEvent()

           ---->ZDSecMgrDeviceNew()

             ---->ZDSecMgrDeviceJoinDirect()

               ---->ZDSecMgrDeviceJoin()

                 ---->  

 

2. TC_MASTER

    向ZDO的发起ZDO_SECMGR_EVENT事件,会触发安全管理事件,不断配置所有调用

ZDSecMgrEvent()

        ---->ZDSecMgrDeviceCtrlHandler() 设备控制命令

            ZDSECMGR_CTRL_TK_MASTER:ZDSecMgrSendMasterKey 对待入网的设备发送主密钥

            ZDSECMGR_CTRL_SKKE_INIT   : ZDSecMgrEstablishKey    对待加入的设备启动SKKE模式

             ZDSECMGR_CTRL_TK_NWK     : ZDSecMgrSendNwkKey   对带入网的设备发送网络密钥

          ---->

ZDSecMgrDeviceCtrlSetup -->ZDSecMgrDeviceCtrlHandler--->ZDSecMgrSendMasterKey

 

安全相关初始化

main()----->zginit()--->zgPreconfigKeyInit()--->

 

ZDOInitDevice()----->ZDApp_SecInit()---->ZDSecMgrInit()

                                                    ---->ZDSecMgrReadKeyFromNv()

                                                    ---->SSP_UpdateNwkKey()              设置另一个network key

                                                   ----->SSP_SwitchNwkKey()               激活新设置的network key

 

 

 

 

Z-Stack加密算法的开启方法

1. 将f8wConfig.cfg文件中设置为-DSECURE=1

2. 将ZGlobals.c中的zgPreConfigKeys修改为TRUE,表示

 

 

功能说明:向一个指定目的地址请求应用密钥

ZDSecMgrRequestAppKey(partExtAddr)

    |------------>

 

数据链路层通过建立有效的机制保护信息安全。在每个数据帧中,如果开启了安全模式,则会传输安全帧。

在MAC层的FrameControl.SecureityEnabled位控制MAC层的安全(1:安全,0:非安全)。

MAC的安全控制域格式如下:

第一个字节为安全控制域,格式如下:

前三位定义了8种安全级别,分别定义如下:

MIC提供数据的可靠性验证,有32位,64位和128位。ENC提供数据的保密性,包括32位,64位和128位。

Key Identifier Mode有0 , 1 ,2 ,3。关系到Key键值的确定。0:Key由接收帧的帧头来决定。1:由Key Identifier Field子域一个字节结合macDefauleKeySource来决定。

2:Key由4字节的Key Source subfield域和1字节的Key Index Identifier子域来决定

3:Key由8字节的Key Source subfield和1字节的Key Identifier field来决定。

IEEE 802.15.4标准使用的MAC层是CCM模式,CCM为一种通用的认证和加密模式,

 

网络层的加密,在传送过程中,一般使用链接密钥对数据进行加密处理,如果连接密钥不可用,那网络层将利用网络密钥进行保护。

 

网络层对安全管理有责任,但是它存储开销更小,NWK对安全管理有责任,但其上一层控制着安全管理。

 

ZigBee采用三种基本密钥,分布为网络密钥、链接密钥和主密钥。它们在数据加密过程中使用。

网络密钥可以在MAC、NWK和应用层中应用。

主密钥和连接密钥可以在应用层及其子层中使用。

 

 

 

3. 网络访问控制

协调器有多种策略来决定是否允许设备入网。

3.1 时间窗口

协调器开启一个时间窗口,在此时间内,允许设备入网,时间到了后关闭窗口,之后,禁止设备入网。

相关函数:

uint8 ZDSecMgrPermitJoining( uint8 duration )

输入参数:0x00-->不允许设备加入

              0xff--->始终允许设备加入

             0x01~0xfe---->在指定时间内允许设备加入

            

全局变量ZDSecMgrPermitJoiningEnabled为真时,允许设备加入。

3.2 地址过滤

协调器根据请求入网设备的IEEE地址来决定是否允许设备入网。

 

4.密钥更新

协调器可以随时更新网络密钥,有几种策略来实现。一是设定为周期性更新网络密钥。二是通过用户输入指令来更新网络密钥。

ZDSecMgrUpdateNwkKey:允许协调器将新的网络密钥广播给网络中的所有设备。

ZDSecMgrSwitchNwkKey:进行全网的广播,触发所有设备进行密钥更新。此时的密钥是预先存在设备的flash上的。

时间: 2024-08-27 11:45:36

ZigBee安全相关的相关文章

4.26日第14次作业,23章项目整体绩效评估,24-32章信息安全相关知识

一.23章:项目整体绩效评估 1.三E审计是什么的合称?(记)P524 答:三E审计是经济审计.效率审计和效果审计的合称,因为三者的第一个英文字母均为E,顾称为三E审计. 2.霍尔三维结构是从哪三个方面考察系统工程的工作过程的?P527-528 答:霍尔三维结构是霍尔(A Hall)提出的关于系统方法论的结构,它从逻辑.时间.知识三方面考察系统工程的工作过程. 3.投资回收期的公式?(记,并理解)P533答:投资回收期的公式:(累计净现金流量出现正值的年份-1) + (上年累计净现金流量值的绝对

Zigbee系列 学习笔记五(信道选择)

EEE 802.15.4/ZigBee工作在工业科学医疗(ISM)频段,定义了两个工作频段,即2.4 GHz频段和868/915 MHz频段.在IEEE 802.15.4中,总共分配了27个具有3种速率的信道:在2.4 GHz频段有16个速率为250kb/s的信道,在915 MHz频段有10个40 kb/s的信道,在868 MHz频段有1个20 kb/s的信道. 这些信道的中心频率按如下定义(k为信道数): Fc=868.3MHz,(k=0) Fc=906MHz+2(k-1)MHz,(k=1,2

ZigBee通信协议标准化是大势所趋

当前,通信技术迅猛发展,ZigBee作为一种新兴的短距离无线通信技术,正有力地推动着低速率无线个人区域网络的发展.以往受制于ZigBee的使用没有标准,在实际应用中,ZigBee接入互联网时需要复杂的应用层网关,也不能实现端到端的数据传输和控制,相互之间不兼容,不利于产业化的发展. 直到ZigBee联盟的成立并于2004年12月通过了ZigBee 1.0标准,ZigBee开始获得快速的发展.在接下来的十多年里,ZigBee 2.0.ZigBee3.0相继推出.联盟成员规模在不断扩大,在无线通信领

zigbee首次开通

ZigBee流水灯设计 #include <ioCC2530.h>#define uint unsigned int#define uchar unsigned char//定义控制灯的端口#define LED1 P1_0 //定义LED1为P10口控制#define LED2 P1_1 //定义LED2为P11口控制#define LED3 P0_4 //定义LED3为P04口控制//函数声明void Delay(uint); //延时函数void InitIO(void); //初始化L

[ZigBee] 12、ZigBee之看门狗定时器——饿了就咬人的GOOD DOG

引言:硬件中的看门狗,不是门卫的意思,而是一只很凶的狗!如果你不按时喂它,它就会让系统重启!这反而是我们想要的功能~ 1.看门狗概述 看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数.如果看门狗减到0就认为程序没有正常工作,强制整个系统复位.因此可以用看门狗防止程序在跑飞的时候回不到正常模式. 看门狗可用于受到电气噪音.

2016年4月26日作业(项目整体绩效评估、信息安全相关知识、信息工程监理知识)

一.项目整体绩效评估1.三E审计是什么的合称?(记)P524 答:绩效审计(三E审计)是经济审计.效率审计和效果审计的合称,因为三者的第一个英文字母均为E,故称三E审计.2.霍尔三维结构是从哪三个方面考察系统工程的工作过程的?P528 答:从逻辑.时间.知识三方面考查系统工程的工作过程.3.投资回收期的公式?(记,并理解) 答:投资回收期公式为:(累计净现金流量开始出现正值的年份数)-1+(上年累计净现金流量的绝对值/当前净现金流量).二.信息安全相关知识1.在三安系统三维空间示意图中,X,Y,

基于ZigBee与GPRS的农业大棚环境监测系统

近年来随着大棚农业的蓬勃发展,对农业生产的信息化管理成为了一个重要的研究领域.大棚温室内的土壤湿度.环境温湿度.叶面湿度等环境因素对农作物的质量以及稳产.高产有很大的影响.如何实时.有效地获取内部各种环境参数,为种植过程的科学灌溉提供数据支持,进而提高作物产量,增加经济收益,具有重大的意义. 针对上述问题,目前常用的方法是人工巡查和有线数据采集两种.人工巡查方式消耗人力.工作量大,且难以保证数据的实时性与有效性.另一种是采用有线通讯的数据采集方式监测系统,其布线复杂,且受物理线路和环境因素影响大

ZigBee变电站监测数据采集系统

0 引言 2009年国家提出了"智能电网"计划,并制定了建设"坚强智能电网"的时间表."智能电网"将实现"电力流.信息流.业务流"的高度一体化的融合.智能化的变电站是坚强智能电网的重要基础和支撑,它处在智能电网的中心枢纽位置.对上接收着高压电网的电源输入,对下要完成变电站和用户的电源分配,并同时具备接受上级调度中心的信息传递.自动控制.智能调节和在线分析功能.因此,监测变电站运行参数有助于供电部门及时了解变电站的运行和用户用电

基于ZigBee的放射源监控系统研究

我国是放射性同位素生产和使用大国,随着市场经济的发展和各个领域的进一步开放,放射源已经广泛应用于工业.农业.医学.资源.环境.军事.科学研究等领域.放射源在给我们带来巨大技术进步与经济效益的同时,其辐射安全与放射性污染等问题也越来越突出. 近年来,放射源丢失.被盗等事故时有发生:一些用源单位不按国家规定,违规超标使用或私自转移放射源,造成较大的安全隐患.放射源的安全使用和科学监管已成为当前环保工作的难点和重点. 近几年发达国家对环境辐射连续监测的投入有明显加强,如美国EML实验室的SASP监测网