仇国庆,包俊杰,曹冬梅,刘 帅
(重庆邮电大学 智能仪器仪表及工业自动化与测试技术实验室,重庆400065)
ZigBee是一种近距离、低速率、低功耗、低成本的无线网络技术[1],正是由于这些优点,基于 ZigBee标准的无线传感器网络的应用越来越广泛。但由于ZigBee无线设备在存储能力、计算能力及电源供电时间方面的局限性,不仅使得原来在有线环境下的许多安全方案和安全技术不能直接应用于ZigBee网络环境中,而且对ZigBee网络安全服务过程与算法提出了较高要求。目前,ZigBee网络中采用的数据加密模式为 128 bit的AES算法[2]。AES采用迭代型分组密码Rijndael[3]算法,具有优秀的性能及抗攻击能力,所以在受限工作环境中(如ZigBee网络环境)也有较好的加密/解密运算效率。
基于AES算法的CCM*安全机制包括所有AESCCM(计数器加密分组链接信息鉴别码模式)[4-5]的功能且是更轻量级的加密模式,既保证数据传输的机密性又保证数据完整性。因此,本文使用AES-CCM*模式进行数据加密,并重新定义了MSG的数据帧格式以提高加密效率和传输数据净载荷量。仿真结果表明,CCM*加密模式不仅可以降低系统开销、减小复杂度及缩短加密时间,同时还可以保证网络的安全有效性。
ZigBee网络系统存在如数据窃听、篡改、伪造等安全威胁。研究发现,攻击者通过攻击通信节点或分配恶意节点伪装成合法节点进入网络来改变、丢弃或破坏数据包,最终致使整个ZigBee网络瘫痪。典型的内部网络攻击包括 Sinkhole攻击、Sybil攻击、Wormholes攻击、Flooding攻击、应答欺骗等[6]。除此之外,安装在无人区的网络节点也可能会出现节点失效、损毁或被捕获的危险。总之,ZigBee网络中的安全功能可以概括为两方面内容:(1)保证合法使用者正常使用;(2)防止非法破坏,盗取信息。这就要求ZigBee安全机制能提供密钥建立、密钥传输、帧的保护和设备管理[7]等安全服务。
ZigBee协议栈提供的安全服务有数据加密、完整性校检和鉴权等功能,可以施加在应用层、网络层或介质访问控制层上。任何安全的ZigBee网络都拥有一个指定的被称为信托中心(Trust Center)的设备,为其他设备分配链接密钥(Link Key)和网络密钥(Network Key)。链接密钥在两个设备之间共享,并用于单播或组播通信。网络密钥在整个网络中共享,当消息被广播时使用。
ZigBee网络数据加密是发送者在数据发送之前通过加密算法对数据添加密钥,接收者在接收数据之后使用相同密钥解密对数据进行解密。可以看出,数据加密的关键就是对称密钥,即发送者和接收者必须具有完全相同的128 bit密钥才能进行正常通信。使用对称密钥进行数据加密的发送和接收过程[8]如图1所示。
图1 对称密钥数据加密示意图
AES算法建立在有限域 GF(28)之上,属于对称密钥算法中的分组迭代密码算法,采用替代/置换(SP)网络结构。AES算法拥有密码分组连接模式CBC(Cipher Block Chaining)、计数器模式 CTR(Counter)、密文反馈模式 CFB(Cipher Feed Back)等多种安全模式[9]。
本文采用更轻量级的AES-CCM*[10]安全机制。CCM*安全机制是一种全新的分组密码操作模式,它同时提供了加密与鉴别服务,是CTR模式与CBC-MAC模式的联合操作模式,其中加密服务由CTR提供,而鉴别服务由CBC-MAC模式提供[11]。CCM*模式的详细加密过程如图2所示。
图2 AES-CCM*模式的详细加密过程
系统的实现可以分为两部分:
(1)数据经过 AES-CBC-MAC模式加密,如图 2(a)所示。CBC-MAC模式被用于保护数据完整性,为了这个目的,数据帧的包头(Headers)和有效负载(Payload)必须经过CBC模式加密,生成的密文即为消息完整性代码MIC(Message Integrity Code)的值。操作时,首先将第一部分数据块与初始化向量进行“异或”运算,然后将其结果“异或”第二部分数据块,依次类推。最后生成MIC用以确保传输数据不被篡改。此操作过程的公式描述为:
操作过程的执行时间为:
其中,Lblock与TAES分别代表加密模块长度和加密时间,payload-size表示有效负载大小。
(2)AES-CTR模式加密过程,如图2(b)所示。CTR模块提供数据保密性,它将MIC值和数据帧中有效负载部分进行加密处理。操作过程中,将计数器值(An)和密钥K使用AES算法加密,然后将AES加密结果与发送方的明文块进行“异或”运算产生密文块,计数器值加1。依此类推,最后完成全部发送数据的加密。操作过程的数学表达式为:
此操作模块的加密时间:
由此可见,AES-CCM*安全加密模式结合了计数器模式与密码分组连接模式两者各自的优点,并且有效缩短了ZigBee网络数据的加密时间。因此,AES-CCM*加密模式大大提高了单独使用AES算法的加密效率。
ZigBee网络在应用程序框架AF(Application Framework)中提供发送和接收数据的功能。它包括两种数据服务类型:键值对服务类型KVP(Key Value Pair)和报文服务类型MSG。KVP服务主要用于传输一些较为简单的变量格式。由于ZigBee的很多应用领域中的消息较为复杂,并不适用于KVP格式,因此ZigBee协议规范定义了MSG服务类型。MSG服务对数据格式和内容不作要求,适合任何格式的数据传输,可以用于传送数据量大的消息。MSG帧类型如表1所示,其中传输字节计数和帧类型都为4 bit。如果帧类型值为0x02,则表明该框架为MSG命令。每个数据包含有事务序列号(8 bit)、事务长度(8 bit)和事务数据(bit可变)。
AES-CCM*组合模式的算法加密时间由式(3)~式(6)决定,因此其加密时间可由式(7)给出:
表1 应用程序框架中MSG帧类型
标准ZigBee传输协议中,数据从应用层到物理层逐层传输,每个数据帧中都包含各层完整的帧头信息。为简化加密过程并提高传输数据净载荷量,本文重新定义了MSG的帧类型,新的MSG帧类型结构如表2所示。事务序列号被分为两组,分别占8 bit密钥字节的高4位和低4位,8 bit MIC用以指定消息完整性代码。
表2 重新定义的MSG帧类型事务数据段
如果密钥的位序列字段被设置为0,则数据帧未被保护。安全进程可描述为:数据帧首先进入AES-CBCMAC模式以产生消息完整性代码MIC;然后进入AESCTR模式工作,将MIC值与有效负载进行加密处理;最后被加密的MIC与有效负载相结合构成完整的密文包。解密过程为加密过程的逆过程。
其中,数据包“msg”包含被一分为二的 32 bit的数组,“ency_list”是一个动态生成的 8 bit的加密表,变量“tag_out_0”是一个初始化向量,“tag_out”是一个可变的 MSG信息整合码。
(1)AES-CBC-MAC模式工作代码,用以生成消息完整性代码。其中“^”为异或运算,“%”为互补操作。
该方案不仅可以有效地降低系统开销及复杂度,同时还可以保证网络的安全性。每一个密文组与当前明文组及AES加密结果的相关性满足了数据机密性要求。密文与消息完整性代码的结合传输满足了数据完整性要求。因此,这种方法能够有效改变ZigBee安全机构的
可行性和实用性,并有效地缩短ZigBee网络中数据加密的时间,可作为ZigBee网络安全的可实施方案。
本文主要研究ZigBee网络安全机制中的数据安全加密算法,提出基于AES-CCM*加密模式的简化MSG数据帧格式,以缩短加密时间,增加ZigBee网络传输数据净载荷量。AES-CCM*是ZigBee标准采用的基于AES-128算法的操作模式,既能保证数据传输的机密性,又能提供数据完整性校验功能。仿真结果表明,AES-CCM*加密模式可以进一步改进ZigBee安全方面的性能,以保证ZigBee技术的生存空间。虽然此算法拥有较高的安全加密能力,但其仍然存在局限性。
[1]ZigBee Alliance.ZigBee specifications:ZigBee and ZigBee Pro[EB/OL].[2013-09-06].http://www.ZigBee.org,2010.
[2]National Institute of Standards and Technolo-gy(NIST).Advanced Encryption Standard(AES)[M].FIPS PUB 197,2001.
[3]DAEMEN J,RIJMEN V.The design of Rijndael:AES the advanced encryption standard[M].Springer,2002.
[4]YOO J H.Fast software implementation of AES-CCM on multiprocessors[M].Springer Berlin Heidelberg,2011.
[5]封斌,齐德昱,韩海雯.IEEE 802.15.4 中 AES-CCM 协议的扩展指令集实现[J].电子与信息学报,2013,35(2):335-340.
[6]VIDGREN N,HAATAJA K,PATINO A J L,et al.Security threats in ZigBee-enabled systems:vulnerability evaluation,practical experiments,countermeasures,and lessons learned[C].System Sciences(HICSS),2013 46th Hawaii International Conference on,IEEE,2013.
[7]ZigBee Alliance Board of Directors.Document 053474r17 ZigBee specification[S].2008.
[8]FARAHANI S.ZigBee wireless networks and transceivers[M].Access Online via Elsevier,2011.
[9]谷利泽,杨义先.现代密码学教程[M].北京:北京邮电大学出版社,2009.
[10]YANG B,FU R Y,DIAO J Z,et al.Security mechanisms analysis for ZigBee standard based on AES-CCM*[J].Advanced Materials Research,2012(468):1359-1362.
[11]RUSINEK D,KSIEZOPOLSKI B.Influence of CCM,CBCMAC,CTR and stand-alone encryption on the quality of transmitted data in the high-performance WSN[J].Imote2 Annales UMCS Information AIXI,2011(3):117-127.