首页 > 范文大全 > 正文

浅谈移动Ad Hoc网络按需路由协议中的篡改攻击问题

开篇:润墨网以专业的文秘视角,为您筛选了一篇浅谈移动Ad Hoc网络按需路由协议中的篡改攻击问题范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:由于移动ad hoc网络具有动态变化的特性以及自组织和多跳性的特点,更容易遭受多种恶意攻击。其中篡改攻击就是最严重的一种攻击。本文详细剖析了篡改攻击问题,针对此问题提出了一种简洁的解决方案。此方案利用路由发现过程中中间结点计算的MAC值以及邻居维护机制提供的认证信息一起能够很好的抵抗篡改攻击,提高了路由协议的安全性。

Abstract: Mobile Ad Hoc Networks which has the dynamic and self-organization and multi-jumping feature is more vulnerable to a variety of malicious attacks. Tampering attacks is the most serious attack. In this paper, it analyzed in detail the tampering attacks, and proposed a strategy to solve it. The chained k-MAC values computed by all intermediate nodes during the route discovery, together with the authenticated neighbor information provided by the neighbor maintenance scheme, enable it to detect Tampering attacks and varied attacks derived from it, which can enhance the safety of routing protocol.

关键词:移动Ad Hoc网络;恶意攻击;篡改攻击

Key words: Mobile Ad Hoc Networks;malicious attacks;tampering attacks

中图分类号:TP393文献标识码:A 文章编号:1006-4311(2011)13-0158-02

0 引言

移动Ad Hoc网络(MANET,Mobile Ad Hoc Networks)是多跳的临时性自治系统[1]。其移动终端不仅具有主机的功能,还具有路由器的功能。Ad Hoc网络中所有节点地位平等,无需设置任何中心基站或固定基础网络设施。由于这些特点,移动Ad Hoc网络广泛用于紧急环境如军事战场,以及当洪水或地震后的紧急灾难援救等等,但是这些特点也容易使Ad Hoc网络遭受多种攻击。现有路由协议并没有考虑到路由安全问题。移动Ad Hoc网络主要容易遭受两类路由攻击[2]:①资源消耗攻击;②破坏路由攻击包含删除、篡改和伪造等方式,以阻止路由建立、破坏路由协议性能、中断路由、更改包传送方向达到破坏网络通信的目的。在这当中,对威胁Ad Hoc网络路由协议尤为严重的是篡改攻击。其实,篡改攻击对很多路由协议都有着非常大的危险。本文针对按需路由协议提出检测和抵抗篡改攻击的解决方案。

1 篡改报文攻击[3]

恶意节点对路由控制消息进行非法篡改,使得数据包的完整性遭到破坏,迫使数据包到达不了目的节点或者让目的节点得到错误的路由信息,两节点间无法正常通信。

例如,在图1所示的网络中,恶意节点M不断的向节点B广播它比节点C有更短的到节点D的路由,就可以截断往D的通信。

篡改报文攻击主要有以下几种类型:

1.1 更改路由序列号的远程改道攻击 在移动 Ad hoc 网络中,很多路由协议确定到达目标节点最好的路径是由控制信息的某个特定的域决定的,此域的值越小,路由越好。因此恶意节点只要声明一个更小的值就可以更改路由。

在图 1 中,恶意节点M要将自己插入到网络中进行恶意操作。当节点A要跟节点D通信时,它向所有的邻居节点广播一个路由请求报文,节点B收到后转发,节点C回应节点A声明它有到节点D的直接路由,在该回复报文中,有一个域表示C到D的距离。同样,恶意节点M也可以回复节点B,声明它也有到节点D的直接路由,并且距离比C到D近。这样,B会认为M到D是最好的路由,从而删除由C往D的路由。

1.2 跳数篡改 特别是在按需路由协议中,恶意节点对需要转发的数据包中的跳数进行篡改,使得该数据包中的跳数值与实际传输的跳数不符,还有恶意节点将自己插入到两个通信节点之间改变原来的路由路径,这就是典型的man-in-the-middle攻击,这样恶意节点可以对转发的数据包做任何恶意处理。

2 针对按需路由协议中的攻击问题的解决方案

