《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 移动自组网络路由协议的安全性研究

移动自组网络路由协议的安全性研究

2008-04-09
作者:张险峰,蒋 凡

  摘 要: 分析了针对移动自组网" title="移动自组网">移动自组网络(MANET)路由协议" title="路由协议">路由协议的攻击方法,并基于优化链路状态路由协议(OLSR),提出了一种移动自组网络路由协议的安全解决方案。实验表明,增加安全模块后对协议性能的影响在可接受的范围之内。
  关键词: 移动Ad Hoc网络 路由协议 网络安全


1 Ad Hoc网络的路由特点及安全问题

  移动自组网络是一种新型的无线移动网络。每个移动节点" title="移动节点">移动节点受其无线发射距离的限制,必须借助其他移动节点的转发才能将数据包传送到目的移动节点。因此,每个移动节点既充当主机又充当路由器。由于移动节点之间的连接不断动态改变,所以,传统固定网络上的路由协议无法满足其特殊要求,需要专门的路由协议来实现移动自组网中移动节点间的信息交换。
  目前,移动自组网的路由协议主要分为两类:表驱动路由协议(如OLSR协议)和按需路由协议(如DSR和AODV协议)。这两类路由协议都没有考虑到安全性问题,而事实上由于Ad Hoc网络所具有的特性,其面临的安全威胁远大于固定网络,主要表现在:
  (1)攻击者很容易通过无线链路窃听、假冒、篡改和转发在其上传输的信息。
  (2)由于移动结点有可能漫游到敌对环境中(例如敌战区),所以恶意攻击不仅来自网络的外部,而且也有可能来自内部被攻破的移动节点。
  (3)由于MANET拓扑结构" title="拓扑结构">拓扑结构和移动节点数目不断变化,所以,移动节点之间的信任关系也经常改变,特别是检测出被攻破移动节点以后,其他移动节点对它们的信任也随之消失。
2 Ad Hoc路由协议的攻击方式
  现有的用于Ad Hoc网络的路由协议面临着几种不同方式的攻击。通常在固定网络上存在的攻击方法同样存在于移动自组网络中,而由于Ad Hoc在安全方面的脆弱性,这些攻击甚至变得更加容易和有效。
  对网络安全的攻击通常分为被动和主动两种,而针对路由协议的攻击主要为主动攻击,这些攻击可以划为四类:伪装、篡改或重放消息、伪造和拒绝服务(DoS)[1]。下面分别讨论以上四种方法对Ad Hoc路由协议的攻击。
2.1 伪装
  恶意节点可以修改自己发出的消息包中的MAC或IP地址,伪装成别的节点,从而影响和破坏网络中其他节点的路由生成与维护。下面就OLSR协议举例说明伪装是如何形成路由环路从而破坏Ad Hoc路由的,AODV协议与DSR协议也存在着类似的情况。
  伪装攻击方式示例图如图1所示。图中目的节点为X,带箭头的直线指向该节点通往X的路由的下一跳节点。


  M是恶意节点,由于OLSR是链路状态协议,M知道当前网络的拓扑结构以及各节点的路由情况,它可以采取如下的方法使ABCD四个节点形成一个环路,从而都不能到达目标节点X。在图1(a)中,M首先将自己的IP地址改成A的,并远离A而向D靠近,并且在发给D的拓扑消息(tc_message)中声称目标节点X就是自己的下一跳,因此D就将自己通往X的下一跳路由由C改为A,如图1(b)。然后M将自己的地址改为D,以同样的方式欺骗C,将自己的下一跳改为D,从而形成了如图1(c)显示的环路,使ABCD到X的路由中断。
2.2 篡改或重放消息
  恶意节点可以通过修改路由协议中的消息包内容来错误定向自组网中某节点通往目标节点的路由。节点M恶意应答示例图如图2所示。在图2(a)中,恶意节点M收到一条B转发的A要求到D路由的RREQ消息,然后它向B发送一条RREP消息,此消息包含了比D发出的RREP消息大得多的序列号。当B同样接收到D发回的真正的RREP消息时,由于其序列号较小而将其丢弃,从而使B将自己通往D的下一跳改为M如图2(b)所示。通常恶意节点可以通过修改路由消息的序列号或者路由消息的跳数来达到此目的。


2.3 伪造
  恶意节点可以通过伪造虚假的路由消息来攻击Ad Hoc网络中的各节点,使之错误路由或造成DoS。例如在一些按需路由协议(如AODV、DSR中),当网络拓扑结构发生变化时,节点通过发送一种路由错误消息来重新建造路由。如果路由协议属于链路状态协议(如OLSR),恶意节点可以伪造虚假的tc_message,使节点得到错误的网络拓扑结构,从而计算出错误的路由。
