在信息化高速发晨的今天,信息系统已经运用在越来越多的行业中。我国的农业信息化也不饲外,在部分粮仓中已经使用了信息化的管理系统,如无线粮情监控系统。无线粮情监控系统可对粮食贮藏过程中影响的参数进行实时监测、分析,向管理人员提供准确信息与参考,是保障粮食储存品质的有效手段。系统通过无线传感器网络,将影响粮食贮藏过程中的参数进行实时发送到监控中心,当发现不良变化时,能够及时发出预警信息,保证粮食储存的安全。所以,系统传输数据的安全性就显得尤为重要,如果不能保证传输数据的安全,一旦发生问题,就可能对相关的人力物力财力造成较大损失。

为此,我们在研究分析Zigbee协议栈的安全架构、密钥管理和信任中心等内容基础上,提出了一种基于商业模式的信任中心下AES-128加密算法和解密算法。

一、无线粮情监控系统Zigbee的无线通信网络

无线粮情监控系统示意如图所示。

Zigbee是一种新兴的短距离、低功耗、低数据速率、低成本、低复杂度的无线网络技术。

网络中包含3种类型的节点,即协调器、路由器和终端设备。一个Zigbee网络有且仅有一个协调器,该设备负责启动网络,配置网络成员地址等。路由器主要实现扩展网络及路由消息的功能。终端设备一般作为网络的边缘设备。Zigbee支持星状、树状和网状3种网络拓扑结构,如图所示。

直接互连,由路由器中的路由表配合实现网状路由。

二、无线粮情监控系统Zigbee的协议安全

Zigbee技术提供的安全服务分别对应在MAC层、NWK层和APL层上。安全协议的执行要以整个协议栈正确的运行而不遗漏任何一步为前提。各层都有可靠的安全传输机制用于传输数据帧。

1、MAC层安全管理

MAC层安全管理确保MAC命令帧、信标帧和响应帧的安全性。ZigBee使用受保护的MAC数据帧来确保一个单跳网络中信息的传输,而多跳的网络一般是通过上层的安全机制来保证。MAC层使用高级加密标准(AES)作为主要的密码算法,并且基于AES算法生成一系列的安全机制,用来保证MAC层数据帧的一致性、机密性和真实性。当MAC层传输(接收)一个使用安全机制的帧时,首先检查该帧的目标地址(源地址),并检索相对应的密钥进行逆向处理。每一种安全机制都将对应着一个密钥,而在MAC层帧头中有一位直接指明该帧是否使用安全机制。

2、NWK层安全管理

NWK层使用高级加密标准(AES)的CCM*操作模式来加密数据帧。CCM*模型是CCM模型的微小修改,它包括CCM模式的所有的功能,此外还提供了单独的编码及完整性检测的功能。CCM模式是由计数器(Counter, CTR)模式和密码块链接消息鉴权代码(Cipher Block Chaining-MAC,CBC-MAC)模式相结合构成的。

3、APL层安全管理

APS层负责输入帧、输出帧的安全传输,密钥的安全建立和管理,高层通过产生APS层原语控制密钥管理。APSME提供服务允许2个设备互相建立一个链接密钥,允许初始设备传送密钥,允许设备通知另一设备改变状态。

4、密钥管理

ZigBee技术在数据加密的过程中,主要使用3种密钥,它们分别是主密钥、链接密钥和网络密钥。主密钥可以在制造设备时由工厂安装,也可以通过信任中心设置,或者是个人识别码(PIN)、口令和密码等。主密钥是两个设备长期安全通信的基础,也可以作为一般的链接密钥使用。链接密钥是在一个网络中被两个相互链接的设备共享的,是两个设备安全通信的基础,它可以通过主密钥建立,也可以在制造设备时安装。网络密钥可以通过信任中心设置,也可以在制造设备时安装,它可应用在数据链路层、网络层和应用层。

设备1是一个FFD,可存储2个(活动的和备用的)网络密钥,设备2是一个RFD,只能存储一个网络密钥。在收到传输网络密钥命令后,设备1用新的网络密钥取代其备用网络密钥,而设备2必须用新的网络密钥取代其活动的网络密钥。下一步,在收到更新网络密钥命令后,设备1使新的网络密钥成为其活动的网络密钥,但是设备2只有一个活动的网络密钥,因此它会忽略这条命令。

三、无线粮情监控系统Zigbee的信任中心

信任中心是在网络中分配安全密钥的一种令人信任的设备,它允许设备加入网络,并分配密钥,确保设备之间端到端的安全性,每一个安全的网络只能有一个信任中心存在。在采用安全机制的网络中,协调器可成为信任中心。

信任中心提供3种功能,信任管理的任务是负责对加入网络的设备验证。网络管理的任务是负责获取和分配网络钥匙给设备。配置管理的任务是对其管理的设备绑定应用程序,在两设备之间实现端到端的安全传输。

