对于自组织网络来说,当中的AODV路由协议是一个重点,也是一个难点。所以我们今天就特意将这个协议的一些问题,在这里为大家仔细地深入研究一下。那么本文主要包括的内容则是:研究对Ad-hoc网络中AODV路由协议的路由黑洞攻击问题进行研究,希望基于对中间应答节点及其下一跳节点进行检测的思想,研究适用于AODV路由协议的可信路由算法,使AODV路由协议能够识别出进行路由黑洞进攻的恶意节点,同时,能进一步改善安全AODV路由协议的性能,包括网络吞吐量、分组成功接收的概率、网络开销和时延。
在对AODV路由协议、Ad-hoc网络面临的安全威胁和现有的安全AODV路由协议进行深入研究的基础上,提出可信AODV路由协议,以解决AODV路由协议中的路由黑洞。
AODV借用了DSR的路由发现策略及DSDV的逐跳路由、序列号和定期广播机制,是一种按需路由协议。
在AODV路由协议中,每个节点动态的生成并维护一张不完整的路由表。当数据到达网络层时,节点首先搜索自身路由表,若有到目的节点的有效路由则直接使用该路由发送数据,否则将启动路由建立过程。
源节点广播路由请求消息(RREQ),包括目的节点地址、目的节点序列号、广播序列号、源节点地址、源节点序列号、上一跳地址和跳数。当中间节点收到RREQ时,首先根据该RREQ提供的信息建立到上一跳的反向路由,接着查找自己的路由表,若发现有到目的节点的有效路由,则通过反向路由单播回送路由应答消息(RREP),包括源节点地址、目的节点地址、目的节点序列号、跳数和生存时间。否则再将收到的RREQ广播给邻居节点,直到该RREQ到达日的节点。
由目的节点生成RREP,并沿已建立的反向路由传给源节点。当同一个RREQ有若干不同的RREP时(可能由目的节点或者不同的中间节点发出),源节点采用最先到达的那个RREP。若几个RREP同时到达,源节点将选择目的节点序列号最大的路由,或者在目的节点序列号相同时,选择跳数最小的路由。至此,路由建立完毕,并可以在其有效期内使用。
数据沿着建立的路由传送过程中,中间节点在确定有有效路由,但下一跳节点无法到达(可能由于节点的移动或者链路断路)或者在没有有效路由时(例如有效期结束),该节点将广播路由出错消息(RERR)给邻居节点。RERR包括无法到达的节点地址和序列号,所有收到RERR的节点将相应的路由设置为无效,并同理广播RERR,源节点收到RERR后将重启路由建立过程。
恶意节点利用AODV路由协议的广播机制捕获经过自己的RREQ消息,并宣称自己有到达目的节点的最佳路由(通过伪造跳数或者伪造目的节点序列号),从而使源节点采用此虚假路由。这样,恶意节点可以轻易拦截下所有数据包而形成一个吸收数据包的“黑洞"。
由于恶意节点在收到RREQ消息时不需要查表也不需要判断路由的有效性就做出应答,所以往往会先于其它路由应答消息到达源节点,就算有其它正确的路由应答消息同时到达,由于恶意节点伪造了跳数或者目的节点序列号,使得源节点看起来该路由有到达目的节点的更短的路径(跳数小)或者比其它路由更新(目的节点序列号大),从而使源节点错误地选择了虚假路由。
在对于Ad-hoc网络的进攻上,国内外的许多研究者做了大量的工作,将攻击行为分成了以下几大类:拒绝服务攻击(Dos)、路由黑洞(Black hole)、路由重播(Replay)、Rushing攻击、Tunneling攻击等。#p#
恶意节点对AODV路由协议的攻击归纳为以下六类:
(1)假冒源结点S伪造一个RREQ包,让自己的地址看起来像源地址;
(2)当转发一个RREQ包的时候,减少跳数域;
(3)扮演接收方伪造一个RREP,让自己的地址看起来像目的地址;
(4)没有去转发相应的RREQ或者RREP,或者没有去响应相应的RREQ和数据包;
(5)用很高的目的结点序列号伪造一个RERR包;
(6)把一个结点的源或目的序列号设置得很大。
针对于Ad-hoc网络中的这些进攻,已经提出了几种安全AODV路由协议和方案。
ARAN(Authenticated Routing for Ad-hoc Networks)通过可信任的认证服务器,为所有的有效接点颁发证书,并且把路由跳数信息也加入到签过名的包内,下一跳收到路由包的节点,用从密钥服务器中得到的公钥对由上游结点发来的路由包进行验证,通过验证后,再用自己的私钥进行加密后进行转发。
Ariadne协议的目标在于用较小的计算开销,来保障路由发现的正确路径。采用了一个广播的认证协议—定时有效流损失容忍认证(Timed Efficient Stream Loss-tolerant Authentication,TELSA)。TELSA目标在于不用密钥分发机制提供的共享密钥,每个节点创建一个哈希链,哈希值被当成密钥,用来生成每个包的消息认证码MAC(Message Authentication Code)。
SAODV(Secure Ad-hoc On-Demand Distance Vector)提出了把可变域,如跳数,和不可变域分开进行处理。对于可变域,用哈希函数进行逐跳验证;对于不可变域进行数字签名,并拓展了一些字段用于已知目的节点的中间节点发送RREP包。
辛辛那提大学的Hongmei Deng等人提出了一种基于对响应节点的下游邻居节点验证的方案。当中间节点(假设是B)应答RREQ时必须在RREP中附加下一跳节点C的信息,源节点收到RREP后并不立即信任该路由,而是再向C发送验证询问包,如果返回的验证反馈包中确认有到目的节点和到B的可用路由(源节点忽略来自包含节点B的路径的返回的验证反馈包)源节点将信任的RREP,否则抛弃RREP,同时向全网发送警告信息孤立。
这些利用数字签名,加密等方法解决路由黑洞攻击问题的方案虽然有比较高的安全性,但由于每个节点都要执行加密和验证程序,因此应用在计算机能力和电源有限的移动终端中显得过于庞大,同时加密和验证还会引起时延,不利于大规模网络的构建。
本文研究在成组恶意节点攻击情况下,可信AODV路由协议。