胡向东,余朋琴,魏琴芳
(1.重庆邮电大学自动化学院,重庆 400065;2.重庆邮电大学通信与信息工程学院,重庆 400065)
为加快转变经济发展方式、促进经济结构的战略性调整,引领经济社会走上创新驱动、内生增长、科学发展的轨道,我国正在大力培育和发展物联网等战略性新兴产业。因为战略性新兴产业体现了新兴科技和新兴产业的深度融合,既代表科技创新的重要方向,也代表产业发展的重要方向,具有市场前景广阔、经济技术效益好、带动性强的突出特点。
物联网的信息获取依赖分布在给定区域的大量传感器节点,其目的是协作地感知、采集和处理网络覆盖区域中目标对象的信息,并对这些信息进行处理,最终将其提交给已获授权的用户以供决策等进一步利用。
物联网中所有的传感器节点都是潜在的路由节点,兼具路由和信息感知、数据传输等功能[1-2]。物联网中传感器节点多部署在无人值守、条件恶劣的环境中,且每个传感器节点的能源、计算能力、存储能力等均有限,无线收发距离短。由于传感器节点自身的这些脆弱性,攻击者可以容易地捕获或控制节点,发起选择性转发攻击。在选择性转发攻击中,恶意节点通常表现得和正常节点一样,但它会选择性地丢弃有价值的数据包,导致基站不能及时收到完整准确的消息[3-4],从而导致网络功能的失效甚至崩溃。因此,发现并剔除网络中的选择性转发攻击节点,对确保物联网安全至关重要。
文献[3]提出采用多路径路由抵御选择性转发攻击。在多路径路由中,通过n条不相交的路径将数据包传输到目的节点,利用数据冗余性来提高数据传输成功的概率,如果恶意节点数小于或等于n个,则可以保证消息的成功传输。但是n条不相交的路径是很难确定的,且随着路径数目的增加,额外的通信开销将显著上升。该方案只能容忍选择性转发攻击,不能识别发起选择性攻击的恶意节点。文献[5]提出利用两跳邻居信息来发现选择性转发攻击的恶意节点。当节点向下一跳邻居节点发送数据时,处在这两个节点通信范围公共部分的节点监控它们的数据转发行为,如果邻居节点没有转发数据,监控节点将向它的上一跳节点发送一个报警消息,如果节点转发了数据,则判断是否转发给了它的邻居节点,若不是,则向节点发送一个报警消息。如果某个节点的报警计数值大于预设的阈值,则将其从邻居列表中移除。文献[6]提出一种基于信任度的选择性转发攻击检测方案。根据节点接收和发送数据包的情况,计算节点的信任度,结合节点丢包行为进行评估,判断节点是否发起选择性转发攻击,并找出恶意节点。文献[7]提出采用数字水印办法来发现发起选择性转发攻击的恶意节点。通过节点的信任值选择一条安全的转发路径来传输数据;然后,通过数字水印技术找出可疑路径,在可疑路径上实施发现方案。当一个节点收到数据包后,把包中的水印消息提取出,再与基站最初产生的水印进行比较。若两者之间的对应位不同,则表示它们之间发生了丢包行为。如果丢包率大于正常丢包率,则判定节点为发起选择性转发攻击的恶意节点。文献[8]提出多跳流量验证机制抵御多个恶意节点合作发起的选择性转发攻击。进行多跳流量验证是为了提高邻居节点信任评估的准确性,数据转发路径上的下游节点周期性地向上游节点反馈自己的流量统计信息,上游节点可以通过验证下游邻居节点的流量来发现合谋的恶意节点。但是该机制的流量统计信息将增加额外的通信代价。文献[9-10]提出了一种基于检查点的多跳确认方案来发现选择性转发攻击。路径中的部分节点被随机地选取为检查点,每收到一个数据包,它就产生一个确认包并向源节点方向传递。路径上的任何中间节点如果没有收到足够多的确认包,它便生成一个报警数据包传给源节点。虽然该方案能发现攻击者的位置,但它不能重传被丢弃的数据包,并且每个数据包都要发送确认包,能量消耗将显著增加。
以上方案发现选择性转发攻击的成本较高。本文提出基于数据包ID检测来发现物联网中发起选择性转发攻击的恶意节点。源节点将已发送数据包数作为下一数据包的ID,并将其添加到事件数据包后再发送出去,中间节点根据已存储的包ID与接收包的ID来判断,找出发起攻击的恶意节点。
以层次式网络为例,整个网络被划分成若干个簇,每个簇由多个簇成员节点和一个簇头组成,如图1所示。每个节点只属于某一个簇,一个簇只有一个活动簇头,簇成员节点与簇头进行单跳通信,簇内成员节点将采集到的数据直接发送给簇头,再由簇头转发给基站[11]。每个簇成员节点在网络中的地位平等,初始加入网络时具有相同的能量、存储能力、通信能力、计算能力等。假设基站的位置固定,不受能量和资源约束,具有较强的可信任性,不易遭受敌方的攻击。
图1 基于分簇网络的选择性转发攻击模型Fig.1 Selective forwarding attack based clustered network
此外,还做如下假设:①每个节点在布置前都分配有唯一的节点标识以及一个与基站共享的密钥;②节点设置一个计时器,其时限为节点和数据源节点(产生事件数据包的节点)之间的跳数与两个邻居节点之间最大传输延迟的乘积,两个邻居节点之间最大传输延迟可通过初始化时节点与基站的交互得到;③网络已进入数据传输阶段,在这之前传感器节点已建立到基站的路由;④恶意节点通过丢弃一部分数据来实施选择性转发攻击。
数据包的类型有2种:事件数据包和报警数据包,其格式定义分别如图2如示。
图2 数据包的定义Fig.2 Definition of data packet
事件数据包由源节点产生,它可以是根据用户需要或感知到相关事件后产生的事件数据包。如图2a所示,其中DstID和SrcID分别表示目的节点ID与生成此包的源节点ID;Packet_ID为发送消息的ID;Message 为消息内容;MACK〈BS-S〉是用源节点与基站的共享密钥生成的 MAC码[12],内容为MACK〈BS-S〉{SrcID,Packet_ID,Message},其作用是为整个事件数据包生成签名摘要,防止恶意节点伪造或篡改事件数据包。
报警数据包是由中间转发数据的簇头节点生成的,当节点收到的事件数据包ID与自己存储的ID之差不为1时,中间节点就产生一个报警数据包。如图2b所示,Node_ID为被检举的节点ID;Lost-Packet_ID 为被丢掉的包 ID;MACK〈BS-i〉为中间节点与基站的共享密钥生成的 MAC码,内容为MACK〈BS-i〉{SrcID,Node_ID,LostPacket_ID},其作用是生成整个报警数据包的签名摘要,防止恶意节点伪造或篡改报警数据包。
源节点将采集到的信息发送给簇头之前,为每个事件数据包添加Packet_ID,然后再发送出去。事件数据包的ID采用如下方式来添加:源节点发送的第一个事件数据包的Packet_ID设为0。源节点配置一个计数器,统计发送的事件数据包的数量。源节点每发送一个事件数据包,计数器值增1,在发送下一个事件数据包时,把计数器中的值赋给当前事件数据包的Packet_ID,然后再将添加了Packet_ID的事件数据包发送给本簇簇头,由簇头转发给基站。
中间负责转发的簇头节点收到事件数据包后,将事件数据包中的Packet_ID存储在本地,当收到下一个事件数据包时,将收到的事件数据包的Packet_ID与本地存储的事件数据包Packet_ID进行比较,判断两者之差是否等于1。若两者之差为1,则用接收到的当前事件数据包的Packet_ID更新本地存储的Packet_ID。然后,再将事件数据包转发出去。若两者之差不为1,说明该节点与其上一跳邻居节点之间发生了丢包行为:或者是信道原因造成的,或者是恶意节点(或被攻陷节点)的恶意丢包行为造成的。于是该节点向基站发送一个报警数据包,检举其上游邻居节点为可疑节点,如图3所示。图3中S代表数据源节点,BS代表基站,S与BS之间的节点为转发路径上的簇头节点。
图3 触发报警数据包的示例Fig.3 Instance of triggering alarm packet
恶意节点丢弃某一数据包后,它的所有下游节点都不能收到被丢弃的数据包。恶意节点的下游邻居节点首先生成报警数据包并向下游转发出去,生成报警数据包的节点的下游节点收到报警数据包后,用报警数据包中的LostPacket_ID更新自己存储的Packet_ID,然后再进行转发。为了避免为被丢弃的事件数据包产生过多的报警数据包而浪费能量,转发路径上的下游节点收到报警数据包后不再生成报警数据包。
若某一节点被检举的次数超过按照安全强度要求预先设定的阈值,基站就判定被检举的簇头节点为恶意节点。基站向网络内广播发现的恶意节点ID,恶意节点的所有邻居节点收到此消息后,将把恶意节点从其邻居列表中删除,从而将恶意节点剔除出网络。阈值可以确定为簇头收到的报警总次数与节点数的比值,即所有节点的平均报警次数。
发起攻击的恶意节点可能丢弃来自正常节点的报警数据包,但这对恶意节点并没有好处。因为,如果一个正常节点未收到事件数据包,它将产生关于这个数据包的一个报警数据包,如果恶意节点丢弃来自正常节点产生的报警数据包,它的下游邻居节点不会收到事件数据包,且超时后若还未收到关于这个数据包的报警数据包,便生成一个关于未收到数据包的报警数据包。那么丢弃报警数据包的攻击节点被检举的次数将随之增加,这将导致它被更快地发现。
对提出的选择性转发攻击的发现方案进行性能仿真评估。假定200个传感器节点随机地分布在200×200 m2的区域,基站位于该区域外,采用LEACH协议进行分簇。假定事件源生成400个事件数据包,由簇头转发给基站。每次仿真中,传感器节点被随机地选为恶意节点,恶意节点每次只丢弃一部分数据包。不失一般性,整个实验重复进行100次,取结果的平均值。为了模拟更真实的场景,不仅考虑恶意节点的丢包行为,还考虑由于信道原因造成的丢包。为了考察恶劣的信道环境对发现率的影响,设信道丢包率在0~15%之间变化。
恶意节点发现率定义为发现的恶意节点数与全部恶意节点数的比值。
首先,考察恶意丢包率、信道丢包率对恶意节点发现率的影响。实验中设恶意丢包率分别为15%,25%,35%,45%,假定传递路径上恶意节点数占路径总节点数的比例(用pm表示)为20%(其他情形类似),仿真结果如图4a所示。
由图4a可见,总体上,发现率随信道丢包率的增加而减小,这是因为信道丢包将导致节点收到报警数据包的数量可能减少;不过,当信道丢包率低于0.09时,其对发现率的影响非常小,即使信道丢包率达到0.15,发现率仍可达到80%以上。另外,发现率几乎不受恶意丢包率的影响,这有助于防止恶意节点只丢弃小部分数据包来发起攻击而不被发现。
接着,考察恶意节点数、信道丢包率对恶意节点发现率的影响如图4b所示。实验中设恶意丢包率为25%(其他情形类似),传递路径上恶意节点所占的比例分别为10%,20%,30%。由图4b可见,发现率随信道丢包率的增加而减小,原因与前面的分析一致,即信道丢包将导致节点收到报警数据包的数量可能减少;发现率随恶意节点数的增加而减小。当信道丢包率低于0.12,恶意节点占路径总节点比例低于20%时,发现率接近于1;而当恶意节点数占路径总节点的30%,信道丢包率低于0.06时的发现率接近于1,此后随信道丢包率增加到0.15时,发现率降到75%左右。
由图4可见,无论恶意丢包率或恶意节点所占比例如何变化,恶意节点的发现率都随信道丢包率的增加而减小。
误警率是将正常节点误判为恶意节点的概率。
图5a给出了恶意丢包率、信道丢包率对误警率的影响,实验中取恶意丢包率分别为15%,25%,35%,45%,假定传递路径上的恶意节点占路径上总节点的20%。由图5a可见,误警率随信道丢包率的增加而增加。由于信道原因引起的丢包随着信道丢包率的增加而增加,这使明确区分出丢包的原因更加困难,因此,误警率随信道丢包率的增大而增大。在一定的信道条件下,恶意节点丢包率越大误警率就越小。在该方案中,当信道丢包率为12%、恶意丢包率为45%时,发现率大于95%(见图4 a),误警率小于10%(见图5a)。
恶意节点的数量对误警率的影响如图5b所示,实验中取恶意丢包率为25%。由图5b可见,随着恶意节点数量的增加,误警率逐渐减小。如在信道丢包率为12%的条件下,当恶意节点数占路径总节点的10%时,误警率接近0.2;当恶意节点数占路径总节点的20%时,误警率为0.08;当恶意节点数达到30%时,误警率接近0.05。
由图5可见,无论恶意丢包率或恶意节点所占比例如何变化,误警率都随信道丢包率的增加而增加。
由图4和图5可以看出,对比文献[5]提出的基于两跳邻居节点的检测方案,本文提出的检测方案在误警率基本持平的情况下具有更高的恶意节点发现率。
物联网中恶意节点的发现是确保物联网安全的重要途径之一。为了满足物联网安全应用的需求,本文针对危害较大的选择性转发攻击,提出了一种基于数据包ID检测的低成本轻量级恶意节点发现方案,即每个中间节点检查本地存储的包ID与接收包的ID,当二者之差不为1时就产生报警数据包,转发路径上的下游节点收到报警数据包后不再重复生成,基站基于节点被检举的次数进行恶意节点判定。该方案克服了大的通信量和能量消耗,对传感器节点资源特别有限的物联网而言具有重要的实用价值。仿真实验结果表明,该方案能够有效发现物联网中的选择性转发攻击,具有高发现率和低误警率。
[1]王保云.物联网技术研究综述[J].电子测量与仪器学报,2009(12):1-7.WANG Bao-yun.Review on internet of things[J].Journal of Electronic Measurement and Instrument,2009(12):1-7.
[2]张怡,李云,聂能.无线传感器网络中基于能量的簇首选择改进算法[J],重庆邮电大学学报:自然科学版,2007,19(5):613-616.ZHANG Yi,LI Yun,NIE Neng.Cluster-head selection enhancing algorithm based on energy for wireless sensor networks[J].Journal of Chongqing University of Posts and Telecommunications:Natural Science Edition,2007,19(5):613-616.
[3]KARLOF C,WAGNER D.Secure routing in wireless sensor networks:attacks and counter measures[C]//IEEE International Workshop on Sensor Network Protocols and Applications,[s.l.]:IEEE Press,2003,1(5):113-127.
[4]YENUMULA Reddy,JAN Durand,SANJEEV Kafle.Detection of packet dropping in wireless sensor networks[C]//Seventh International Conference on Information Technology,[s.l.]:IEEE Press,2010:879-884.
[5]HAI TH,HUH EN.Detecting selective forwarding attacks in wireless sensor networks using two_hops neighbor knowledge[C]//Proceedings of the Seventh IEEE International Symposium on Network Computing and Applications(NCA'08),[s.l.]:IEEE Press,2008:325-331.
[6]江长勇,张建明,王良民.无线传感器网络中的选择转发攻击检测[J].计算机工程,2009,35(21):140-143.JIANG Chang-yong,ZHANG Jian-ming,WANG Liangmin.Selective forwarding attack detection in wireless sensor networks[J].Computer Engineering,2009,35(21):140-143.
[7]DENG Huijuan,SUN Xingming,WANG Baowei.Selective forwarding attack detection using watermark in wsn[C]//International Colloquium on Computing,Communication,Control and Management,Sanya China:[s.n.],2009:109-113.
[8]宋飞.无线传感器网络安全路由机制的研究[D].安徽:中国科学技术大学,2009.SONG Fei.Research on routing mechanism for wireless sensor network security[D].Anhui:China University of Science and Technology,2009.
[9]YU Bo,XIAO Bo.Detecting selective forwarding attacks in wireless sensor networks[C]//Proceeding of the second international workshop on security in systems and networks,IPDS2006. [s.l.]:IEEE Press,2006.
[10]XIAO Bo,YU Bo,GAO C.CHEMAS:Identify suspect nodes in selective forwarding attacks[J].Journal of Parallel and Distributed Computing,2007,67(11):12l8-l230.
[11]周东清,李燕,苏庆福.层次型结构无线传感器网络安全协议设计[J].计算机工程与设计,2007,28(10):2329-2334.ZHOU Dong-qing,LI Yan,SU Qing-fu.Design of security protocol for hierarchical wireless sensor network[J].Computer Engineering and Design,2007,28(10):2329-2334.
[12]胡向东,魏琴芳,胡蓉.应用密码学[M].第2版.北京:电子工业出版社,2011:191-192.HU Xiang-dong,WEI Qin-fang,HU Rong.Applied cryptography[M].2ndEdition.BeiJing:Publishing House of Electronic Industry,2011:191-192.