吴海波 魏丽君
(湖南铁道职业技术学院供电与电气学院 株洲 412001)
随着WSN应用的进一步发展,节点的定位精度得到了一定程度的保证,研究人员对于节点定位的安全性越来越重视。现有的WSN定位系统均假设WSN所处的环境较为安全,忽略了恶意节点对定位系统的影响,即没有考虑到定位系统的安全问题。然而传感器节点经常被部署在较为恶劣的、无人值守的开放性环境下,甚至被部署在危险的敌对环境中,加上节点自身硬件简单和固有的脆弱性,以及无线通信的不安全性,网络很容易被恶意节点攻击,攻击者只要俘获到传感器节点就能够轻松地截取和篡改正常传感器节点所拥有的通信秘钥以及内部程序代码等,进而破坏网络节点的定位过程,致使节点获得一个错误的位置信息。节点的错误定位将会给WSN带来一系列较为严重后果,诸如节点采集信息失效,网络补救措施不能及时到位等[1~3]。因此,检测并踢除WSN中存在的恶意攻击节点,对于WSN应用的拓展具有非常重要的意义,也是当前WSN发展中亟待解决的关键性问题。
无线传感器网络定位系统大都依据无线通信的某些物理属性(如时延、功耗、入角、相位差、区域覆盖度和转发跳数等)来估测节点间的距离,采用几何方法以已知位置的节点为参照估算出未知节点的位置。然而无线通信的特性使得这些物理属性很容易被攻击者复制、阻塞和改变,还有定位参照信息所具有的不对称性[19],使得未知节点无法鉴别接收的定位参照信息是否正确,因此节点自身难于检测定位攻击。攻击者对于定位系统的攻击主要发生在位置关系的测量与估算阶段,分为内部攻击和外部攻击[20]。无线传感器网络节点定位过程中几种典型的攻击模式如图1所示。
图1 无线传感器网络节点定位过程几种典型的攻击模式
DV-Hop算法是美国路特葛斯大学的Nicules⁃cu等提出的,该算法在定位的过程中无需测距,对节点硬件的要求不高,环境因素对其定位过程的影响较小。在具体的应用场景中,该算法具有:设计简单、计算量小、功耗低、易扩展、算法效率高、不易受外界干扰等优点。对于资源非常有限的WSN来说,DV-Hop是方便与便宜的,正是由于该算法的方便和便宜使其在现实中得到了广泛的应用,但是由于DV-Hop算法设计简单,并没有考虑其算法的安全性,因而非常容易受到攻击。为了提高DV-Hop算法的安全性和准确性,使其在现实中得到更好的应用和发展,本文在该算法的基础上提出了一种可防御和抵制虫洞攻击的安全定位算法PS-DV-Hop。
DV-Hop算法的定位过程分为以下三个阶段:
1)计算未知节点与各信标节点之间的最小跳数。信标节点向邻居节点广播跳数、坐标分组,接收节点根据广播信息,确定到各个信标节点的跳数的最小值h。最小跳数求解过程如图2所示。
图2 最小跳数计算过程图解
2)计算整个网络中的平均每跳距离。信标节点根据1)中记录的其他信标节点位置(x,y)和相距最小跳数h,利用式(1)可以估算出全网络的平均每跳距离hopsize。未知节点利用式(1)、(2)可计算出与各个信标节点之间的距离D,平均跳距计算过程如图3所示。
图3 平均跳距的计算
3)未知节点利用三边测量法或者极大似然估计法计算自身位置坐标,未知节点坐标求解如图4所示。
图4 未知节点坐标求解
虫洞攻击是一种非常复杂的攻击方式,对传感器网络的精确定位有着重要的影响。虫洞攻击至少需要两个攻击者通过建立虫洞链路(Wormhole Link)将偷听到的网络中的有用信息从网络一端传送到另一端。虫洞攻击可以通过Wormhole Link将整个网络中受到攻击的节点或者恶意节点连接成一个整体,这些连接在一起的节点会同时发起对整个网络的攻击,这样虫洞攻击就会威胁到整个网络的安全。另外在虫洞攻击中攻击者往往不会忠实、完整地传输所偷听的消息,而是故意传递部分数据包,从而造成数据包的丢失。虫洞攻击在传输数据过程中往往会结合篡改、选择转发等手段对网络中的数据进行破坏。由于虫洞攻击没有破坏通信的验证性和完整性,也没有攻击网络中的相关主体结构,因此很难被检测到也更具有隐蔽性。虫洞攻击所带来的影响如图5所示。
图5 虫洞攻击示意图
虫洞攻击过程简单,但是会对定位过程带来非常恶劣的影响。如图6所示,网络中存在一对虫洞攻击节点A1和A2。在DV-Hop定位过程中,信标节点B1首先发起泛洪,各个未知节点即可得到B1的最小跳数。在没有虫洞攻击的条件下,节点S6得到的距离B1的最小跳数应该为5(B1->S2->S3->S4->S5->S6),而在受到虫洞攻击之后,节点S6得到的距离B1的最小跳数变为3(B1->S1->A1->A2->S7->S6),由于虫洞攻击节点是无条件转发,S1->A1->A2->S7被认为是1跳。因此,由于虫洞攻击的存在,S6得到的距离B1的最小跳数比实际的要小得多,因此其将得到一个到达B1距离的错误估计值,使最终的定位结果被严重干扰。所以虫洞攻击能够对DV-Hop定位过程产生严重的影响。
图6 DV-Hop定位算法遭受虫洞攻击
假设节点总数为144,场地尺寸为120m×120m,考虑两种分布模型:随机分布和扰动网格分布。对于随机分布,节点坐标(xi,yi)取0~120以内的随机数。对于扰动网格分布,节点分布在12×12的扰动网格之内,第i个网络内的节点坐标(xi,yi)均取(10(i-1-p),10(i+p))内均匀分布的随机数。其中p为扰动因子,实验中取0.2网络连通模型为单位圆模型UDG(Unit Disk Graph)。此时,实验中通过改变节点通信半径R来调节网络连通度(即平均节点度数)。图7所示,是变化网络连通度时成功检测并移除虚假链路的概率。其中,设定虫洞链路长度为5R,R取值10~15。可见,扰动网格分布相比随机分布而言,其网络拓扑结构具有更好的均匀性。在网络连通度相同的情况下,前者移除虚假邻居的概率较后者高。当网络连通度达到5之后,扰动网格分布的虚假链路移除概率超过0.9,并逐渐接近1。然而随机分布在网络连通度达到7以后,方能以0.9的概率移除虚假链路。也即是说,要获取同样的虚假链路移除效果,随机分布要求的网络连通度比扰动网络分布高。有鉴于此,后续实验中节点分布模型选择扰动网格分布。
图7 虚假链路移除概率
图8 是在固定虫洞链路长度(5R)和锚节点比例(15%)的前提下,变化网络连通度(R取值12~18)时的定位误差曲线。由图8可知,3条曲线均随网络连通度的增加呈下坡走势。然而,相比有攻击时DV-Hop而言,PS-DV-Hop算法明显改善了攻击下的定位性能。在网络连通度较低(小于5)时,PS-DV-Hop滤除虫洞的能力欠佳,随着网络连通度的提高,PS-DV-Hop算法的精度逐渐和无攻击时DV-Hop相接近,两者精度差异最终保持在约0.25R。当网络连通度达到一定程度(大于8)后变化逐渐趋缓,说明其抗攻击能力已至上限,无法再通过改善网络连通度来获取性能的提升。图7是在固定通信半径(15m)和锚节点比例(15%)的前提下,变化虫洞链路长度(LWH)时的定位误差曲线。由于无攻击时DV-Hop不受虫洞影响,相应误差曲线近似于直线,对应定位误差约为0.55R。图9中PS-DV-Hop算法的误差随着虫洞链路长度的增加而减小并逐渐趋于平缓,最佳精度为0.79R。显然,在保证网络连通度的情况下,PS-DV-Hop算法能够抵御不同强度的虫洞攻击,只是在虫洞链路较短时性能略差。
图8 定位误差随网络连通度的变化曲线
图9 定位误差随虫洞链路长度的变化曲线
图10 是在固定通信半径(15m)和虫洞链路长度(5R)的前提下,变化锚节点比例时的定位误差曲线。如图10中,LBDV为文献[10]中算法,其误差随锚节点比例的增加而减小,最终接近无攻击时的定位曲线,最小定位误差值约为0.5R。PS-DV-Hop算法的精度虽然也随着锚节点比例的增加而提高,但当锚节点达到一定比例(20%)后精度提升甚微,且不能完全贴近无攻击时的曲线,其最优精度约为0.75R。然而PS-DV-Hop算法的全局性能相比LBDY而言显然更胜一筹,可见锚节点比例不是限定其抵御攻击能力的主要因素。上述结果表明,在网络拓扑不太稀疏的情况下,PS-DV-Hop算法检测、滤除虚假邻居的能力主要和网络连通度相关,算法运行速度则受路径搜索速度的限制。
本文在分析了WSN安全问题的基础上,研究了虫洞攻击对DV-Hop算法定位性能的影响,提出了一种基于安全邻居发现和接收功率验证的抗虫洞攻击和女巫攻击的安全定位算法PS-DV-Hop(Precision and Security DV-Hop Location Algorithm Prevent Wormhole Attack and Sybil Attack)。在虫洞攻击防御的过程中PS-DV-Hop算法首先依靠路径跳数差异检测、识别虚假邻居,将进行攻击的虚假邻居从节点的邻居集合中予以移除,在DV-Hop算法的信标节点泛洪阶段,每个节点拒绝中继续源自邻居集合之外的节点的消息,以此保障网络路由的安全性和跳数计算的正确性,削弱虫洞攻击对平均跳距的不利影响。实验证明:本文提出的PS-DV-Hop算法能够有效滤除虫洞攻击,有效削弱了虫洞攻击对DV-Hop算法定位精度的影响。