张 旸,何泾沙
(北京工业大学 软件学院,北京100124)
无线传感器网络[1]是一种由大量带有无线通信模块的传感器节点,通过相互转发数据实现的多跳网络,该网络具有自组织、抗毁性强等特点,已经在军事和民用的多个领域进行了应用。由于无线传感器节点在开放的环境中进行无线通信,并且具有携带能量有限,存储能力较低等特点,因此容易遭受恶意攻击[2-3]。为防范各个层面的恶意攻击,建立有效的安全机制十分重要,而实现传感器节点之间有效的身份认证,则是一切安全技术的前提[4]。本文针对多级分簇的无线传感器网络拓扑结构,提出一种新的身份认证机制,该机制能够有效地为多级分簇网路中的传感器节点提供身份认证,并且相比传统的点到点认证机制具有更小的能量消耗和内存要求。
分簇结构[5]是一种特殊的无线传感器网络拓扑结构,通过把一个区域的传感器节点划分成许多个簇(cluster),并在簇中选取簇头(cluster header)节点。簇头负责簇内节点的管理和数据转发,普通节点通过簇头向外部传输数据。
在无线传感器网络中,将网络中的节点划分成簇,主要有以下优点:
(1)不同于平面拓扑结构中所有节点需要侦听数据,导致无用的数据侦听成了网络寿命的最大杀手,在分簇拓扑结构中,普通节点可以有计划地关闭通信模块,从而大量减少自身通信能量消耗;
(2)由于簇内节点往往是空间上相邻的,多个节点采集到的数据具有相关性,因此簇头节点可以对簇内采集到的数据进行融合处理,从而大量减少总通信量;
(3)簇内节点轮流担任簇头,从而使得全网节点负载均衡,避免了平面路由中主干节点 “死亡”较快的情况;
多级分簇结构[6]是对分簇结构的扩展,是指在分簇拓扑结构的基础上,簇头之间再次成簇并产生新的簇头,并依此方式一级级迭代直到基站或汇聚(Sink)节点。网络结构如图1所示。
图1 多级分簇无线传感器网络模型
多级分簇结构的出现是为了解决大规模部署节点时,簇头和基站间直接通信所导致巨大能量消耗的问题[7]。通过将节点分成多级的簇结构,不但可以降低全网的能量消耗,同时极大增强了网络的可扩展性。由于多级分簇拓扑结构具有以上优良特性,因此该结构在无线传感器网络大规模部署的现实需求中具有十分重要的应用价值和研究价值。
该网络具有如下特点:
(1)网络拓扑为多叉树结构,在这种结构中,所有节点都扮演者根节点和成员节点的属性。
(2)在该多叉树网络结构中,基站为整个网络的根节点,底层普通节点视为没有成员节点的根节点。
(3)成员节点只能通过根节点与外界交换数据,属于同一个根节点的成员节点内部可以相互交换数据。
网络工作的过程为:各层节点采集到的数据逐级向上汇聚至基站,以及由基站下发的指令逐级向下分散至目标节点。
关于无线传感器网络下的身份认证,各国学者提出了多种算法及技术手段[8-10],主要围绕对称密码,非对称密码等进行算法方面的研究和改进,多是研究相邻节点间的相互认证方式。本文针对多级分簇拓扑结构提出一种以基站为核心的间接身份认证机制,该机制抛开了传统点到点直接认证的局限,从多级分簇拓扑结构的特点入手进行全网性的身份认证机制设计。该机制可用于在分簇结构初始化阶段建立认证密钥,局部簇头的调整等网络拓扑变化过程中分发认证密钥。
针对多级分簇无线传感器网络的特点,本文提出的身份认证技术的设计原则如下:
(1)以基站为核心,由基站作为身份信息的授予者和仲裁者。由于在多级分簇无线传感器网络中,基站如果瘫痪则其余节点便无法正常工作,因此把基站视为可信者是合理的。
(2)以节点预分配的主密钥作为身份识别的依据,由基站掌握全网的主密钥,对节点身份判定以建立信任关系,并传递这种信任关系至其余节点。
(3)网络中的所有节点,只需要与其簇头节点进行相互的身份认证即可。除此之外的点到点认证都是不必要的,这是因为只要节点与簇头建立了相互的身份认证,便可由簇头节点把对该节点的信任传递给其余成员节点。而由于网络是递归的树状结构,因此这一过程能实现对整个网络中所有节点的全覆盖。
(4)两个节点间的身份认证通过间接的方式进行,基于对基站的信任实现。由于对称密钥不具备非对称密钥的可直接识别的特点,因此两个节点相互的身份信任需要通过可信的第三方来进行传导。
节点密钥预分配过程如图2所示,由基站为所有节点建立认证密钥并分发至各节点中,基站处存储所有节点的认证密钥。
图2 密钥预分配
具体步骤如下:
(1)基站读取节点的id,为保证不同节点的认证密钥没有关联性,使用随机值产生器Rand产生一个随机密钥,作为Kid。
(2)基站保存id与Kid的对应关系:id=>Kid,针对id建立B-Tree索引,以方便快速根据id查找Kid。
(3)基站将Kid写入节点中,此时节点保存了数据 {id| Kid}。
以上步骤在所有节点中进行后,则每个节点拥有了一个独特的且相互之间没有关联的密钥,服务器掌握所有节点的密钥信息。
2.3.1 原始簇的形成
首先,在节点首次部署或全网周期性重新分簇时,通过传统非安全分簇协议(如LEACH等)形成底层簇并产生簇头,之后通过在簇头节点间继续成簇,以形成多级分簇结构。此时,网络已通过高效的分簇算法形成原始的拓扑结构,但节点间并没有进行安全性验证,且相互是明文传输数据,这个时候形成的多级簇称之为原始簇。
2.3.2 统一身份认证过程
在该阶段,原始的多级分簇网络拓扑结构已经形成,节点间的通信还在以非安全形式进行。此时,由底层的簇内节点向上逐层发起认证请求,各级簇头依次汇集认证请求信息并压缩与融合后向上级汇集,直到认证请求包汇集至基站。基站通过各节点的认证密钥对节点身份进行识别,并将识别结果逐级下发,各级簇头节点通过反馈信息识别簇内节点身份,并继续向合法节点下发来自基站的反馈信息。下级节点收到反馈信息后,检查其簇头节点的合法性,之后检查下级节点并下发反馈信息,该过程重复进行,直到底层簇内节点时停止。整个过程上传和下发的数据协议格式如下
该阶段的具体步骤如下:
(1)由底层的普通节点向簇头节点汇聚认证请求,请求的具体数据内容如下:
id:{id}
该节点的唯一标识id,该部分数据为明文形式。
Certificateid:{P(kid){id|rand|hash(Data)}}
该部分把节点id,一个随机值rand(该值需要记录下来以校验与反馈信息的一致性),和数据域的哈希值hash(Data)连接在一起后,用节点的密钥Kid加密。
Data:{}
最底层的簇内节点,该部分内容为空。
(2)簇头节点汇集所有来自簇内节点的认证请求后,产生自己的认证请求,并把簇内节点的认证请求压缩后存在数据的Data部分,计算hash(Data)并生成自己的认证请求。之后簇头节点把数据继续向上一级簇头发送,同时缓存该数据直到收到合法的反馈消息。该过程在各级簇头节点进行,直到数据到达基站。
簇头发送的数据中,id和Certificateid部分与普通节点的相同,Data部分为:
Data:{Compress(List(sub data))}
递归的结构,存储压缩后的数据,该部分内容解压缩后为来自下层数据的认证请求。
(3)基站获取的认证请求经逐级解压缩后为图3所示的树状结构。
图3 认证请求的树状结构
基站遍历该树中的所有节点,并对其进行身份认证,具体流程如下:
(1)根据节点id在密钥库中查询其密钥Kid。
(2)使用Kid解密Certificateid数据,获得:{id|rand| hash(Data)}
(3)检查数据中的id与节点声称的id是否一致,如果一致则该节点通过身份认证,否则无法通过。
(4)如果该节点通过身份认证,对其Data域计算哈希值,并与上述的hash(Data)做比较,如果一致说明下一层节点的数据是完整的,则解压缩Data域,并对其中节点重复认证步骤。
(5)基站根据通过身份认证的节点的信息,生成反馈消息,数据内容如下:
id:{id}
目标节点的唯一标识id,该部分数据为明文形式。
Certificateid:
{P(Kid){id | copyrand|(id,Kid)Header|[id,Kid]Members|hash(Data)}}
该部分把节点id,认证请求中随机值的拷贝copyrand,簇头级与簇头通信密钥(id,Kid)Header,下级簇内各节点的密钥[id,Kid]Members和数据域的哈希值hash(Data)连接在一起后,用目标节点的密钥Kid加密。
Data:{Compress(List(sub data))}
递归的结构,存储压缩后的数据,该部分内容解压缩后为反馈给目标节点下层各节点的响应数据。
(4)各级簇头节点接收到来自基站的反馈数据后,执行以下步骤:
1)若超出预设的超时时间Ttime-out没有获得反馈,则跳至步骤4),若收到反馈数据,则使用预存的密钥Kid解密Certificateid数据,获得
{id| copyrand|(id,Kid)Header|[id,Kid]Members|hash(Data)}
2)检查数据中的id与自身id是否一致,确认消息合法性;判断copyrand与上次发送请求时的rand值是否一致,确定本次反馈是针对上次请求的;检查接受反馈的簇头节点id与idHeader是否一致,防止其它节点伪装;记录与簇头的通信密钥KHeader,从而可以与簇头安全通信;记录子簇的通信组密钥[id,Kid]Members,从而可以与即将身份认证的下级簇的节点安全通信;计算Data部分的哈希值并和数据中的hash(Data)做比较以检查运载数据的完整性。若以上步骤未全部通过,则跳至步骤4)。
3)解压缩Data部分,获得List(sub data),依次向其中的各下级节点发送对应的数据sub data。
4)如果簇头身份不可信,则该节点进入等待局部再认证阶段。等待时间为一经验值Ttime-out,该值需要结合节点的计算能力、通信带宽、节点休眠时间、服务器计算能力等实际情况得出,且每下一级的等待时间Ttime-out不小于上一级 Ttime-out的两倍。
由于sub data中的节点均是通过了服务器的认证的,因此此时已完成了该节点对其簇内节点的身份认证。同时,通过校验加密信息中的idHeader,因而完成了对簇头节点的身份认证。也即是说,当反馈消息顺利经过一个节点时,该节点就同时完成了对直接上级和直接下级节点的单向身份认证。该过程是从上级往下级依次进行的,因此:每个反馈消息验证成功的节点,都完成了对上级节点的双向身份认证;反馈消息验证失败的节点,表示上级簇头身份不可信;无法收到反馈消息的节点,表示从基站到该节点的通信链路上存在认证失败的节点。
2.3.3 局部再认证过程
当节点在Ttime-out时间内无法获得反馈消息,则启动局部再认证流程,具体为:
(1)重新进行本级簇的簇头节点的选举;
(2)将缓存的认证信息Compress(List(sub data))再次发给新簇头节点,之后重新进行2.2–2.5的认证流程。
(3)由于每一级的超时时间至少大于上一级的两倍,因此新的簇头如果认证通过,则不影响整体认证流程的进行;多次重复仍然失败时,则下一级节点将发起簇头选举,产生新的簇头和上一级簇头,并重复认证流程;以此类推,重建所有受到影响的层级的簇。
经过局部再认证阶段,簇头中的非法节点被隔离,避免了因中间层级的簇头不合法导致大范围节点认证的失败。
针对传统点到点的双向认证方式,本文提出的方法通过基站作为媒介传递身份信任关系,可以有效地减少能量消耗和内存空间需求。下面将以传统点到点认证机制和本文提出的间接认证机制作对比,分析该机制的特点。
传统的点到点机制以直接进行双向身份认证的方式进行,在多级分簇无线传感器网络中,其实现步骤如图4所示。
为实现这种方式的点到点验证,有基于对称加密算法和基于非对称加密算法两种方式,其中对称加密算法要求建立预共享密钥池,存在容易泄露认证信息和难以扩展的缺点,因此基于非对称加密算法逐渐成为研究的主要方向。
本文提出的认证机制过程如图5所示。
由于采用了独立的预存认证密钥,该机制所有认证过程均使用对称密钥实现,同时由于是联机认证,因此没有泄露认证信息和失去可扩展性的问题。
在多级分簇网络中,使用点到点的基于对称密码的认证、使用点到点的基于非对称密码的认证以及本文提出的间接认证机制的对比关系见表1。
由此可见,本文提出的方法同时具有传统基于对称密钥的计算量小和基于非对称密钥算法的安全性和扩展性的优点,不足之处是高级别的簇头在簇形成阶段要承担一定的通信量,但是由于该方法只在成簇阶段使用,因此通信增加对能量的消耗有限。
表1 多级分簇无线传感器网络中认证机制特点对比
本文提出了一种在多级分簇无线传感器网络下的身份认证机制,该机制在多级分簇网络的形成阶段,通过基站的参与完成了各相关节点的相互身份认证。由于将身份认证放在网络初始化阶段完成,因而其节点间身份可信的效果能完全覆盖网络形成后的所有工作过程,从而避免了在具体业务中承担身份认证的开销。同时,该机制以逐层汇聚和分发的方式进行,可高效地进行数据的压缩传输,从而大幅减少了通信开销。在未来的工作中,需要针对本文的机制,找到适合的数据压缩方法,减少高层簇头节点的通信负载,同时由于能量开销主要集中在簇形成阶段,需要找到局部的簇调整和认证的办法,尽量减少全网规模的簇重建和身份认证过程。
[1]ZHU Zhengjian,TAN Qingping,ZHU Peidong.Research on wireless sensor network security:A survey[J].Computer Engineering and Science,2008,30(4):101-105(in Chinese).[朱政坚,谭庆平,朱培栋.无线传感器网络安全研究综述[J].计算机工程与科学,2008,30(4):101-105.]
[2]WU Fan.Research on wireless sensor network security[D].Nanchang:Nanchang University,2007(in Chinese).[范武.无线传感器网络安全研究[D].南昌:南昌大学,2007.]
[3]PEI Qingqi,SHEN Yulong,MA Jianfeng.Survey on wireless sensor network technology[J].Journal of China Institute of Communications,2007,28(8):113-122(in Chinese).[裴庆祺,沈玉龙,马建峰.无线传感器网络安全技术综述[J].通信学报,2007,28(8):113-122.]
[4]Chen X Q,Makki K,Yen K,et al.Sensor network security:A survey[J].IEEE Communications Surveys and Tutorials,2009,11(2):52-73.
[5]ZHOU Wei.Research on key technologies of clustering wireless sensor networks[D].Shanghai:Shanghai University,2011(in Chinese).[周伟.基于分簇的无线传感器网络关键技术研究[D].上海:上海大学,2011.]
[6]LIU Shugang,LIU Hongli.Energy-efficient Multi-layer clustering algorithm in wireless sensor networks[J].Application Research of Computers,2011,28(6):2257-2260(in Chinese).[刘述钢,刘宏立.无线传感器网络中能量有效的多层分簇算法[J].计算机应用研究,2011,28(6):2257-2260.]
[7]JIA Yongcan,LIU Yuhua,XU Kaihua,et al.LEACH-based multi-layer clustering routing scheme in WSN[J].Computer Engineering,2009,35(11):74-76(in Chinese).[贾永灿,刘玉华,许凯华,等.WSN中基于LEACH的多层分簇路由方案[J].计算机工程,2009,35(11):74-76.]
[8]MA Haisong,LIU Yijun,ZHU Yuhai.Research on wireless sensor network security authentication[J].Computer Knowledge and Technology,2011,7(12):2791-2792(in Chinese).[马海松,刘怡俊,朱昱海.无线传感器网络安全认证的研究[J].电脑知识与技术,2011,7(12):2791-2792.]
[9]ZENG Yingzhi,SU Jinshu,XIA Yan,et al.Survey on security authentication technology of wireless sensor networks[J].Computer Applications and Software,2009,26(3):55-58(in Chinese).[曾迎之,苏金树,夏艳,等.无线传感器网络安全认证技术综述[J].计算机应用与软件,2009,26(3):55-58.]
[10]ZHU Lei.Research on certain key technologies of wireless sensor network security authentication[D].Zhengzhou:PLA Information Engineering University,2010(in Chinese).[朱磊.无线传感器网络安全认证若干关键技术研究[D].郑州:解放军信息工程大学,2010.]