ZigBee标准的密钥协商机制分析
2008-07-17
作者:周公博, 韩振铎, 胡宁宁
摘 要: 在大多数无线传感网络" title="无线传感网络">无线传感网络(WSN)的应用中,用户对WSN的安全性要求都很高,而ZigBee标准具有高可靠性" title="高可靠性">高可靠性的特点,这种高可靠性就建立在安全协商协议的基础上。对ZigBee标准的密钥协商机制进行了详细分析,并利用测试向量对该机制进行了测试,同时介绍了ZigBee的组网方式和安全服务平台。
关键词: ZigBee 安全 密钥协商 无线传感网络
随着网络和通信技术的发展,人们对无线通信技术的要求越来越高,在追求低价格的同时,还要求低功耗" title="低功耗">低功耗、低复杂度、高可靠性。2004年12月,ZigBee工作组正式公布了ZigBee1.0标准。使用该标准组建短距离低速无线个域网LR—WPAN(Low Rate—Wireless Personal Area Network)不仅具有低成本、低功耗、低速率、低复杂度的特点,而且还具有可靠性高、组网简单和灵活的优势。成千上万个具有ZigBee结构的微型传感器构成了自治的无线传感器网络,主要应用于工业控制、军事侦察、环境科学、医疗健康、空间探索、智能建筑等各种复杂环境中进行检测、诊断、目标定位和跟踪[1]。
信息安全是现代通信中一个至关重要的问题,是信息网络正常运行的基础,ZigBee技术提供可选的安全架构,保证了无线传感网络的可靠性。
本文将介绍ZigBee标准的组网方式、安全结构和在安全协议层次上的实现模式。
1 ZigBee技术及其网络结构
ZigBee无线通信技术工作在2.4GHz的ISM频段上,传输速率为20kbps~250kbps,传输距离为10m~75m,主要应用于自动控制、传感和远程控制领域。它依据802.15.4标准,在数千个微小的传感器之间相互协调实现通信。这些传感器只需要很少的能量,就能以接力的方式通过无线电波将数据从一个传感器发送到另一个传感器,所以它们的通信效率非常高。但ZigBee技术的较低数据速率以及较小通信范围的特点决定了它只适合承载数据流量较小的业务[2]。
为了实现低功耗,ZigBee网络中定义了两种类型的设备:一种是全功能设备FFD(Full Function Device)称为主设备。它承担网络协调者的功能,可与网络中任何类型的设备通信。如果采用安全机制" title="安全机制">安全机制,网络协调者又可成为信任中心(Trust center);另一种是简化功能设备RFD(Reduced Function Device)称为从设备。它不能作为网络协调者,只能与主设备通信。图1是ZigBee技术主要采用的三种网络结构。
2 ZigBee技术安全架构
ZigBee设备之间的通信使用IEEE 802.15.4无线标准。该标准指定两层:物理层(PHY)和媒介存取控制层(MAC),而ZigBee则负责构建网络层(NWK)和应用层(APL)。PHY层提供基本的物理无线通信能力;MAC层提供设备间的可靠性授权和一跳通信连接服务;NWK层提供用于构建不同网络拓扑结构的路由和多跳功能;APL层包括一个应用支持子层(APS)、 ZigBee设备对象(ZDO)和应用。ZDO负责所有设备的管理,APS提供一个用于ZDO和ZigBee应用的基础。
该体系结构包括协议栈三层安全机制。MAC、NWK和APS负责各自帧的安全传输。APS子层提供建立和保持安全关系的服务。ZDO管理安全性策略和设备的安全性结构。图2给出了ZigBee协议栈的完整视图[3]。
3 ZigBee标准的密钥协商机制
ZigBee标准在安全协议层面上应用基于对称密钥的密钥协商协议,并要求该对称密钥必须为带有密钥确认机制的完全对称密钥,而提供密钥确认的则是消息鉴权编码机制。图3是该密钥协商机制的消息传输情况。
图中U表示协议的发起设备(Initiator),V表示协议的响应设备(Responder),该机制通过两次变换协商密钥数据,U和V分别使用发起设备变换和响应设备变换协商密钥数据。发起设备与响应设备本质上没有区别,只是发起设备发送第一条交换消息而已。
如果使用共享秘密密钥作为输入,当U执行发起设备变换而V执行响应设备变换时,U和V就计算相同的密钥数据。
3.1 变换的组成部分
发起设备变换与响应设备变换都使用Challenge生成原语" title="原语">原语、Challenge确认原语、秘密密钥生成(SKG)原语、密钥派生函数和一个消息鉴权编码(MAC)机制。
3.1.1 Challenge生成原语与确认原语
Challenge生成与确认,实际上是设置所发送消息的大小与判别所接收到的信息的大小,即Challenge域的参数D=(minchallenge, maxchallenge)。生成原语产生参数D的两个值,在大多数机制中D为一个定值,如D=128,此时minchallenge=maxchallenge=128。而确认原语则判别所收到的Challenge的参数D是否在预先设置的值域内,若不在,则拒绝该Challenge。
3.1.2 秘密密钥生成(SKG)原语
秘密密钥是两个ZigBee实体之间共享的密钥,SKG原语是从分别属于两个实体的两个Challenge中获取秘密密钥的,且这两个Challenge的域参数D是相同的。若两实体都正确地执行了此原语,则两实体就能获得相同的共享秘密值。
3.1.3 密钥派生函数
密钥派生函数从共享秘密值中计算密钥数据,它不仅用于密钥协商机制,还可用于非对称的加密机制。此函数实质上由一个简单的hash函数组成[4]。
3.1.4 消息鉴权编码(MAC)机制
消息鉴权编码机制主要包括两个变换:标记变换和标记校验变换。密钥协商机制使用MAC机制提供密钥确认,ZigBee标准使用密钥hash消息鉴权机制(HMAC),且所用hash函数是Matyas-Meyer-Oseas hash函数,该函数带有一个消息摘要[4]。
3.2 密钥协商机制的前提条件
ZigBee设备之间在进行密钥协商前,必须满足以下条件:
(1)每个ZigBee实体都有一个可信的系统Challenge域参数D的拷贝。
(2)每个ZigBee实体都可获得一个长度为keylen的位串Key作为密钥。实体决定本身各个部分获得密钥的情况。
(3)每个ZigBee实体都要有唯一的标识符。所有标识符串的长度必须相同,用entlen参数表示。
(4)每个ZigBee实体自己决定将使用哪个消息鉴权编码机制。所选消息鉴权编码机制使用的密钥的长度由mackeylen参数表示。
(5)选择一个带有密钥生成函数的密码hash函数。
(6)选择一个专用消息鉴权编码机制,该机制含有带有标志变换的秘密密钥生成原语。该密钥长度用keylen表示。
(7)选择一个固定的字节表示方式表示二进制字符串。
3.3 发起设备变换
U执行发起设备变换,可获得一个可信的V标识符的拷贝和一个与V共享的静态秘密密钥的可信拷贝。
此变换的输入包括:生成密钥数据的长度keydatalen;位串SharedData的长度shareddatalen(可选),其中SharedData由一些U和V共享的数据构成;位串Text2(可选),它由从U到V的一些附加数据组成。
U按如下步骤执行变换来获得密钥数据:
(1)使用Challenge生成原语生成一个符合Challenge 域参数D的ChallengeQEU,并把QEU发送到V。
(2)从V接收ChallengeQEV′,若没接收到此值,输出“invalid”并中止协议协商。
(3)从V接收可选位串Text1和标记MacTag1′。若这些值未接收到,输出“invalid”并中止协议协商。
(4)核实QEV′是否为Challenge域参数D内的有效
Challenge,若确认原语拒绝此Challenge,输出“invalid”并中止协议协商。
(5)使用SKG原语从U的Q1=QEU和V的Q2=QEV′的Challenge中获得共享秘密位串Z,并把它作为共享密钥Key,若SKG原语输出“invalid”,则该变换输出“invalid”并中止协议协商。
(6)使用密钥派生函数和所建立的hash函数从共享的秘密值Z和共享数据SharedData中获得密钥数据KKeyData,长度为mackeylen+keydatalen。
(7)把KKeyData的最左端mackeylen解析为MAC密钥MacKey,并且将剩余位作为密钥数据KeyData。
(8) 由字节0216、V的标识符、U的标识符、位串QEV′’、位串QEU和Text1(若存在)构建位字符串:
(9)使用MAC机制的适当标记检验转换校核MacTag1′是否为密钥Mackey下MacData1的标记符。若标记检验转换输出“invalid”,则变换输出“invalid”并中止协议协商。
(10)由字节0316、U的标识符、V的标识符、位串QEU对应的U的Challenge、位串QEV′对应的V的Challenge和可选位串Text2构建位字符串:
(11)在MacData2的基础上,使用标记转换和适当的MAC机制计算标记符MacTag2:
(12)若标记转换输出为“invalid”,则变换输出“invalid”
并中止协议协商。若存在MacTag2,则发送MacTag2和Text2到V。
若上述步骤中任一次确认失败,则输出“invalid”且拒绝位串KeyData和Text1;否则,输出“valid”,接受位串KeyData为与V共享的长度为keydatalen的密钥数据,同时接受V作为位串Text1的源。
3.4 响应设备变换
V执行响应设备变换,可获得一个可信的U标识符的拷贝和一个与U共享的静态秘密密钥的可信拷贝。
此变换的输入包括:一个属于U的ChallengeQEU′、生成密钥数据的长度keydatalen、位串SharedData的长度shareddatalen(可选),其中,SharedData由一些U和V共享的数据组成,位串Text1(可选)由从V到U的一些附加数据组成。
V按如下步骤执行变换,来获得密钥数据:
(1)核实QEU′是否为Challenge域参数D内的有效
Challenge,若确认原语拒绝此Challenge,则输出“invalid”并中止协议协商。
(2)使用Challenge生成原语生成在Challenge域参数D内的ChallengeQEV,并把它发送到U。
(3)使用SKG原语从U的Q1=QEU′和V的Q2=QEV的Challenge中获得共享秘密位串Z,并把它作为共享密钥Key,若SKG原语输出“invalid”, 则该变换输出“invalid”并中止协议协商。
(4)使用密钥派生函数和所建立的hash 函数从共享的秘密值Z和共享数据SharedData中获得密钥数据KKeyData,长度为mackeylen+keydatalen。
(5)把KKeyData的最左端mackeylen解析为MAC密钥MacKey,并且将剩余位作为密钥数据KKeyData。
(6)由字节0216、V的标识符、U的标识符、位串QEV′、位串QEU′和Text1(若存在)构建位字符串:
(7)在MacData1的基础上,使用标记转换和适当的MAC机制计算标记符MacTag1:
若标记转换输出为“invalid”,则变换输出“invalid”并中止协议协商。若存在MacTag1,则发送MacTag1和Text1到U。
(8)从U接收可选位串Text2和MacTag2′标记。若这些值未接收到,输出“invalid”并中止协议协商。
(9)由字节0316、U的标识符、V的标识符、位串QEU′对应的U的Challenge、位串QEV对应的V的Challenge和可选位串Text2构建位字符串:
(10)使用MAC机制的适当标记检验转换校核MacTag2′是否为密钥MacKey下MacData2的标记符。若标记检验转换输出“invalid”,则变换输出“invalid”并中止协议协商。
若上述步骤中任一次确认失败,则输出“invalid”且拒绝位串和;否则,输出“valid”,接受位串KeyData为与U共享的长度为keydatalen的密钥数据,同时接受U作为位串[Text2]的源。
4 向量测试
针对上述密钥协商机制,用向量测试的方式验证该机制的可行性。这些向量在最开始时是相互独立且不确定的。
预设前提条件如下:
(1)U=55 73 65 72 20 55 0D 0A; V= 55 73 65 72 20 56 0D 0A。
(2)Key= C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF;keylen=128bit。
(3)SharedData=D0 D1 D2 D3 D4 D5;shareddatalen=48 bit。
(4)选择Matyas-Meyer-Oseas hash函数作为所用的
hash函数。
(5)选择基于Matyas-Meyer-Oseas hash函数的HMAC
机制[5]作为MAC机制。
发起设备变换和响应设备变换最终都输出“valid”,并接受位串KeyData= 72 57 7D 02 CC E1 39 33 1A BF F4 0B C5 6E A3 7F为与对方共享的长度为128bit的密钥数据。
ZigBee技术在短距离、低数据量的无线通信中有着其他技术所不具有的优势,而安全性服务是保证ZigBee技术立足市场的前提。在ZigBee联盟公开的ZigBee 1.0标准规范说明中,着重强调了ZigBee所能提供的安全性服务,后续的增强版本中又再次加强了安全性服务。本文详细分析的是安全协议层次上的协商机制,在安全性的其他层次上值得进一步研究,如数据加密、安全服务等。
参考文献
[1] AKYILDIZ L,SU W,SANKARASUBRAMANIAM Y,et al. A survey on sensor networks[J]. IEEE Communications
Magazine,2002,40(8).
[2] 任秀丽. 基于ZigBee技术的无线传感网的安全分析[J].计算机科学, 2006,33(10).
[3] ZigBee specification. [EB/OL] http://www.ZigBee.org.2005-06-27.
[4] ANSI X9.63-2001. Public key cryptography for the financial services industry-key agreement and key transport using elliptic curve cryptography[S]. American Bankers Association. http://www.ansi.org.2001-10-20.
[5] The keyed-hash message authentication code: Federal information processing standards publication 198[S]. US Department of Commerce/N.I.S.T.,Springfield, Virginia, http://csrc.nist.gov.2002-03-06.