本文结合文献[4]思想利用公钥密码体制建立一对节点的共享密钥,并用哈希(HASH)函数[5-7]认证节点之间的路由交换信息,随后路由发现过程中,中间结点计算的MAC值以及邻居维护机制提供的认证信息以及加密/解密技术,一方面能够有起到抵御外部攻击的作用,另一方面,在某种程度上海能够防御内部的攻击。我们采用的是具有特别性能的公钥密码系统,其独特性能表现在:只有是在对网络信息进行初始化的时候才使用认证中心CA。之后,每一对节点通过非交互的方式取得以及更新准确的共享密钥。

2.1 假设阶段 假设Ad Hoc 网络中的每个节点Z都拥有一对私钥/公钥(xz,yz),并且公钥yz是为其他节点所知的(包括恶意的节点的公钥)。并假设Ad Hoc网络中的一对节点拥有共享密钥。

假设节点一旦进入网络,它的MAC地址就不可能有变化,在节点未进入网络的时候,每一个节点早已取得证书(由CA签名),诸如,节点Z的身份证书基本格式是:

Cert Z={,yz,VTimeZ}xz

假设Ad Hoc 网络合法节点已经经过安全的方法取得一些有关的资料。诸如:此节点的身份证书和别的合法节点的公钥、证书版本号等。

依据此能够绑定MAC和ID(可能是节点的IP地址)。节点A会把证书赠给第一次见到的节点,假如通过了验证证书,则节点就能够同相邻节点通信,反之,就会抛弃此节点。

2.2 邻节点列表维护机制 在节点A第一次接到节点B的信息的时候,首先要比较MAC地址(包含在证书里)以及源MAC地址(在数据包头部)。假如它们相匹配,证书再一步的验证CA的公钥。如果零次的验证都很成功,那么在当前邻节点列表中就要纳入ID与MAC地址。由于处在网络里的节点或许是移动的状态,因此,一个活跃比特始终用来显示这个节点在无限范围之内与否。假如端节点在要求的时间内仍未接收到节点的信息,则活跃比特就失效。在认证证书时,为了能够节约不必要的重复计算,认证的应保存在邻节点列表中。由于我们假设节点一旦进入网络,其MAC地址就不会有变化,因此能够确保ID的真实性。

节点每次接到邻节点的数据包后,首先核查这个节点是否已经存在它的邻节点列表中,是否是活跃的。如果存在,它进一步核实这个数据包的源MAC地址是否与已存在当前邻居列表中的节点配对的MAC地址是否相配。只有这些数据分组成功通过这两项验证,才能传递到上层进一步处理。[8]

2.3 路由发现过程 路由发现过程(例如图2所示)包括路由请求,请求转发以及在目的节点处对路由请求的验证,还有相对应的路由应答,路由应答转发,和在源节点对路由应答的验证。

具体过程如下:

2.3.1 路由请求过程 源节点欲同目的节点进行通信,然而未到目的节点的路由时,源节点S发起路由请求同时广播:

RREQ = { RREQ,S,D,QNum, TOP_CNT,{Node List},QMACs,d}

