一种基于可靠性的移动AdHoc网络自适应安全路由方法

文档序号:7735709阅读:175来源:国知局
专利名称:一种基于可靠性的移动Ad Hoc网络自适应安全路由方法
技术领域
本发明涉及一种基于可靠性的移动Ad Hoc网络自适应安全路由方法-RASR(Reliability-based Adaptive Security Routing),它主要解决移动 Ad Hoc 网络的安全路由问题,属于通信网络安全技术领域。
背景技术
移动Ad Hoc网络是一种由众多移动节点构成的临时性多跳的自治系统,移动节点同时具备路由器和主机的功能,在节点的相互协作下,使得两个无法直接通信的节点可以进行通信,在没有固定基础设施支持下,为用户提供一种网络通信支撑环境。但是,移动Ad Hoc网络容易受到严重的安全攻击,如果没有适当的安全机制,攻击者就可以侵袭,甚至控制网络;干扰,甚至完全阻断通信。安全路由保证网络在一定程度的攻击下仍能维持合适的数据传输率,一般包含安全路由发现和安全数据传输两个阶段。安全路由发现已有大量的研究,然而,仅有安全路由发现是不够的,攻击者可能正确地参与路由发现,但是在数据传输时发起攻击,恶意地丢弃数据包。所以,安全数据传输也很重要,当网络中的某些路径或区域被攻击者控制时,安全数据传输可以变更路径来避开攻击者进行数据传输。SSP(Secure Single Path Routing)是一种依靠端到端的安全路由方法,通过路由发现选择连通性好的路径优先传输消息包。目的节点验证接收数据后回复确认信息;如果没有收到确认信息,源节点就认为包丢失。每收到一个确认信息,路由传输率就增加一点;当时限结束后还没有收到确认信息,则路由传输率就减少一点。一旦路由传输率下降到一定的门限,该路径就被丢弃,源节点换用另一条路径(如果需要,就发起新的路由发现)。 SSP对导致丢包攻击的抵抗能力强,如虫洞攻击、隧道攻击或者别的合谋攻击。Sprout (Secure Probabilistic Routing)是一种通过在多条路径中选择一条的数据传输方法,这些路径由安全链路状态发现提供,节点通过广播来更新网络中的链路状态。为了抵抗合谋攻击发布虚假链路,Sprout引入防止污染网络链路状态的机制。链路状态的运行要求任何节点在任何时候都能鉴别其它的节点。Sprout在源节点建立网络的可靠性模型,基于确认信息的到达和时限结束不断更新可靠性,源节点适合变化丢失和延迟情况。Sprout随着网络规模的增大,更多的链接状态和路由表信息需要交换,留给数据传输的空间很快将变得很小,特别是节点快速移动时更甚。因此,Sprout的可扩展性差。Castor (Continuously Adapting Secure Topology-Oblivious Routing)是一禾中可扩展安全路由方法,每个节点基于确认信息的到达和时限结束不断更新可靠性,采用高效的哈希树来保障安全,具有很高的效率。但是,因为使用带密钥的哈希算法生成消息认证码来保护路由信息,要求源节点和目的节点之间共享密钥,邻居节点之间共享密钥,另外要求有效数据部分有额外的完整性保护机制。而且对路由信息的保护不很完善,攻击者篡改部分路由信息,中间节点不能验证,可能导致大量的污染数据包在网络中转发。ODSBR(On-Demand Secure Byzantine Resilient Routing)反应式地发现路由,基于源节点的观察来更新链路的权重,当通信的可靠性降低到门限以下,就增加对消息包的探测来鉴别错误的行为。ODSBR能够维持可靠性在门限以上的路径的可靠,除非该路径上有两个或两个以上的合谋攻击。ODSBR需要源节点知道网络中的所有节点。另有基于声誉或报酬的方法,但是这些方法都是复杂的或代价很大的,例如需要完全的信任表或长时间的观察等,而且效果并不是很好,有的仅对理性的攻击者有效,有的易受诬陷攻击的影响。基于蚁群的路由方法与RASR相似都没有明确的路由发现阶段,使用确认信息维持路径。然而,所有这些路由方法没有一种被认为是完全安全可靠的。

