无线传感器网络安全定位方法
技术领域
本发明属于无线多媒体传感器网络领域,具体地本发明涉及一种无线传感器网络安全定位的方法,将网络内的恶意节点逐步剔除,并利用锚节点对传感器节点精确定位。
背景技术
近年来,随着微机电系统、无线通信和数字电子技术的发展,无线传感器网络(wireless sensor networks,WSN)在军事及民用等领域得到了广泛的应用,传感器节点精确的位置信息对WSN的应用具有至关重要的意义。目前,学者们提出了很多关于WSN的定位算法,主要分为两大类:基于锚节点和非基于锚节点的WSN节点定位算法,但是在大多数的应用中,无线传感器网络被布置在无人看护甚至条件恶劣的环境中,节点的定位过程极易受到各种攻击,这些定位算法并不能抵御网络中的恶意攻击。因此,如何在存在恶意攻击的情况下,安全、有效地获取节点位置信息,保证较高的定位精度是一个极具挑战性的安全问题。
目前针对无线传感器网络安全定位的相关研究文献如下:
1、Brands和Chaum在1994年的《In Proceedings of the EUROCRYPT’93Workshop on the Theory and Application of Cryptographic Techniques on Advancesin Cryptology》上最早提出“时间绑定呼叫-响应协议(time-boundedchallenge-response protocol)”,通过测量和计算验证者(verifier)与被验证者(claimant)之间距离的上界来防止以缩小测量/估算距离为目的的测距欺骗攻击,如虫洞攻击等。由于协议在验证者和被验证者之间报文的双向传输中同时采用了无线射频信号(约3×108m/s),因此需要验证者具有纳秒级的时间测量能力、被验证者具有纳秒级的实时处理能力,这对硬件设备的要求太高。并且此种协议只能得出节点间距离的上界,因而无法防止攻击者发起的以扩大测量距离为目的的攻击。另外,仅能验证节点是否位于指定区域内,不能验证节点是否在一个特定的位置。
2、Lazos等人在2004年的《In Proceedings of the 3rd ACM Workshop onWireless Security》上发表的文章“Secure range-independent localization forwireless sensor networks”,文中提出SeRLoc协议,为每个信标节点配置多个定向天线,传感器节点根据接收到的来自多个信标节点的信标报文确定所在的最小交叉区域,最后通过质心算法确定自己的坐标。SeRLoc可以检测出虫洞攻击和女巫攻击,但难以防止位置欺骗攻击。而且,为了获得最小交叉区域、提高定位精度,需要部署更多的信标节点或者为每个信标节点安装更多的定向天线,大大增加了硬件成本。为了改善SeRLoc协议的不足,Lazos等人继续提出HiRLoc协议,信标节点通过不断变换天线方向和传输范围,实现在不增加信标节点或定位天线的情况下减小最小交叉区域、提高定位精度。然而,相比于SeRLoc协议,HiRLoc增加了计算复杂度和通信开销。
3、Du等人在2005年的《In Proceedings of the 19th IEEE International Parallel&Distributed Processing Symposium(IPDPS 2005)》上发表的文章“LAD:Localization anomaly detection for wireless sensor networks”中提出了一种LAD方案来检测定位过程中异常的信标节点,该方法基于可以事先获知的节点分布信息以及邻居节点间的组关系,检测节点的估计位置是否与它的观测位置一致,如果不一致的几率超过阈值,则LAD报告信标节点异常。然而,LAD方案依赖于节点的分布信息,如果无法获得精确的分布信息,那么LAD的检测结果将受到极大的影响。同时,该方案仅停留在对异常的检测阶段,而没有给出对异常信标节点的处理方案。
4、Li等人在2005年的《In Proceedings of the 4th International Symposium onInformation Processing in Sensor Networks(IPSN)》上发表的文章“Robuststatistical methods for securing wireless localization in sensor networks”提出基于LMS(least median ofsquares)的定位算法,其目的在于提高算法的鲁棒性,减少错误的位置参照信息对节点定位结果精度的影响。类似的具有一定容攻击能力的定位算法有ARMMSE(attack-resistant minimum mean square estimate)算法和EARMMSE(enhanced attack-resistant minimum mean square estimate)算法等。此类具有一定容攻击能力的节点定位算法旨在剔除错误的参考位置信息对定位的影响,可以在一定程度上提高定位算法的安全性和可靠性,然而,并没有对恶意攻击采取有效的防范措施,因此当网络中存在大量恶意节点或者大量错误的参考位置信息,此类算法并不能有效保证定位精度。
5、Capkun等人在2008年的《IEEE Transactions on Mobile Computing》上发表的文章“Secure location verification with hidden and mobile base stations”提出基于CBS(covert base station)和MBS(mobile base station)的安全定位。CBS监听传感器节点同时发送的射频和声波信号,根据不同信号到达的时间差估算CBS与传感器节点之间的估计距离,并将估算结果与由坐标计算出的距离相比较,剔除误差超过一定阈值的估算结果。而MBS要求传感器节点在发送射频信号之后,待MBS移动至新的位置再发送声波信号,然后进行与CBS类似的计算和比较。然而,该方案依赖于CBS和MBS位置保密的较强假设,相关研究并不成熟。
因此,目前无线传感器网络安全定位中普遍存在的问题是:
1.大多数安全定位算法的设计只是针对某种特定的恶意攻击,例如虫洞攻击和女巫攻击,并不能有效的抵御更加复杂的恶意攻击行为,例如共谋攻击。
2.需要较高的时钟精度或者硬件支持(定向天线),极大的增加了硬件成本和实现的复杂度。依赖于特殊的位置参考信息(邻居节点之间的相对位置)或者特定的某些节点(假设绝对可信的节点),极大程度上限制了安全定位算法的适用性和应用范围。
3.传感器节点的定位精度不高,受恶意行为的影响较大,大多数安全定位算法可以有效抵御外部攻击,而无法有效抵御内部攻击。
发明内容
本发明的目的是为了解决目前安全定位算法在抵御共谋攻击方面的不足,提出了一种定位精度高、依赖因素少,而且不易受恶意节点的影响的无线传感器网络安全定位方法。
为了达到上述目的,本发明提供了分布式的无线传感器网络安全定位方法,该方法包括三个阶段:可疑节点识别阶段,恶意节点隔离阶段和节点位置安全计算阶段。
为了减少恶意节点对定位过程的干扰,分布式安全定位方法采用在实际的位置计算之前检测并剔除恶意节点的方法,即可疑节点识别阶段和恶意节点隔离阶段。
可疑节点识别阶段,假设所有未知自身位置信息的传感器节点不参与检测工作,所有已知自身位置的锚节点在一跳范围内(即一个传感器节点的通信半径内的范围)向邻居广播数据包,即锚节点不转发来自邻居的数据包。
锚节点广播的信息包中至少包含三种信息:锚节点的坐标信息,锚节点的ID信息以及信息包的发送时间。利用这三种信息的异常与否检测并记录可疑节点。
可疑节点识别阶段的具体步骤为:
步骤1.锚节点按照分配的每轮时间定期广播信息包;
步骤2.收到信息包的锚节点,根据锚节点的坐标信息判断信息包是否来自一跳范围以外,根据信息包的发送时间判断信息包的传输时间是否超过最大的通信时间,若是则记录相对应锚节点的ID号码转入步骤3,否则直接转入步骤3;
步骤3.根据ID信息,判断是否收到锚节点自身发出的信息包,判断来自同一个锚节点的信息包的个数是否超过一个,若是则记录相对应锚节点的ID号码转入步骤4,否则直接转入步骤4;
步骤4.判断是否超过规定的每轮时间,若是则清空记录的ID信息并开始下一轮信息的广播。
每轮时间Tp计算方法为,Tp=Tmax+ΔT。
其中,Tmax为一跳范围内锚节点之间的最大通信时间,包括数据处理时间和数据传输时间。ΔT为锚节点广播一次信息包之后的延迟时间,其计算方法为:
假设锚节点(x
j,y
j)周围的恶意节点(x
i,y
i),恶意节点到锚节点之间的距离为
在距离l范围内符合高斯分布
其中μ和σ分别是均值和方差值。
每个锚节点通信范围内恶意节点个数为
恶意节点比例不超过50%,其中N
anchor和N
total分别是锚节点数目和总的节点数目,R
a为锚节点的通信半径。
如果两个恶意节点最大的传输延迟为Δt
m,则相邻两个锚节点之间最大的传输延迟为Δt
a≈Δt
m×(2N
ave)。如果两个锚节点之间的距离为
则
可疑节点识别阶段结束后,所有锚节点向基站报告记录的可疑节点的ID号码。基站运用网络划分的方法将网络划分为四个不同的安全等级区域,通过这四个安全等级区域隔离恶意节点。不可信区域中可疑节点即为恶意节点。因此,在接下来的定位过程中,处于较高安全等级区域中的传感器节点可以被优先定位,即处于可信区域中的锚节点可优先广播定位信息,完成其范围内的传感器节点的位置计算。
恶意节点隔离阶段的具体步骤为:
基站根据每个锚节点记录的ID信息,将网络划分为四个安全等级区域:可信区域,不确定区域,可疑区域和不可信区域。可疑节点中被多次记录的节点的通信范围所在的网络区域被命名为不可信区域,对应的可疑节点进一步被确定为恶意节点;剩余的可疑节点的通信范围所在的网络区域被命名为可疑区域;所有恶意节点和可疑节点一跳范围内的邻居节点的通信范围所在的网络区域被命名为不确定区域;剩余的网络区域为可信区域。
通过上述两个阶段可以有效的剔除恶意节点,保证网络的安全,然而,绝对的安全毕竟只是理论的概念,因此利用锚节点的位置信息定位传感器节点的过程中,必须采取必不可少的措施防止恶意节点伪装为锚节点干扰正常的定位过程。采用被动的基于时间差的定位算法,即锚节点主动广播定位信息,传感器并不发送定位请求,可以有效避免恶意节点发现传感器节点的位置并对其发起恶意攻击。然而,由于受到无线传感器网络资源和能源的限制,所有锚节点同时广播并转发来自邻居的定位信息的方法并不合理,因此可分别选择主锚节点和副锚节点,主锚节点只广播自身定位信息,而副锚节点同时广播和转发来自邻居的定位信息。为了防止恶意节点的影响,在安全等级更高的区域中选择尽可能多的锚节点作为主锚节点,保证主锚节点的合法性。同时传感器节点判断副锚节点是否为恶意,如果是则重新选择,保证至少存在三个合法的锚节点完成定位。
基于时间差的定位方法进行节点位置安全计算阶段的具体步骤为:
步骤1.在可信区域中选择至少一个主锚节点和两个副锚节点;
步骤2.所有锚节点广播定位信息,同时副锚节点进一步转发主锚节点的定位信息;
步骤3.接收到至少3个不同定位信息的传感器节点判断每个发送定位信息的锚节点是否在通信范围之外,由副锚节点转发的主锚节点的定位信息是否被篡改,如果是则重新选择至少两个副锚节点,否则开始进行位置计算,完成对可信区域内传感器节点的定位;
步骤4.在距离不确定区域一跳范围内的可信区域中选择至少一个主锚节点和两个副锚节点,判断锚节点数目是否达到3个,如果是则按照步骤3对不确定区域中的传感器节点定位,否则在不确定区域中继续选择足够的锚节点完成传感器节点定位,如果不确定区域中的锚节点个数依然不足3个则选择已定位的邻居传感器节点作为锚节点辅助完成定位;
步骤5.按照步骤4中的方法依次对可疑区域和不可信区域中的传感器节点定位。
简要概括上述无线传感器网络安全定位过程为:在实际的定位计算之前,锚节点相互协作,在一跳通信范围内广播信息包,各个锚节点根据收到的信息包的特征以及数量是否异常检测出可疑节点;锚节点向基站报告可疑节点,由基站对无线传感器网络进行安全等级区域划分,并隔离恶意节点;优先在具有更高安全等级的区域中选择主锚节点和副锚节点,通过被动式的基于时间差的定位算法完成传感器节点的计算。
与现有安全定位方法相比,本发明所具有的积极效果是:
(1)不仅可以有效抵御虫洞攻击、距离欺骗攻击等单一恶意攻击,还可以有效抵御共谋攻击,不仅可以抵御外部攻击还可以抵御内部攻击;
(2)对节点的时钟精度、硬件条件没有严格的限制,也不受特殊信息或者特定节点或者网络面积的限制,具有良好的扩展性;
(3)本发明在抵御恶意攻击时可保证较高的定位精度和较短的定位时间,在定位的过程中采取一系列措施有效节省能量开销,延长网络生命周期。
附图说明
图1为本发明中恶意节点攻击行为特征的示意图;
图2为利用锚节点坐标信息检测恶意节点的示意图;
图3为利用锚节点ID信息检测恶意节点的示意图;
图4为网格划分的示意图;
图5为基于时间差的定位算法的示意图。
图中,●表示恶意节点,包括入侵节点;○表示合法节点,包括锚节点;◎表示传感器节点。
具体实施方式
下面结合附图对本发明作进一步描述。
如图1所示,恶意节点包括入侵节点和被妥协节点两类,图中双向箭头代表恶意节点之间的相互作用,单向箭头代表信息的传输。入侵节点c1可以妥协其通信范围内的合法节点d1和合法节点f1,使之成为被妥协的节点,具有相同的恶意行为,即随机篡改发送的或者转发的数据包,或者进一步妥协其他合法节点。如果被妥协锚节点d1、入侵节点c1和入侵节点g1分别发送错误的定位信息,或者入侵节点c1篡改来自合法节点b1的定位信息,那么传感器节点a1将无法完成精确定位。由此可见,共谋攻击会严重影响正常的定位过程。
如图2所示,利用坐标信息检测恶意节点。一跳范围内的锚节点相互广播信息包,一方面恶意节点b2和恶意节点c2可以转发来自节点a2的数据包至节点d2,使得在一跳范围外的节点a2和节点d2可以相互通信,收到信息包的节点d2根据坐标计算出的节点a2和节点d2之间的距离dad大于通信半径Ra,从而判断负责转发的节点b2和节点c2可能是恶意节点;另一方面,恶意节点c2自身可以伪装成锚节点发送定位信息,谎报位置为节点c2’所在的位置,收到信息包的节点估算出距离dc′d大于通信半径Ra,从而判断节点c2可能是恶意节点。如果恶意节点篡改发送的或者转发的数据包使得dc′d<Ra,dad<Ra,则接收节点d2可以通过时间信息进一步判断是否存在恶意节点,例如,来自节点a2的数据包经过节点b2和节点c2的转发,必然需要花费更多的数据处理时间和数据传输时间,如果节点d2根据数据包的发送时间计算得到数据包在节点a2和节点d2时间传输所耗费的时间tad大于最大通信时间(即tad>Tmax),则负责转发的节点b2和节点c2可能是恶意节点,即标识为可疑节点。
如图3所示,利用锚节点ID信息检测恶意节点。恶意节点可以随机篡改数据包的信息,包括坐标信息和时间信息,并且时间信息受硬件条件和环境因素的影响较大,因此仅仅利用坐标信息和时间信息检测恶意节点并不可靠,接下来利用节点的ID信息进一步检测恶意节点。没有恶意节点的情况下,因锚节点a3、锚节点b3在一跳范围互相不转发信息包,因此每个锚节点不会收到自身发送的信息包,且在规定的每一轮时间Tp内,每个锚节点仅能收到一条来自邻居节点的信息包。如图3所示,合法节点a3将收到恶意节点d3和恶意节点e3转发的来自节点a3自身的信息包,并且节点a3将收到来自另一节点b3的至少两条信息包,因此,如果锚节点收到自身发送的信息包,或者收到来自同一个锚节点的多个信息包,则判断其中负责转发的节点可能是恶意节点,即标识为可疑节点。
如图4所示,利用网格划分的方法将网络划分为不同的安全等级区域。传统的网格划分将网络划分大小规则的单元格,总会出现节点位于单元格边界的情况,图4所示的方法,是以节点如恶意节点b4、锚节点a4通信范围外接正四边形作为单元格,避免了节点处于边界的情况。
如图5所示,被动式的基于时间差的定位算法,传感器节点d5的通信范围内必须至少存在3个锚节点,其中锚节点a5为主锚节点,锚节点b5和锚节点c5分别是副锚节点,三个锚节点的坐标已知,可以测得信息包的发送、接收时间,因此可计算传感器节点d5的位置。