N1和N2是网络中相距较远的两个节点,两节点不在可通信范围之内。正常情况下,两者需要经过多跳路由才能实现互相通信。M1和M2是两个恶意节点,它们之间建立起一条私有信道。M1和M2分别处于N1和N2的通信范围,当N1发送数据时,M1会首先收到该数据,然后M1通过私有信道把该数据传递给其合谋节点M2。M2接收到数据后继续将其转发给N2。这样,N1和N2就会误认为彼此是邻居节点,M1和M2也因此获得路由权。
表面现象让我们觉得,如果虫洞合谋节点是忠实可靠的节点,虫洞私有信道反而形成了一条更加高效的网络链路,提供了一个高效的网络连接服务,有效地减少了数据传输的延时。但实际上,虫洞合谋节点在数据传递的过程中并不忠实于传递所有数据,而是对数据包实施选择性丢弃或者数据篡改等恶意行为。更严重的是,即使网络通信已经采用了加密或认证机制,恶意节点仍然可以发起虫洞攻击。
2 相关工作
参考文献中提出了“数据包限制”机制,并采用一种有效的认证协议TIK来对虫洞节点检测和防御。该机制的主要思想是在数据分组中附加地理限制信息或者时间限制信息来限制分组的最大传输距离。数据分组接收节点依据附加在数据分组中的地理限制信息或者时间限制信息来计算自己到发送节点间的最大传输距离,由此判断数据分组来源的合法性。这种机制需要网络中节点真实的地理信息和精确的时钟同步。
参考文献从数据分组的延时出发提出了虫洞攻击的检测方案:记录从源节点到目的节点之间所有的不相交路径,然后计算出每条路径的长度和延时,进而得到每条路径平均每跳的延时。如果存在一条路径,其平均每跳的延时相比较于其他路径的平均每跳延时异常地大,那么就认为这条路径遭受到虫洞攻击。这种机制同样需要网络中节点的时钟同步。
参考文献基于数据包往返时间(RTT)的方法检测虫洞的存在,因为虫洞节点之间传输数据包的RTT必然大于真实邻居节点之间的RTT。这种方法虽然不需要额外的硬件,但是也需要网络中节点的时钟同步。
参考文献提出使用统计分析的方法进行虫洞检测。在虫洞攻击下,恶意节点所在的路径在路由表中出现的比例将很高。此方案统计出出现比例较高的路径,并使用测试包对其进行测试,由此来确定恶意节点。但是这种方法只适合在多路径协议中使用,对AODV等单播路由协议是失效的。
[page]
⑨根据安全跳数区间,源节点将接收到的RREP分组里处于安全跳数区间内的路由保存起来,并在数据传输过程中随机使用这些路由。随机使用这些路由的目的在于:一是可以平衡节点能量的使用,延长网络寿命;二是即使包含在安全区间内的路由再次遭受攻击,随机使用安全跳数区间内的路由也能降低网络遭受虫洞攻击的概率。
另外,在此仅讨论路由发现阶段路由算法的改进,所以,路由维护过程所需要的控制分组(RRER、HELLO)在改进后的IAODV中保持和AODV中同样的分组格式。
4 实验分析
实验仿真是在Windows XP+Cygwin+NS2平台上完成的。实验内容主要包括虫洞攻击模块的仿真和改进协议IAODV协议移植至NS2平台后的仿真。
虫洞攻击中私有信道的建立是违背常规通信模型的。对私有信道的仿真要实现它的三种特性:高效性、隐蔽性和恶意性。为了使虫洞路径能够优于其他路径的延时和跳数,体现出其高效性,本实验采取的解决方案是对虫洞合谋节点和其余普通节点使用不同的无线信号功率,使得虫洞合谋节点之间的传输距离远远大于普通节点的信号范围。虫洞信道中传输的数据应该对外界隐蔽,为了模拟这个特性,需要在数据链路层中对虫洞链路设置对外的隐蔽性。为了模拟虫洞信道对传输数据的恶意性,本实验通过使用NS2中提供的无线遗失模型对虫洞信道设置了2%的随机丢包率。
通过使用NS2中的TCL脚本语言对网络属性的定义和对NS2相关源程序的修改,本实验建立起一个具有如下参数的网络仿真环境。
◆节点数:14个。
◆仿真时间:20 s。
◆环境大小:1000 m×1000 m。
◆传输半径:正常节点100 m,恶意节点250 m。
◆遗失模型丢包率2%。
如图3所示是本实验中网络仿真环境的拓扑结构。其中节点10被设置为源节点,节点2被设置为目的节点。节点0和1被设置为恶意节点,这两个节点之间建立起一条高质量的私有信道,吸引从节点10发出的数据包,然后直接传输至节点私有信道的另一端。恶意节点在私有信道的传输过程中对数据包进行随机丢包,以实现虫洞攻击的目的。
[page]
实验中,在部署了虫洞节点的网络环境中分别运行AODV协议和IAODV协议,并使用网络丢包率和网络吞吐量两个性能指标来对实验数据进行分析。实验数据分析结果如图4和图5所示。
如图4所示,在无线传感器网络的路由协议为AODV协议的情况下,网络数据包的丢包率在8.0%左右。而在IAODV协议的情况下,网络的丢包率降低至6.0%左右。两者2.0%的差距与本实验设置的遗失模型2.0%的丢包率是相互吻合的。数据说明了IAODV路由协议中的路由跳数判断机制将虫洞合谋节点创建的私有信道排除在安全跳数区间之外。
如图5所示,实验中为了在图中形象地表示数据传输的开始和结束,把开始和最后一笔记录的吞吐量数据均设为0。从图中可以看出,随着网络运行时间的逐渐增加,IAODV协议下的网络吞吐量要优于AODV协议下的网络吞吐量。这与图4中丢包率的差别也是吻合的。
结语
无线传感器网络是Ad Hoc网络的一种特殊形式,安全问题是无线传感器网络的关键技术。考虑到网络路由层数据传输的安全性,本文基于AODV路由协议提出一种针对虫洞攻击的防御方案,以降低在路由发现过程中选中含有虫洞私有信道的概率。实验仿真表明,改进协议对防御虫洞攻击有效。鉴于网络节点资源和处理能力的局限性、节点能量的有限性,以及网络拓扑的不确定性,本文提出的防御方案还有进一步优化的空间.
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』