发明内容
1、目的为了解决移动Ad Hoc网络在网络规模变化和存在攻击的情况下,仍能建立安全可靠的路由,保证合适数据传输率的问题。本发明提供了一种基于可靠性的移动Ad Hoc网络自适应安全路由方法-RASR,它将路由发现和数据传输融合为一个过程,在路由过程中加入认证机制,在建立安全可靠路由的同时实现密钥和数据的安全传输,保证较高的数据传输率。2、技术方案本发明通过以下技术方案实现首先,源节点发送一个数据包 PKT(Packet);然后,中间节点转发该数据包,直到数据包到达目的节点;最后,目的节点将响应数据包的确认包ACK(Acknowledgement)按相反的路径返回源节点,每个节点通过确认信息来对邻居节点的可靠性进行评估。1).模型假设(1)系统模型假设移动Ad Hoc网络中节点的无线收发机通信范围有限,所有节点的通信信道都是双向的,节点间相互合作实现多跳通信。网络中的每个节点都有唯一的身份标识,公钥/ 私钥由可信第三方授权机构CA (Certificate Authority)颁发的证书来确定,被认证的公钥可以验证节点身份的唯一性,每一个节点都知道网络中其余节点的公钥。(2)攻击模型攻击者可以为外部节点或内部节点,攻击者攻陷节点后,可以使用该攻陷节点的身份和密钥等所有信息,正常节点被攻陷后就变为内部攻击者。攻击者可以利用多个被攻陷节点的身份和密钥假冒这些节点,即女巫攻击。攻击者之间可以串通起来进行合谋攻击, 如虫洞攻击和隧道攻击等。节点行为符合规则就认为是正确的,背离规则就认为是错误的。攻击者的行为可以任意地背离规则,如丢弃、伪造、篡改、重发消息。如果对攻击者有利,攻击者也可能依照规则正确地运行。攻击者知道系统的密码算法,但是计算能力有限,不能破坏密码系统。2).安全机制为了保证消息的安全,RASR中数据包的有效数据部分采用高效的对称加密机制保证机密性和高效率;数据包在传输过程中固定不变,对数据包的消息摘要进行数字签名,任何中间节点都可以验证,保证数据包的有效性、完整性、可鉴别性和不可否认性;将加密有效数据的对称密钥采用公钥加密后随数据包一起发送,保证了只有目的节点可以获取,而且对称密钥一次一变,确保安全;路由确认信息采用对称密钥的哈希值,任何中间节点都可以验证,但是只有目的节点可以产生。
7
3).可靠性评估(1)可靠性评估表可靠性是RASR中最重要的性能。每个节点存储一张可靠性评估表,用于存储节点的邻居节点i到达目的节点d的可靠性评估值rd, ”表示邻居节点i到达目的节点d的可靠性,并设定可靠性评估最大阀值rmax为0. 7和最小阀值rmin为0. 3,不同的节点可以设置不同的阀值。^为节点的邻居节点i到达所有目的节点的可靠性评估值的算术平均,即
权利要求
1. 一种基于可靠性的移动Ad Hoc网络自适应安全路由方法,其特征在于该方法具体步骤如下步骤一源节点发送数据包设源节点s需要发送数据到目的节点d,源节点首先构造数据包,然后依据节点可靠性评估值选择邻居节点发送该数据包;1).构造数据包源节点s构造数据包PKT(s,d,c, e,M,f)首先产生随机数r ;计算哈希值h(h(r)) 作为该数据包的标识符c;将随机数r用目的节点d的公钥Kd进行加密得到e,即 ΕκΜ);将需要发送的有效数据用随机数r作为密钥进行对称加密得到M ;计算哈希值 h(s |d| c e |M),用源节点的私钥K'|d| c e |M)进行数字签名得到f,即OHs\\d\\c\\e\\M)),用于保证数据包的有效性、完整性、可鉴别性和不可否认性;2).发送数据包源节点在本地存储的可靠性评估表中查找能到达目的节点的邻居节点的可靠性评估值,并与可靠性评估最小阀值rmin相比较;依据可靠性来选择路径转发数据包时,就是选择可靠性最高的节点来转发数据包,但这样容易引发热点问题,若向该路径注入大量的数据包,该路径的转发质量会急剧下降,因此,采用下面的方法来将网络流量分配到多条路径;(1)如果可靠性评估值k达到最大阀值rmax的邻居节点i有η> 1个,S卩rd,i彡rfflax,则以1的概率在其中随机选择一个邻居节点单播数据包;这有利于分布流量,平衡网络负η载,减轻拥塞,减少网络中出现热点的问题;(2)如果可靠性评估值k达到最大阀值rmax的邻居节点i只有一个,即k彡rmax,则选择该邻居节点单播数据包;(3)如果没有可靠性评估值I^i达到最大阀值rmax的邻居节点i,但有可靠性评估值在最小阀值rmin与最大阀值rmax之间的邻居节点,即rmin彡彡rmax,则选择可靠性评估值最高的邻居节点单播数据包;(4)如果没有可靠性评估值k达到最小阀值rmin的邻居节点i,即rd,i< rfflin,就将数据包广播到所有邻居节点,以寻找可靠的路由;源节点发送数据包PKT后,立即启动目的节点为d,数据包标识符为c的定时器Td, c ; 如果定时器到时后,还没有收到相应的确认包,则认为该数据包没有传输成功,该定时器Td, 。自动结束;节点的数据包标识符c和发送该数据包的下一跳节点标识符,若该数据包是广播则在定时器Td,。结束后删除;若是单播则在收到第一个正确的确认包后删除,否则在定时器Td,。结束后删除;步骤二 中间节点转发数据包节点从一个邻居节点i收到一个数据包PKT,首先查看数据包的目的节点是否为自己, 若是,就按目的节点接收数据包处理;若不是,就查看源节点是否为发送该数据包的邻居节点i ;具体过程如下(1)如果该邻居节点i是源节点,就在本地存储的可靠性评估表中查看是否有该邻居节点i总的可靠性评估值记录A;如果有记录,就将该邻居节点i的总可靠性评估值^与可靠性评估最小阀值rmin相比较,如果作为源节点的该邻居节点的可靠性低于最小阀值,即I^iCrmin,则拒绝为其转发,丢弃该数据包,同时启动定时器Ti,只有经过时间Ti后,才转发该邻居节点i为源节点的数据包,以此作为对不可靠节点的惩罚,抑制攻击和自私行为,促进节点合作;惩罚时间结束后, 将该邻居节点i的可靠性评估记录删除,恢复为初始状态,但是该节点的惩罚次数增加一次;随着惩罚次数的增加,延长惩罚时间为上次的两倍;(2)如果作为源节点的该邻居节点的可靠性不低于最小阀值,即A ^ rfflin ;节点可靠性评估表中没有该邻居节点i总的可靠性评估值记录,表明以前没有发送数据包给该邻居节点,没有对该邻居节点的可靠性评估;该邻居节点i不是源节点,就查看节点中是否存储有相同的数据包标识符c,即在时间Td,。内是否收到包含相同标识符c的数据包并通过验证, 若有则直接丢弃该重复的数据包,因为已经收到过相同的数据包并通过验证;若没有就用源节点的公钥Ks验证该数据包的完整性;为了验证数据包H(T(S,d,c, e, Μ, f),节点用源节点的公钥Ks验证f是否为源节点对哈希值h(s| |d| c e IΜ)的数字签名;如果验证成功,表示该数据包不是错误的、 伪造的,也没有被篡改,节点就依据可靠性评估值,采用与源节点相同的策略选择邻居节点单播、广播该数据包;因为攻击者在不知道源节点私钥K' 3的情况下,不可能伪造 h(s |d| c e I Μ)/f对,也不能篡改数据包H(T (s,d,c, e, Μ, f)中的任何一部分,否则就不能通过验证;如果验证没有通过,该数据包就被丢弃;同源节点一样,中间节点转发数据包PKT后,立即启动目的节点为d,数据包标识符为c 的定时器Td,。;如果定时器到时后,还没有收到相应的确认包,则认为该数据包没有传输成功,该定时器Td,。自动结束;节点存储数据包的标识符c和发送该数据包的上一跳节点、下一跳节点标识符,若是广播则在定时器Td,。结束后删除,若是单播则在收到第一个正确的确认包后删除,否则在定时器Td,。结束后删除; 步骤三目的节点接收数据包节点从一个邻居节点i收到一个数据包I3KT,首先查看该数据包的目的节点是否为自己,若不是就按中间节点转发数据包处理;若是目的节点,则查看节点中是否存储有相同的数据包标识符c,即在时间Td,。内是否收到包含相同标识符c的数据包并通过验证;如果有,即在时间Td,。内收到过相同标识并通过验证的数据包,则查看传输该数据包的上一跳节点是否相同;若相同就丢弃该数据包,因为已经从该邻居节点收到过相同的数据包;若不同就用源节点的公钥Ks验证该数据包的完整性,因为该数据包来自于不同的邻居节占. 如果没有,即在时间Td,。内没有收到过相同标识并通过验证的数据包,就用源节点的公 ■ Ks验证该数据包的完整性;如果验证没有通过,该数据包就被丢弃;如果验证通过,表明该数据包不是错误的、伪造的,也没有被篡改,则目的节点用自己的私钥K' d解密e得到对称密钥即随机数r,即 =ΕκΜ),用对称密钥r解密M得到有效数据;最后,目的节点发送确认包;目的节点发送确认包后,立即启动目的节点为d,数据包PKT标识符为C的定时器T^ ; 定时器到时后自动结束,目的节点存储数据包的标识符c和发送该数据包的上一跳节点标识符,并在定时器Td,。结束后删除;步骤四传递确认包和更新可靠性1).目的节点目的节点接收数据包PKT并验证通过后,计算对称密钥即随机数r的哈希值h(r)作为确认信息b,组成确认包ACKjP b = h(r),按相反的路径单播给发送该数据包的上一跳节占.2).中间节点中间节点从邻居节点i接收到确认包ACK,得到确认信息b后,计算哈希值h (b),并查找存储的数据包标识符c中是否有相同的值,如果没有找到,表明相应的定时器Td,。已经超时,该确认信息是错误的、伪造的,直接丢弃该确认包;如果有相同的数据包标识符c,即c =h(b),表明该确认包是正确的目的节点发出,且相应的定时器Td,。还没有超时;再看原数据包是单播还是广播;具体过程如下(1)如果原数据包是单播,且邻居节点i是其发送的下一跳节点,则按相反的路径将确认包单播给转发原数据包的上一跳节点,并增加该邻居节点的可靠性评估值rad, i和rfd, i ; 如果邻居节点i不是其发送的下一跳节点,则确认包被丢弃,该邻居节点的可靠性评估值不改变;(2)如果原数据包是广播,这时要看是否为第一次接收到该数据包的确认包;如果是第一次收到即最先到达,则按相反的路径将确认包单播给转发原数据包的上一跳节点,并增加该邻居节点的可靠性评估值Zda和I^i ;如果不是第一次收到,则该确认包被丢弃,但是增加该邻居节点的可靠性评估值rad,i ;如果节点转发数据包后直到定时器Td,。结束时,还没有收到任何正确的确认包,邻居节点i的可靠性评估值的更新也依赖于该数据包PKT是被广播还是单播;若是单播,则该邻居节点i的可靠性评估值rad, i和rfd, i都减小;若是广播,则该邻居节点i的可靠性评估值不改变;增加或减小可靠性评估值rad, i和rfd, i时,若有该邻居节点的可靠性评估值记录,则直接增加或减小;若没有记录,则计算并在可靠性评估表中添加该邻居节点的可靠性评估值;3).源节点源节点接收到确认包后的处理方法与中间节点相同,只是不再继续转发该确认包;源节点发送数据包后定时器Td,。结束时还没有收到任何正确的确认包,处理方法与中间节点也相同。
2.根据权利要求1所述的一种基于可靠性的移动Ad Hoc网络自适应安全路由方法,其特征在于步骤一、二中所述的节点的可靠性值评估包含已下三个内容1).可靠性评估表可靠性是RASR中最重要的性能,每个节点存储一张可靠性评估表,用于存储节点的邻居节点i到达目的节点d的可靠性评估值!·“,表示邻居节点i到达目的节点d的可靠性,并设定可靠性评估最大阀值rmax为0. 7和最小阀值rmin为0. 3,不同的节点可以设置不同的阀值&为节点的邻居节点i到达所有目的节点的可靠性评估值的算术平均,即r, =、+... +、,表示邻居节点i总的可靠性,m为节点个数;节点可靠性评估值如下所示 m节点i 目的节点1η1rUm^m,η1,1+- + ^1 rI = mr\,n + …+ rm,n rn = m2).计算可靠性评估值可靠性评估值Aa是I^i和这两个可靠性评估值的算术平均,即、=‘ ,1 +广,其中a表示节点转发目的节点为d的数据包后收到的全部确认包,f表示节点转发目的节点为d的数据包后收到的第一个确认包;aa,.可靠性评估值Zw= a /Ra ,其中CIaU表示成功的次数,『“表示失败的次数;OC dj + P dj同理,可靠性评估值=严 ,其中CIfdii表示成功的次数,i^d.i表示失败的次rvJ j .·丄 Hj J .·初始时,Ciad^ = O和β3“ = 0;如果成功,可靠性评估值增加,用I^i丨表示,更新 aad,i- δ aad,i+l和β:— δ β ;如果失败,可靠性评估值降低,用Ai I表示,更新 — Sβ、^ — δ 3^+1;其中参数0< δ < 1,用于控制适应网络的快慢,δ值越低,则适应网络越快。rfd,i的更新相同; 3).三重可靠性评估首先,用可靠性评估值rf“跟踪第一个收到的确认包,用于优先选择往返时间较短的路径,因为该路径消耗较少;其次,用可靠性评估值rad, i来跟踪节点广播数据包后收到的所有确认包,以获得更多的路由信息,在搜索路由或存在攻击时实现快速收敛;最后,综合评估邻居节点到所有目的节点的可靠性,用于惩罚攻击者和自私节点等可靠性低的邻居节点,以抑制攻击和自私行为,促进节点合作。
3.根据权利要求1所述的一种基于可靠性的移动Ad Hoc网络自适应安全路由方法,其特征在于在步骤三接收数据包、步骤四传递确认包时,为了防止节点广播数据包进行拒绝服务攻击,RASR采用缓冲队列和速率限制机制节点给邻居节点i分配一个接收包缓冲队列I,每个缓冲队列有固定的长度,设为5 ;节点以速率Vi处理转发该邻居节点的接收数据包,该速率在开始时被设定,当收到相应的确认包,该速率Vi乘2,否则乘0. 5,速率限制范围为[vmin = 0. 1/s, Vfflax = 100/s];当邻居节点i的缓冲队列达到最大时,后续接收该邻居节点的数据包被丢弃;否则就加入缓冲队列中。
全文摘要
一种基于可靠性的移动Ad Hoc网络自适应安全路由方法,它有四大步骤步骤一源节点发送数据包;步骤二中间节点转发数据包;步骤三目的节点接收数据包;步骤四传递确认包和更新可靠性。本发明将路由发现和数据传输融合为一个过程,每个节点通过应答反馈机制评估其邻居节点到达目的节点的可靠性,并依据可靠性评估值独立地做出路由决定,避开不可靠节点在多条备选路径中选择可靠路径,在安全路由发现的同时也解决了安全可靠的数据传输和对称密钥的传递,并改善网络的安全性和适应性。它在没有引入较大开销的基础上,比现有的移动Ad Hoc网络路由方法更能抵抗攻击,在网络规模变化,节点快速移动,甚至存在较大范围的攻击和节点出错时,仍然具有很好的恢复能力,适合节点快速移动的大规模网络。它在移动Ad Hoc网络安全技术领域里具有较好的实用价值和广阔的应用前景。
文档编号H04W12/06GK102158864SQ20111009565
公开日2011年8月17日 申请日期2011年4月15日 优先权日2011年4月15日
发明者修春娣, 刘建伟, 刘靖, 尚涛, 毛剑, 郑志明, 陈庆余, 陈建华 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1