专利名称:一种Ad Hoc网络中虫洞攻击的检测方法
技术领域:
本发明涉及一种无线网络安全技术,特别涉及一种Ad Hoc网络中虫洞攻击的检测方法。
背景技术:
Ad Hoc网络是一种不依赖于固定基础设施的、自组织的多跳无线网络,具有组网方便、不受时间和空间限制等优点,可广泛应用于军事通信、灾害救援等无法或不便铺设网络基础设施的场合,具有十分广阔的应用前景。与传统有线的固定网络相比,移动Ad Hoc 网络(MANET)具有开放介质、动态拓扑、分布式协作、无集中的管理和控制中心及节点的资源受限等特点。这使得移动Ad Hoc网络很容易受到各种攻击,如窃听、篡改、重放和拒绝服务等。虫洞攻击(wormhole attack)又称隧道攻击。在Ad Hoc无线网络中,一个恶意节点在一个地方监听数据包,然后通过一条私有通道(隧道)传递到网络中的另一个位置,并进行重放。当隧道的传输距离大于一跳传输范围时,通过隧道传输的数据包将比通过正常的多跳路由传递的数据包花费更少的时间或更短的跳数到达目的地。这会造成一种假象, 即隧道两端彼此很接近。由于经过隧道的路径比正常路由需要的跳数要少,对于选择最短路径的路由协议,虫洞攻击会使大量网络流量经过恶意节点,从而为恶意节点进一步的发起丢包或篡改等攻击提供了有利条件。现有的多数Ad Hoc 网络路由协议如 AODV (rfc;356 l.Ad hoc On-Demand Distance Vector (AODV) Routing)、DSR(rfc4728. "The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks for IPv4") > DSDV(C. E. Perkins, and P. Bhagwat, "Highly Dynamic Destination-Sequenced Di stance-Vector (DSDV) for Mobile Computers,,,Proc. ACM Conf. Communications Architectures and Protocols (SIGC0MM,94),London, UK, August 1994,pp. 234-244.)以及各种安全路由协议如 SAODV(M.G. Zapata, and N. Asokan, "Secure Ad hoc On-Demand Distance Vector Routing,,,ACM Mobile Computing and Communications Review,vol. 3,no. 6,July 2002, pp. 106-107·)、SRP (P. Papadimitratos, and Z. J. Haas, "Secure Routing for Mobile Ad hoc Networks, "Proc.Communication Networks and Distributed Systems, Modeling and Simulation Conf. (CNDS' 02), San Antonio, Texas, January 2002, pp. 27-31.) > DSDV (C.E. Perkins, and P. Bhagwat, "Highly Dynamic Destination-Sequenced Distance-Vector (DSDV) for Mobile Computers,,,Proc. ACM Conf. Communications Architectures and Protocols(SIGCOMM' 94),London, UK, August 1994,pp. 234-244.)、 ARAN(K. Sanzgiri, B. Dahill, B.N.Levine, C. Shields and E. M. Royer,"A Secure Routing Protocol for Ad hoc Networks,,,Proc. 10th IEEE Int' 1. Conf. Network Protocols (ICNP' 02),IEEE Press, 2002, pp. 78-87.)等都无法抵御虫洞攻击。目前,已有一些检测和防御虫洞攻击的方法,比如包束缚(Packet Leash)机制(参见文献 Y. C. Hu, A. Perrig, and D. B. Johnson, "Packet leashes :A defense against wormhole attacks in wire-less networks,,,in Proceedings of the Twenty-Second Annual Joint Conference of the IEEE Computer and Communications Societies, vol. 3,pp. 1976-1986,2003.),基于定向天线的检测(参见文献 L. Hu and D. Evans,"Using Directional Antennas to Prevent Wormhole Attacks,,,Network and Distributed System Security Symposium, San Diego, CA, 5-6 February2004.)和视觉化网络拓扑(参见文献 W. Wang, B. Bhargava, "Visualization of Wormholes in Sensor Networks,,,ACM WiSE'04,October 2004)等方法。这些方法的缺点主要表现在其对节点的计算精度和速度或设备成本的要求较高,因而在实际的应用中面临着许多困难。
发明内容
本发明的目的在于克服现有技术存在的不足,提供一种设备投入成本低,能快速有效地检测Ad Hoc网络中虫洞攻击的方法。本发明的技术方案是提供一种Ad Hoc网络中虫洞攻击的检测方法,节点发送或接收路由消息时,在路由消息中建立包括Τ。、ΔΤ和Gt三个要素的时间尺信息Ruler :(TQ, Gt, ΔΤ),其中,Ttl为节点建立时间尺信息时的初始时间,ΔΤ为节点发送信息的允许时间范围,Gt为节点向它的相邻节点连续两次发送路由包的最小时间间隔;节点建立并存储与它相邻的所有节点的邻居列表,列表中包括的元素项为相邻节点的时间尺信息Ruler (Ttl, Gt, ΔΤ),接收时间尺校正标志和邻居有效性标志。节点发送路由消息时,包括如下操作步骤(1)判断要发送的路由消息是否为HELL0_ACK形式的HELLO确认消息,如果是,转到步骤(7);(2)检查当前节点的时间尺信息是否已经建立,如果未建立,转到步骤⑷;(3)读取当前节点的发送时间尺信息Rulers = CTtl,Gt, Δ T),获取当前节点的系统
时间Τ。,确定路由消息的发送时间Ts,!;同时满足其中,k为正整数,转到步骤⑶;(4)判断要发送的路由消息是否为HELL0_INF0形式的HELLO信息消息,如果不是, 转到步骤(6);
.^ R(5)确定节点发送信息的允许时间范围ΔΤ = 7其中,c为无线信号的传播速
C ?
度,R为节点的传输半径;确定节点向它的相邻节点连续发送路由包的最小时间间隔Gt > 2 ΔΤ;建立并存储当前节点的发送时间尺信息Rulers :(!;,&,ΔΤ),转到步骤⑶;(6)删除该路由消息;(7)确定路由消息的发送时间!;,!;同时满足其中,Τ。为当前节点
的系统时间,Τ,为当前节点接收到来自相邻节点的HELL0_INF0形式的HELLO信息消息的时间,k为正整数;延时Ts-Tc后,转到步骤(8);同时,创建HELL0_INF0形式的HELLO信息消息,循环执行步骤(1);(8)立即发送该路由消息。节点接收路由消息时,包括如下操作步骤(1)在当前节点的邻居列表中查找发送该路由消息的相邻节点对应的接收时间尺信息 Ruler :(T。,Gt,Δ Τ);(2)如果相邻节点对应的接收时间尺信息存在,则继续下一步,否则转到步骤 (11);(3)判断该接收的路由消息是否为HELL0_ACK形式的HELLO确认消息,如果是则继续,否则转到步骤⑶;(4)读取当前节点的发送时间尺信息Rulers = CTtl,Gt, ΔΤ),获取当前节点
的系统时间T。,计算所接收的路由消息从发送节点到当前节点的链路传播延时时间 (T — T TCfii G
^=-~^-L查询对应的接收时间尺信息Ruler,: (Tc^Gt, Δ Τ)及其校正标志;如果
校正标志为未校正状态,则修改该接收时间尺信息中的起始时间Ttl = TtTtd,并将校正标志设置为已校正状态;如果校正标志为已校正状态,则不做任何操作;(5)读取当前节点的发送时间尺信息Rulers = CTtl,Gt, Δ Τ),获取当前节点的系统时间Τ。,按Td= (Tc-T0)rem Gt的计算结果,若Td <2 ΔΤ(注意公式改过了),则继续,否则转到步骤(10);(6)设置邻居列表中发送该HELLO确认消息的邻居节点的邻居有效性标志为有效状态,同时设置路由表中所有以该邻居节点为下一跳节点的路由表项的有效性标志为有效状态;(7)按照所使用的路由协议处理该路由消息,转到步骤(14);(8)检查与发送节点对应的相邻节点的接收时间尺信息是否已经被校正,如果是, 则继续,否则转到步骤(10);(9)读取接收时间尺信息Ruleiv (T0,Gt, Δ Τ);获取当前节点的系统时间Τ。,按Td =(Tc-T0)rem Gt的计算结果,若Td < ΔΤ,则转到步骤(6),否则继续;(10)设置发送该HELLO确认消息的邻居节点为无效状态,同时设置路由表中所有以该邻居节点作为下一跳节点的路由表项为无效状态,转到步骤(14);(11)判断接收到的路由消息是否为HELLO信息消息,如果不是,转到步骤(13);(12)从HELLO信息消息中读取Gt禾Π Δ T信息,获取当前节点的系统时间Τ。;创建接收时间尺Ruleiv :(!;,&,Δ Τ),将其与邻居列表中与该相邻节点对应的元素一起存储,并将接收时间尺校正标志设置为未校正状态;从时间Τ。开始,延时kGt (注意公式改过了)的时间后,从节点发送路由消息时的步骤⑴开始执行,向该相邻节点回复HELLO确认消息;(13)创建并广播HELLO信息消息;(14)删除该路由消息。在Ad Hoc网络中虫洞攻击是一种较难防御的攻击手段。参见附图1,它是Ad Hoc 网络中利用带外信道来建立隧道的虫洞攻击的示意图;在图1中,A、B、S和X为正常节点, Ml和M2攻击节点,R为正常节点的传输半径。节点S通过检查其它节点回复的HELLO确认消息来发现有效邻居。在正常节点S的覆盖范围内,有正常节点A和攻击节点M1,正常节点节点S和A之间可建立正常链路;在正常节点X的覆盖范围内有正常节点B和攻击节点 M2,正常节点节点X和B之间可构建正常链路;攻击节点Ml和M2之间的距离大于所有节点的传输半径,攻击节点通过带外无线信道——私有通道建立隧道。对于利用带外信道来建立隧道的虫洞攻击方法,其特征主要表现为隧道的长度通常远大于正常节点的单跳链路长度。本发明采用在节点发送或接收路由消息时,在路由消息中建立包括ΤρΔΤ和Gt三个要素的时间尺信息Ruler (T0, Gt, Δ T),由于消息在两个节点之间的传播速度是确定的,因此通过测量消息的传播时间,可以测量出某个消息经过的单跳链路的长度,即可发现隧道的存在与否,达到检测虫洞攻击目的。本发明采用时间尺检测虫洞的工作原理是当Ad Hoc网络中所有相邻节点建立连接后,所有的节点必须按照它预先设计好的时间尺来发送路由包。每个接收到路由包的节点根据与发送者(从路由包中获知)对应的接收时间尺来判断路由包的经过路径的合法性。由于路由包是按照特定的间隔发送的, 在发送者与接收者之间的距离可变而又不超过发送者传输半径的情况下,路由包的接收时间点应该在可以预知的区间上。本发明根据接收路由包分别选用发送或接收时间尺进行检测。Ad Hoc网络中的节点随时可以加入或离开网络。在节点加入Ad Hoc网络时,总是先广播单跳的HELLO消息来建立与其它节点的直接连接。包括HELLO消息在内的所有路由消息按照发送时间尺进行发送。由于正常节点的信号覆盖范围是有限的,路由包从发送者到达接收者的延时也是有限的。如图1所示,假设S和X的距离大于S的传输半径R,并且不计路由消息在攻击节点上的延时,那么节点X和节点A向节点S回复的HELLO确认消息将会有不同的延时。节点S发送了一个HELLO信息消息后,确定了 S的发送时间尺Rulers (T0, Gt, Δ Τ),此HELLO信息消息将通过正常信道到达节点Α,通过Ml和Μ2建立的隧道到达节点 X,并且由于其生存时间仅有1跳,所以不会到达节点B。根据模型假设,收到HELLO信息消息后,节点A、X必须立即或延时若干个Gt后回复HELLO确认消息。设来自节点A的HELLO 确认消息和来自X的HELLO确认消息到达节点S的时间点分别为t.和ts&,检查两者是否满足由发送时间尺确定的不等式T0+kgGt < t < T0+kgGt+2 Δ T (k = 0,1,2L),如果不满足,则在邻居列表中将对应的邻居设置为无效状态,否则为有效状态。经分析,接收时间点t.满足该不等式,而ts&不满足,因此节点A被判断为节点S 的有效邻居,而节点X被判断为无效邻居。在图1中,设S为新加入的节点,在接收到节点S的HELLO信息消息后,节点A和节点X除了回复HELLO确认消息外,还将在自己的原有发送时间尺上重新广播HELLO信息消息。重新广播HELLO信息消息是为了让节点S建立对应于本节点(A或X)的接收时间尺。节点S接收到来自节点A的HELLO信息消息,计算并存储与此发送者对应的接收时间尺Rulerr (T0, Gt, Δ Τ),此后,节点A在其发送时间尺上某个刻度发送路由包,设该路由包到达节点S的时间点为tto。节点S检查接收时间点是否满足与发送者对应的接收时间尺确定的范围T0+kGt < t < T0+kGt+ Δ T (k = 1,2,3,L),如果不满足,节点S将节点A在邻节点列表中的状态设置为无效,否则为有效状态。与现有技术相比,本发明的优点是通过测量消息的传播时间,从而测量出某个消息经过的单跳链路的长度,即可发现隧道的存在与否,是一种防御虫洞攻击的有效检测手段。
图1是Ad Hoc网络中虫洞攻击方法的示意图;图2是本发明实施例提供的节点发送路由消息的流程图;图3是本发明实施例提供的节点接收路由消息的流程图;图4是应用本发明实施例提供的一种检测Ad Hoc网络中虫洞攻击方法前后网络数据包丢包率与节点移动性关系曲线的对比图。
具体实施例方式下面结合附图和实施例对本发明作进一步描述。实施例11、本实施例所述的网络和节点作如下设定(1)网络中每个正常节点的无线收发装置都具有相同的传输半径R。(2)网络中至少有两个攻击节点,通过带外高带宽无线信道建立隧道,并假设攻击节点是在网络中所有节点都已经完成初始化之后才进入整个Ad Hoc网络中的。(3)所有节点采用修改的SAODV路由,除了保留原有的路由消息的加密夕卜,增加对 HELLO消息的加密。此外,在HELLO消息中增加一些用于设定时间的字段。(4)节点按照下面所述的时间尺发送路由包。节点发送的第1个路由包为带附加信息的HELLO消息包,此消息称为HELLO信息消息。任何一个节点在收到HELLO信息消息后必须回复一个确认的HELLO消息,此消息称为HELLO确认消息。(5)每个节点都有计时系统。不要求网络中的节点是时间同步的,不同的节点系统时间可能并不一样。但要求节点能将路由包的发送时间至少精确到微秒。本实施例所提供的虫洞攻击的时间尺检测方案中包括两个主要的内容,一个是网络节点按照发送时间尺控制路由消息的发送时间,另一个是网络节点接收到来自邻居的消息后使用对应的接收时间尺来检测路由消息经过的链路的有效性。虫洞攻击检测的目的是为了防御或削弱虫洞攻击的危害。虫洞攻击检测的结果是某个邻居的有效性状态,即是“虚假”邻居,还是真实邻居。显然,在有虫洞的Ad Hoc网络中,“虚假”邻居是由虫洞造成的。为了防止虫洞攻击节点的攻击行为,应当避免使用“虚假” 邻居来转发数据包。因此,在检测出邻节点的有效性状态后,除了需要设置邻居列表中对应的元素的有效性状态,还应当对路由表进行适当的设置。在AODV路由协议中,路由表项中包含目的节点的IP地址和下一跳节点的地址。为了防止下一跳节点是“虚假”邻居,应该在路由表项中添加一个标志VN,用以表示下一跳节点的有效性。在发送数据消息时,只有当某个路由表项是有效的,且其下一跳节点也是有效的,才可以使用该路由表项来发送数据消息。在节点应用时间尺检查出某个邻居节点的有效性状态后,应当设置路由表中所有以该邻居为下一跳节点的路由表项的VN有效性状态。为了便于表述,在本实施例中,将HELLO信息消息称为HELL0_INF0,而HELLO确认消息称为HELL0_ACK。除了具有AODV路由协议中规定的功能,HELL0_INF0和HELL0_ACK也用于时间尺的建立。每个节点按照一定的规律发送路由包。具体表现为,路由包总是在自己可以计算的时间点上进行发送,预先设定连续两次发送路由包的最小间隔。由于每个节点的传输半径是不变的,因此接收到来自某个特定节点的路由包的时间也是在可以预测的范围内。时间尺包含三个要素节点建立时间尺信息时的初始时间Ttl、节点向它的相邻节点连续两次发送路由包的最小时间间隔Gt、节点发送信息的允许时间范围ΔΤ,确定了这三个要素也就确定了一把时间尺的信息,将其记作Ruler :(!;,&,Δ Τ)。时间尺的长度是无限的,其上的各个时间点(或称时间刻度)按照其刻度大小从起始时间点依次排开,相邻的两个时间点间隔为Gt。在实际应用中,网络中每个正常节点内部存储着一把自己用于发送路由消息的时间尺,称“发送时间尺”,和与各个邻节点对应的用于检验路由消息接收时间点的若干把时间尺,称“接收时间尺”。路由消息的发送时间必须对应于发送时间尺上的某个刻度。2、时间尺的建立和存储方法(1)发送时间尺的建立节点要发送第一个HELLO信息消息时,记录发送的时间为Ttl,根据自己的传输半
.^ R
径R计算允许范围虹(c为无线信号在空中的传播速度),再设定一个最小时间间隔
C ?
Gt,并将ΔΤ和Gt附加到此消息中发送。于是发送时间尺建立,以后在发送时间尺上Tk = T。+kgGt(k= 1,2,3L)点上发送路由包。一个节点的发送时间尺一旦确定就不再更改,直到其离开网络。(2)接收时间尺的建立当有其它节点向本节点返回HELLO确认消息,根据其到达时间点和发送时间尺, 可以计算此HELLO确认消息从发送者到达本节点的延时,记作td。当本节点收到来自该发送者HELLO信息消息后,记录到达时间点为Τ,,计算此HELLO信息消息的发送时间点在本系统中的起点时间Ttl = T,-td,从HELLO信息消息中读取关于发送节点的发送时间尺允许范围Δ T和间隔时间Gt,并将这两个数值分别作为接收时间尺的ΔΤ和Gt。于是关于该发送节点的接收时间尺建立。(3)时间尺的存储每个网络节点只有一把发送时间尺。由于当确定了时间尺的三个要素之后,时间尺上的所有刻度就可以计算出来,因此只要存储发送时间尺的三个要素即可。对于一般的节点而言,其邻居节点可能有多个。为了使与所有邻居节点之间的链路都能够被分别检测,每个节点应当存储与其所有邻居节点对应的接收时间尺。在节点的内存中,接收时间尺应与邻居节点列表一起存储,以便通过邻居节点的身份信息(IP或MAC 地址)查找到对应的接收时间尺。另外,从接收时间尺的建立过程(上面的( 节)中看出,当第一次接收到邻居节点的HELLO信息消息后,创建的接收时间尺的起点时间需要减去从邻居节点到当前节点的传播延时,即需要对刚创建的接收时间尺进行校正。因此,与接收时间尺一起,还应当存储一个表示该接收时间尺是否已经被校正的标志。并且邻居节点列表中的每个元素应包含邻居节点的身份(IP或MAC地址)、接收时间尺Ruler, :(!;,、 Δ Τ)、已校正标志CF和邻居有效性状态等。3、具体步骤(1)节点发送路由消息时参见附图2,它是本实施例节点发送路由消息时的流程图,包括发送时间尺的创建和使用,当节点发送路由消息msg时,按如下步骤执行①判断要发送的路由消息是否为HELL0_ACK。如果是,转到第⑦步,否则,继续。②检查当前节点的发送时间尺是否已经建立,如果未建立,则转到第④步,否则继续。③利用当前节点的发送时间尺控制该路由消息的发送时间。具体包括获取当前节点的系统时间T。;读取当前节点的发送时间尺信息Rulers (T0, Gt, ΔΤ);寻找发送时间Ts,必须满足其中k为整数,并且在满足各种协议标准(网络层、接入层等的协议标准)的情况下,要求八尽可能小;缓冲此路由消息,缓冲时间为Ts-T。。转到第⑧步。④判断要发送的消息是否为HELL0_INF0。如果是,继续,否则转第⑥步。⑤建立并存储当前节点的发送时间尺。首先获取当前节点的系统时间作为发送时
A ^t7 R
间尺的Tci ;由当前节点的传输半径R计算发送时间尺的允许时间AT1 = I.在满足Gt>2AT
的条件下综合考虑提高隧道的检测性能和减小路由的建立时间来选择发送时间尺的间隔时间Gt,间隔时间Gt越小,路由建立时间越短,间隔时间Gt越大,隧道检测性能越好;存储当前节点的发送时间尺信息Rulers :(!;,&,Δ T);在要发送的路由消息中添加当前节点的发送时间尺的两个信息,即Gt和ΔΤ。转到第⑧步。⑥此时,当前节点的发送时间尺尚未建立,而且要发送的路由消息也不是HELL0_ INF0,则无法控制该路由消息的发送时间,只能将其删除。转到⑨步。⑦当要发送的路由消息是HELL0_ACK时,此路由消息应当是作为对HELL0_INF0消息的回复而发送给某个邻居节点(目的节点)的,其发送的时间点并不是利用当前节点的发送时间尺来计算,而是由当前节点接收到来自该邻居的HELL0_INF0消息的时间Τ,和从此消息中获取的Gt来计算。具体地,HELL0_ACK消息的发送时间点Ts必须满足其中T。为当前节点的系统时间,k为正整数,并且在满足各种协议标准的情况下, 要求Ts尽可能的小。延时Ts-Te后,转到下一步执行,同时创建HELL0_INF0消息,从第①步执行。⑧立即发送此路由消息。
ts>tc
Ts=TJkGt
ts>tc
Ts=Tr+kGt
⑨对要发送的路由消息处理完毕。(2)节点发送和接收路由消息时参见附图3,它是本实施例节点接收路由消息时的流程图,包括接收时间尺的创建和使用,当节点接收到来自某邻节点的路由消息msg后,按如下步骤执行①在当前节点内查找与发送此路由消息的邻节点对应的接收时间尺。当前节点的所有邻节点的接收时间尺应当是存储为列表形式,以便于查找。②如果对应的接收时间尺存在,则继续下一步,否则转到第(11)步。③判断此路由消息是否为HELL0_ACK,如果是则继续,否则转到第⑧步。④首先计算此消息从发送节点(即发送此路由消息的邻节点)到当前节点的传播延时。计算的方法是读取当前节点的发送时间尺信息Rulers :(!;,&,△ T);获取当前节点
(T — T、TCfii G
的系统时间T。;计算链路传播延时td=c 0,2-L
ο传播延时计算完成后,如果与发送节点对应的接收时间尺未被校正过,则对其进行校正。具体的做法查询对应的接收时间尺信息Ruler^ (Ttl, Gt, Δ T)及其校正标志;如果接收时间尺未被校正,则修改接收时间尺的起点时间,即Ttl = TtTtd,然后设置校正标志, 令其表示已校正状态;如果接收时间尺已经被校正,则不做任何操作。⑤利用当前节点的发送时间尺来检测此HELL0_ACK消息经过的链路的有效性, 如果有效,进入下一步,否则转到第⑩步。具体的检测方法读取当前节点的发送时间尺 Rulers (T0, Gt, Δ T);获取当前节点的系统时间Tc,即为HELL0_ACK的到达时间点;计算Tc 到发送时间尺上小于Tc的最大刻度的距离Td,即Td = (Tc-T0)rem Gt ;如果Td < 2gAT,则有效,否则无效。如果有效则继续,否则转到第⑩步。⑥设置发送此HELL0_ACK消息的邻居节点为有效,即设置邻居列表中该邻居对应的元素为有效,同时设置路由表中所有以该邻居节点为下一跳节点的路由表项的VN为有效状态。进入下一步。⑦按照SAODV路由协议处理该路由消息。转到第(14)步。⑧检查与发送节点对应的接收时间尺是否已经被校正。如果是,则继续,否则转到
第⑩步。⑨利用与发送节点对应的接收时间尺来检测发送节点到当前节点的链路的有效性,如果有效,转到第⑥步,否则进入下一步。读取接收时间尺信息Rulerr :(!;,&,Δ T);获取当前节点的系统时间Τ。,即为HELL0_ACK消息的到达时间点;计算T。到接收时间尺上小于T。的最大刻度的距离Td,即Td= (Tc-T0)rem Gt;如果Td < ΔΤ,则有效,否则无效。如果无效则继续,否则转到第⑥步。⑩设置发送此HELL0_ACK消息的邻居节点为无效,即设置邻居列表中该邻居对应的元素为无效,同时设置路由表中所有以该邻居节点作为下一跳节点的路由表项的VN为无效状态。跳转到第(14)步执行。(11)判断接收到的路由消息是否为HELL0_INF0,如果是,则进入下一步,否则转到第(13)步。(12)创建与发送此HELL0_INF0消息的邻居节点对应的接收时间尺,并向该邻居节点回复一个HELL0_ACK。具体内容包括从HELL0_INF0消息中读取Gt和Δ T信息;获取当前节点的系统时间T。,即为此HELL0_INF0消息的到达时间点;创建接收时间尺Rulei^ (T0, Gt, Δ T),将其与邻居列表中与该邻居对应的元素一起存储,并设置未校正标志;从时间 Tc开始,延时kGt后向该邻居节点回复HELL0_ACK消息,从图2的①开始执行。(13)创建并广播HELL0_INF0消息,从图2的①处执行。广播HELL0_INF0消息的目的是为了建立与该邻居节点对应的接收时间尺。(14)删除该路由消息。(15)对此路由消息的处理完毕。4、网络虫洞检测效果选用0mnet++4. 1平台,按本实施例所述的基于时间尺的方法进行虫洞检测。在检测网络中,50个网络节点在面积为2000X2000m2的二维平面场地上随机分布。在50个网络节点中,包含5个信源节点和5个虫洞攻击节点,所有正常节点的通信范围是半径为323 米的圆形区域,虫洞攻击节点之间的隧道的长度最大可达1000米。每个节点的移动速度在 1 lOm/s范围内,且为随机有限移动开始移动之前,在360度范围内随机选取一个方向, 然后以一定的速度移动固定的距离,在到达目的地后,在原地休息一定的时间后,再随机选取一个方向,仍以一定的速度移动固定的距离。网络中的所有正常节点均运行SAODV路由协议。参见附图3,它是本实施例技术方案实施前后网络数据包丢包率与节点移动性关系曲线的对比图。从图中看出,在未应用本实施例所述的时间尺检测方法(图中曲线I)时, 网络数据包的丢包率大约在35%左右,最高可达40%。而在应用了本实施例所述的时间尺检测方法后,网络数据包丢包率有了明显的下降。其中,时间间隔Gt等于6倍ΔΤ的时间尺(曲线II)对应的网络数据包丢包率在12. 5 25%之间,而时间间隔等于12倍ΔΤ的时间尺(曲线III)对应的网络数据包丢包率在11 20%之间,并且在节点移动性相同的情况下,后者总略小于前者,即时间间隔更大的时间尺对应的网络丢包率更小,整个网络的性能更好。图3结果表明,在应用本发明所述的时间尺检测方法后,网络的性能明显提高。同时,还可以看到(1)对某个时间间隔Gt固定的时间尺,整个网络的性能随着节点移动速度的增加而提高。从整体上而言,当节点的移动速度增加后,在一定的时间内,每个(正常)节点可以与更多的其它节点进行直接的通信,从而可以建立更多的接收时间尺。如果包含虫洞的网络中每个(正常)节点内建立的接收时间尺的数量增加,则网络中虫洞被发现的机率也将增加,从而导致有更多的虫洞被发现并且被正常节点隔离。(2)当网络节点的移动速度固定时,时间间隔Gt更大的时间尺对应的网络性能更好。路由包的单跳延时是根据其到达的时间点与对应的发送时间尺或接收时间尺上小于到达时间点的最大刻度的差来计算的。当网络中存在隧道时,这种计算方法并不一定就是正确的,即计算出来的单跳延时可能比实际的单跳延时要小。因此,这就可能带来误判,某些非法的单跳链路将会被判断为合法的。经过分析,对于正常节点的传输半径固定的网络, 正常节点检测到非法链路的概率与时间尺的时间间隔Gt有关,并且当时间间隔Gt越大,则检测到非法链路的概率就越大。因此,当包含虫洞的网络中应用的时间尺的Gt越大,则所有虫洞被检测到的概率就越大,就将有更多的虫洞被发现并隔离。
权利要求
1.一种Ad Hoc网络中虫洞攻击的检测方法,其特征在于节点发送或接收路由消息时,在路由消息中建立包括V ΔΤ和Gt三个要素的时间尺信息Ruler (T0, Gt, ΔΤ),其中, T0为节点建立时间尺信息时的初始时间,Δ T为节点发送信息的允许时间范围,Gt为节点向它的相邻节点连续两次发送路由包的最小时间间隔;节点建立并存储与它相邻的所有节点的邻居列表,列表中包括的元素项为相邻节点的时间尺信息Ruler (T0, Gt, ΔΤ),接收时间尺校正标志和邻居有效性标志。
2.根据权利要求1所述的一种AdHoc网络中虫洞攻击的检测方法,其特征在于节点发送路由消息时,包括如下操作步骤(1)判断要发送的路由消息是否为HELL0_ACK形式的HELLO确认消息,如果是,转到步骤⑵;(2)检查当前节点的时间尺信息是否已经建立,如果未建立,转到步骤;(3)读取当前节点的发送时间尺信息Rulers= CTtl,Gt, △ T),获取当前节点的系统时间T。,确定路由消息的发送时间!;,八同时满足二其中,k为正整数,转到步骤(8);(4)判断要发送的路由消息是否为HELL0_INF0形式的HELLO信息消息,如果不是,转到步骤(6);(5)确定节点发送信息的允许时间范围=f其中,c为无线信号的传播速度,R为节C ?点的传输半径;确定节点向它的相邻节点连续发送路由包的最小时间间隔Gt > 2ΔΤ ;建立并存储当前节点的发送时间尺信息Rulers :(!;,、ΔΤ),转到步骤⑶;(6)删除该路由消息;(7)确定路由消息的发送时间Ts,Ts同时满足二其中,Tc为当前节点的系统时间,Tr为当前节点接收到来自相邻节点的HELL0_INF0形式的HELLO信息消息的时间, k为正整数;延时Ts-Tc后,转到步骤(8);同时,创建HELL0_INF0形式的HELLO信息消息, 循环执行步骤(1);(8)立即发送该路由消息。
3.根据权利要求1所述的一种AdHoc网络中虫洞攻击的检测方法,其特征在于节点接收路由消息时,包括如下操作步骤(1)在当前节点的邻居列表中查找发送该路由消息的相邻节点对应的接收时间尺信息 Ruler (T0, Gt, Δ T);(2)如果相邻节点对应的接收时间尺信息存在,则继续下一步,否则转到步骤(11);(3)判断该接收的路由消息是否为HELL0_ACK形式的HELLO确认消息,如果是则继续, 否则转到步骤(8);(4)读取当前节点的发送时间尺信息Rulers= CTtl,Gt, ΔΤ),获取当前节点的系统时间T。,计算所接收的路由消息从发送节点到当前节点的链路传播延时时间(T — T TCfii G^=-~^-L查询对应的接收时间尺信息Ruler,: (Tc^Gt, Δ Τ)及其校正标志;如果校正标志为未校正状态,则修改该接收时间尺信息中的起始时间Ttl = TtTtd,并将校正标志设置为已校正状态;如果校正标志为已校正状态,则不做任何操作;(5)读取当前节点的发送时间尺信息Rulers= CTtl,Gt, △ T),获取当前节点的系统时间 T。,按Td= (Tc-T0)rem Gt的计算结果,若Td <2 ΔΤ(注意公式改过了),则继续,否则转到步骤(10);(6)设置邻居列表中发送该HELLO确认消息的邻居节点的邻居有效性标志为有效状态,同时设置路由表中所有以该邻居节点为下一跳节点的路由表项的有效性标志为有效状态;(7)按照所使用的路由协议处理该路由消息,转到步骤(14);(8)检查与发送节点对应的相邻节点的接收时间尺信息是否已经被校正,如果是,则继续,否则转到步骤(10);(9)读取接收时间尺信息RuleG (T0, Gt, Δ T);获取当前节点的系统时间Τ。,按Td = (Tc-T0)rem Gt的计算结果,若Td < Δ Τ,则转到步骤(6),否则继续;(10)设置发送该HELLO确认消息的邻居节点为无效状态,同时设置路由表中所有以该邻居节点作为下一跳节点的路由表项为无效状态,转到步骤(14);(11)判断接收到的路由消息是否为HELLO信息消息,如果不是,转到步骤(13);(12)从HELLO信息消息中读取Gt和ΔT信息,获取当前节点的系统时间Τ。;创建接收时间尺Ruleiv :(!;,&,Δ Τ),将其与邻居列表中与该相邻节点对应的元素一起存储,并将接收时间尺校正标志设置为未校正状态;从时间Τ。开始,延时kGt (注意公式改过了)的时间后,从节点发送路由消息时的步骤(1)开始执行,向该相邻节点回复HELLO确认消息;(13)创建并广播HELLO信息消息;(14)删除该路由消息。
全文摘要
本发明涉及一种无线网络安全技术,公开了一种Ad Hoc网络中虫洞攻击的检测方法。节点发送或接收路由消息时,在路由消息中建立时间尺信息Ruler(T0,Gt,ΔT),其中,T0为节点建立时间尺信息时的初始时间,ΔT为节点发送信息的允许时间范围,Gt为节点向它的相邻节点连续两次发送路由包的最小时间间隔;节点建立并存储与它相邻的所有节点的邻居列表,列表中包括的元素项为相邻节点的时间尺信息Ruler(T0,Gt,ΔT),接收时间尺校正标志和邻居有效性标志。由于消息在两个节点之间的传播速度是确定的,本发明通过测量消息的传播时间,从而测量出某个消息经过的单跳链路的长度,即可发现隧道的存在与否。该方法的实施设备投入成本低,是一种防御网络中虫洞攻击的有效检测手段。
文档编号H04W40/24GK102404739SQ20111028836
公开日2012年4月4日 申请日期2011年9月26日 优先权日2011年9月26日
发明者吕国原, 汪一鸣 申请人:苏州大学