2.4 拒绝服务
  上节已经提到通过伪造路由错误消息来实现拒绝服务攻击,下面说明在源路径选路的路由协议中如何进行DoS攻击。这种攻击通常通过修改消息包头部的源路由来实现。拒绝服务攻击方式示例图如图3所示。


  源节点A到达目的节点的路由为{A,B,M,C,D,E}。假设恶意节点M要实现DoS攻击,它只需修改A发出的到达它的数据包头部的源路由信息(比如删除D节点),再转发给C。而C由于在包头部的源路由信息中找不到下一跳D,就向上游发出一个路由错误消息,这条消息首先被M接收到,它只需将其丢弃,这样A收不到该消息就不会重新寻找路由,从而实现了拒绝服务攻击。
3 安全解决方案
  Ad Hoc网络的安全需要主要集中在路由消息的保密性、完整性(即不可被篡改)、网内节点的鉴别(保证恶意节点不能假冒合法节点)以及网络路由的可用性,这主要包括保证路由的正确性和路由协议的运行性能,防止DoS攻击。
  一个好的安全方案可以使Ad Hoc路由协议避免前面所列举的各种攻击,提供可靠的路由安全服务,阻止任何恶意节点对网络中各节点路由的生成与维护。具体需要做到以下几点:
  (1)路由签名不会被假冒;
  (2)被伪造过的路由消息不被协议接受;
  (3)路由消息在传输过程中不能被非法修改;
  (4)防止被恶意攻击造成路由环路;
  (5)抵御拒绝服务攻击;
  (6)未被认证的节点被排除在路由发现和计算之外。
  已有文献对安全路由算法进行了研究,并给出关于满足以上几点安全方案的建议[2~5]。本文在OLSR协议的基础上,设计增加了相应的安全机制,并通过仿真试验进行性能测试。
3.1 OLSR协议简介
  优化链路状态路由协议OLSR(Optimized Link State Routing)是一个表驱动的主动Ad Hoc路由协议,已经被IETF接受为标准(RFC 3626)。OLSR采用UDP协议进行通信,采用统一的包格式,具有可扩展性。OLSR协议并未采用安全机制,在RFC3626中提到了本协议可能面临的安全问题,主要包括以下三个方面:
  (1)机密性。作为一个主动的路由协议,OLSR周期性地传播拓扑信息,但由于Ad Hoc使用了不安全的无线链路,其控制消息很容易被监听,从而暴露了网络的拓扑结构。而在某些情况下,这种拓扑信息是需要保密的,因此需要将控制消息加密,只有经过授权的节点才能读取和解析。
  (2)完整性。在OLSR中,所有节点通过转发hello消息(hello_message)和tc_message为网络提供拓扑信息。但是当某节点发生故障或恶意节点对网络进行攻击时,会提供错误的消息,从而破坏完整性,影响网络拓扑结构的生成,因此需要对消息进行安全认证。为解决此问题,可以利用数字签名等信息安全技术来保证路由消息的完整性。
  (3)节点惟一性。OLSR并没有对节点地址做出任何假定,这就意味着可能会存在多个节点具有相同的IP地址或一个节点具有多个IP地址的情况,这给系统的身份认证带来很大麻烦。