其中S为源节点,D为目的节点。QNum是路由请求ID,是随机产生的数。TOP_CNT 为跳数,开始时TOP_CNT =0,{Node List={NULL}(路由请求没有经过任何中间节点,因此没有存储任何信息)。

QMACs,d = HASH(CORE,TOP_CNT,{Node List},Ks,d)被中间节点用来进一步处理的k-MAC,也被目的节点用来验证RREQ的完整性以及在{Node List}记录的路径的有效性。CORE = HASH(RREQ,S,D,QNum, Ks,d)是源节点的证书,用来保证RREQ的确来自源节点,并且保证固定域在传播过程中是完整的。

2.3.2 路由请求转发 当中间节点Ni首次收到RREQ分组时,它将处理RREQ并进一步广播,并将TOP_CNT增加1,然后附加上一节点Ni-1的ID加入到{Node List},并且更新QMAC为:

QMACi,d=HASH(QMACi-1,d,TOP_CNT,{Node List},Ki,d)

3 安全性分析

我们使用上述方法利用中间节点计算的k-MAC值和前面所讲的邻节点维护机制来分析篡改攻击(如图3所示)。

图3中S为源节点,欲与目的节点D建立通信,A1、A2是两个恶意节点, W1、W2是参加虫洞攻击的两个节点,V1、V2是W1、W2伪造的两个节点 ,I是A2伪造的节点 ,R是A1移走的节点。

3.1 篡改序列数攻击 在SAOR协议,路由请求标志符QNum以及路由应答标志符RNum都是随机产生的数,这些标志符都是单调递增的,他们主要用于避免过时的缓冲路由对系统带来的负面影响。其中路由请求标志符QNum用在路由请求过程中保证反向路由的有效性,而路由应答标志符RNum则用来维护前向路由的有效性。由于这些标志符是单调递增的,攻击者很难预测将用到的下一个QNum或者RNum,由此可以免受对序列数的攻击(攻击者可以恶意的把序列数增加到最大然后清0)。

3.2 篡改{Node List}列中的信息 在易变域中,当RREP广播给源节点S时,RNum ,RMAC, TOP_CNT,{Node List}都会被中间节点修改。在SAOR协议中,RMAC, TOP_CNT以及{Node List}的真实性是通过把TOP_CNT和{Node List}融入到RMAC计算中来保证的。这样的话除非它实际转发RREP,否则任何节点都不可能通过上游节点加入到{Node List}中;并且节点也不会恶意的从{Node List}中移走。例如,假设攻击者A1试图丛{Node List}移走节点R,并且减少一个跳数TOP_CNT值。当源节点收到路由应答RREP,根据{Node List}记录的节点重新计算RMAC,由于在此过程中省略了由R,RMACr,s更加精确的计算,又因为Hash运算是单向函数,因而A1不能颠倒由节点R计算的Hash值RMACr,s,因此S计算的RMAC不可能和收到的RMAC值匹配。另外一种可能攻击是A2把不存在的节点加入到{Node List},并且将TOP_CNT+1。为了达到此目的,节点A2必须执行多次Hash运算,并且把Ki,s作为输入,因为共享密钥Ki,s仅为源节点S和节点I 所知,所以此操作并不简单,因此并不是明智的的想法。鉴于同样的原因,节点A2也不可能假冒另外的节点欺骗,并表明在{Node List}中。

3.3 篡改跳数攻击 攻击者也可能在RREP过程,仅仅获得或者返回RREP并不做任何处理,只希望源节点获得的跳数TOP_CNT比实际长度小一些。在SAOR协议中,下游邻居节点的ID能通过其上游邻居节点加入到{Node List}中。因而,获得或者返回RREP等效于把另一节点加入到{Node List}中,就如前面所述,此类攻击也不会得逞。

4 结论

在移动Ad Hoc网络按需路由协议中,继篡改攻击问题被深入的研究之后,我们提出了综合有效的处理方案。本论文结合文献[4]的思想利用绑定机制,同时使用中间结点计算的MAC值和认证信息(邻居维护机制所提供)以及加密/解密技术一起可以起到有效的防御,一方面能够抵制外部的攻击,另一方面,也在某种程度上防御了内部的攻击,进而确保在数据间进行安全的通信。同时,这种方法不会加大过多的计算开销,这相对于移动Ad Hoc网络的特点来说,也是比较适合的。

参考文献:

[1]Perking C. Ad hoc Networking [M]. New York, USA: Addison-Wesley, 2001:5-20.

[2]冯坤,断立,察豪.移动Ad Hoc网络安全分析综述[J].微计算机信息,2006,22(2-3):50-53.

[3]付芳,杨维,张思东. 移动Ad Hoc网络路由协议的安全性分析与对策[J].中国安全科学学报,2005,15(12):75-78.

[4]Zhenjiang Li and J.J.Garcia Luna Aceves.Enhancing the Security of On-demand Routing in Ad Hoc Networks. V.R. Sirotiuk and E. Chavez (Eds.): ADHOC-NOW 2005, LNCS 3738, pp. 164-177, 2005? Springer-Verlag Berlin Heidelberg 2005.

[5]胡向东,魏琴芳.应用密码学教程[M].北京: 电子工业出版社.2005:122-123.

[6]李哲,方勇,陈淑敏,刘杰.数据库加密技术中散列函数的应用[J].计算机工程,2003,17(29):68-70.

[7]刘广钟,姜秀杜,曹天杰.计算机网络[M].江苏徐州:中国矿业大学出版社,2003:77-79.

[8]Zhenjiang Li and J.J.Garcia-Luna-Aceves.Enhancing the Security of On-demand routing in Ad Hoc Networks [M]. Berlin: Springer-Verlag 2005:164-177.