信任中心有2种模式,住宅模式和商业模式。对于住宅模式,信任中心要维护一张关于网络中所有设备和密钥的清单,并采取措施对网络访问和密钥进行控制管理。对于商用模式,还要在每个设备中维护一个随着密钥的产生不断变化的计数器,目的是保证密钥的顺序更新。从安全性上讲,住宅模式提供一般的安全性,而商业模式提供较高的安全性及端对端的加密和解密。

在高安全级别的商用模式中,可以为设备预先装载网络信任中心的地址和初始的主密钥。另外,如果应用程序可以承受一小会儿的攻击,主密钥可以通过一个频带内未加密的非安全密钥传输发送。如果没有预先设置信任中心,则通常默认由协调器担任或者由协调器指定某个设备作为信任中心。

四、无线粮情监控系统Zigbee的AES高级加密标准

高级加密标准(Advanced Encryption Standard,AES),也称为Rijndael算法,其加密速度快,安全级别高,正日益成为加密各种形式的电子数据的实际标准。

AES算法基于排列和置换运算,它使用了几种不同的方法来执行排列和置换运算,是一个迭代的、对称密钥分组的加密算法。使用相同的密钥加密和解密数据,返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。AES加密具体流程如图所示。

其C语言代码实现描述如下:

void AES—ENCRYPT(AES_U8 *in, AES—U8 *key, AES_U8 *out)

{

AES—U8 state[Nb *4];//state数组

AES—U16 round;//加密轮数计数器

AES_U16 idx;//索引

//128位数据分组

for (idx=O;idx<Nb; idxH)

{

state[4*idx+0]=*in++;

state[4*idx+l]=*in++;

state[4*idx+2]=*in++;

state[4*idx+3]=*i11++;

//与扩展密钥进行“异或”(轮密钥加)

AddRoundKey((AES_U8 *)state, (AES_U8 *)key);

//Nr轮加密操作

for (round = i; round< (Nr - i); round++)

{

if (round l= Nr)

{

MixSubColumns(state); //列混沌

}

else

{

ShiftRows (state);//行位

}//End ofif

//与扩展密钥进行“异或”(轮密钥加)

AddRoundKey《AES_U8 *)state, (AES_U8 *)key+round*Nb);

) //End of for

//输出128位加密后的数据

for (idx=0;idx< Nb; idx++) *outH=state[4*idx+0]; *outH=state[4*idx+l]; *outH=state[4*idx+2]; *outH2 state[4木idx+3]; } 其中,输入参数字节数组key是AES-128加密的密钥,输入指针in指向AES-128的明文数据。输出指针out指向的是加密后的密文。每个独立的变换AddRoundKey()、ShiftRows、MixSubColumns()- -对状态阵进行处理。 Z-stack中采用的是128位的加密,首先需要一个128位的key,使用的key不同,加密后的数据也不同。在Z-stack中是通过类似f8wConfig.cfg文件中的-DDEFAULT KEY="{Ox02,Ox03, Ox05, Ox07, Ox09, OxOB, OxOD, OxOF, Ox00, Ox02, Ox04,Ox06,Ox08,OxOA,OxOC,OxOD>¨这种方式来定义key的。

在nwk_globals.c中,以下部分描述了安全全局变量:

//这是默认的预配置密钥

//把它修改为一个唯一的密钥

CONST byte defaultKey[SEC_KEY_LEN]

{

#ifdefined( APP_TP)[l defined( APP_TP2)

//供一致性测试使用的密钥

Ox00, Ox00, Ox00, Ox00, Ox00, Ox00, Ox00, Ox00, Ox89, Ox67, Ox45,Ox23, Ox01, OxEF, OxCD, OxAB

#else

//供内部测试使用的密钥

Ox00, Ox01, Ox02, Ox03, Ox04, Ox05, Ox06, Ox07, Ox08, Ox09,OxOA, OxOB, OxOC, OxOD, OxOE, OxOF

#endif

};

如果开启了加密算法,网络中所有的设备都需要开启这个算法,并且各设备中的key要相同。因为没有加密的数据或者用不同key加密的数据是不认识的,那样会导致网络不能正常通信。

在测试时,分别对一个协调器和一个路由器进行加密,然后组网,使用协调器广播数据,它们是可以正常通信的。然后改变一下key,再打开一个路由器,这个key不同的路由器接收不到协调器广播的数据,路由器发送的数据协调器也无法接收。实验表明,采用这个加密算法提高了网络的安全性,如果一个网络正在运行,新加入一个协调器或者路由或者终端对现有的网络状态不会造成影响。

小知识之粮情监控系统

针对粮食在存储过程中因未能及时监控温度、湿度等变化,从而导致粮食的发霉变质的问题,设计实现集温度、湿度检测于一体的粮情监控系统,同时利用无线传感器网络实现系统的无线数据传输。