3.2 安全的OLSR
  为解决上述安全问题,必须在Ad Hoc网络中引入路由安全机制,包括使用公开密钥密码学的方法(如RSA算法)提供签名和认证保证其完整性, 以及采用DES等加密算法对消息内容加密传输以保证机密性。系统需要一个认证机构,该机构可以是一个被所有节点信任的认证中心(CA),也可以利用门槛加密算法让网络中的n个节点联合认证[6],将这个认证服务机构记为server-T。server-T将自己的公钥" title="公钥">公钥eT分发给所有节点,而每个节点K必须向server-T申请一对认证密钥,包括公钥eK和私钥dK以及系统各成员共享的数据加密密钥sK,并且节点必须存储着其他各节点的公钥。下面详细叙述安全路由协议的工作过程。
  (1)节点申请加入网络
  任何节点在加入网络之前必须向server-T提出注册申请,server-T收到申请后,检查其IP,如果与网络中已有的IP冲突则拒绝申请(这解决了节点身份惟一性的问题)。如果申请成功,则erver-T返回给申请者一对认证密钥(dK,eK)供其使用,并记录下将该节点的IP和对应的公钥eT,同时将系统公用的DES加密密钥sK提供给申请者。
  (2)节点生成协议消息
  节点生成OLSR协议安全报文,操作如下:
  ①节点使用DES算法,用密钥sK加密消息(hello_message或tc_message),并在报文中只加入加密后的消息,从而保证了消息的机密性;
  ②使用RSA算法用自己的私钥dK加密本节点IP,得到待认证的签名Originator Address Certification(OAC)=(IP)dK mod n;
  ③发送者必须填写Sender Address Certification(SAC)域,这里SAC=OAC。
  (3)节点接收和转发报文
  节点在收到一个协议报文后,进行如下操作:
  ①检查报文发送者的身份,根据IP首部提供的发送者IPS,查找出本地存放的该IP对应的公钥eS,通过计算IPS=(SAC)eS mod n验证发送者的身份,若相等则进行下一步,否则丢弃该报文。
  ②针对报文中的每一条消息,根据OAC验证其产生者的真伪,先找到Originator Address对应的公钥eOA,再计算 Originator Address=(OAC)eOA mod n,如相等则转至③,不等则丢弃该消息。
  ③在验证完消息的来源后,使用共享的DES密钥sK解密被加密的消息后,再作出相应的处理。
  ④节点在处理完报文后,如果需要转发,首先计算自己的身份签名,并取代原来的SAC域,报文的其余部分不变(除了根据OLSR协议本身的要求做出修改),将新的报文转发。
  (4)系统密钥的维护与更新
  ①关于系统共享的DES密钥
  本密钥sK由系统安全服务机构server-T产生、维护和更新。系统中各节点都同步保存着一份副本,用于传输消息时的加密,以防止消息被监听解析后,暴露网络的拓扑结构。server-T定期或根据需要(如密钥泄漏)更新sK,并用自己的RSA私钥dT对sK签名后(CsK=sKdT mod n),再将(sK,CsK)发送给各节点,节点收到后用server-T的公钥eT验证签名后更新自己保存的sK。
  ②关于节点认证密钥
  每个节点K在获准加入Ad Hoc网络时,都从server-T处得到一对认证密钥(dK,eK),同时server-T也记下该节点的(IP,eK)对,并发送给其他节点。所有节点都在本地保存着一张(IP,eK)表,当收到属于某个节点的消息时,在该表中找出对应的eK进行验证。
  server-T定期将自己的(IP,eK)表广播并附上自己的签名,各个节点在收到该表并验证签名后更新本地的(IP,eK)表。
3.3 协议性能影响分析
  在OLSR协议中加入安全模块后,会对性能造成一定影响,主要因为对报文加解密需要耗费时间。因此在NS-2中进行了该协议的仿真试验,主要测试增加了安全机制后给路由协议带来的性能影响。
  在实验中,分别验证Secure OLSR、OLSR、DSR路由协议的包传输率性能。所有节点的初始位置都是随机的,然后生成33个UDP连接。每个连接都申请了25kbps的带宽资源,并且在一定的时刻开始使用建成的连接发送数据,发送速率为20kbps。所有节点随机移动。丢包率比较如图4所示。


  实验表明Secure OLSR协议比OLSR协议性能下降约10%,与DSR大致相当,基本符合移动Ad hoc路由协议的性能要求。
  本文在总结分析了各种对移动自组网络路由协议的攻击方式,针对一种典型的表驱动型路由协议——OLSR协议,提出了协议安全解决方案,提高了移动自组网路由的安全性。并通过实验证明其满足网络的性能要求。
参考文献
1 Stallings W.Cryptography and network security:Principles and practice.Prentice Hall,1998
2 Sanzgiri K,Dahilly B,Leviney B N et al.A secure routing protocol for Ad Hoc networks.In:Proceedings of the 10th IEEE International conference on network protocols,2002
3 Hu Y C,Perrig A,Johnson D B.Ariadne:A secure on demand routing protocol for Ad Hoc networks.In:MobiCom′02, Atlanta,GA,2002
4 Zapata M G,Asokan N.Securing Ad Hoc Routing Protocols. In:1st ACM WiSe,Atlanta,GA,2002
5 Papadimitratos P,Haas Z J.Secure link state routing for mobile Ad Hoc networks.In:2003 symposium on applications and the Internet workshops(SAINT 2003),Orlando,FL,USA, 2003
6 Zhou L,Haas Z J.Securing Ad Hoc networks.IEEE Network Magazine,1999;13(6)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。