Ad hoc网络中基于DSR的安全路由协议研究

2010-08-23 04:47凤俊翔
制造业自动化 2010年12期
关键词:路由密钥分组

凤俊翔

FENG Jun-xiang

(江苏科技大学 电子信息学院,镇江 212003)

0 引言

无线移动自组网络(Mobile Ad Hoc Network,MANET)是一种特殊的无线移动通信网络,它由一组带有无线通信收发装置的移动终端节点组成的一个多跳临时无中心的网络,可以在任何时刻任何地点快速构建的,并且不需要现有信息基础网络设施的支持,网络中的每个终端可以自由移动且地位相等[1]。网络中的节点同时担当着主机和路由的功能,作为主机,终端需要运行面向用户的应用程序,作为路由器,终端需要运行相应的路由协议。这种网络所具有的独立组网、无中心、自组织及多跳路由特点较传统的网络有了更大的灵活性和自由度,使其能广泛的应用于紧急情况,偏远野外,临时会议等各种对灵活性要求高的场合。但它在带来这些优点的同时,也存在不可避免的问题,一方面是由于移动终端本身的局限性,这种局限性主要体现在节点的能源有限,内存较小,CPU的处理能力较低等,另一方面是网络的局限性,由于Ad hoc网络采用的是无线信道,有限电源,分布式控制等技术,使其更容易受到被动窃听,拒绝服务,剥夺“睡眠”等网络攻击,这些问题的存在严重影响了整个网络运行的质量和效率。针对这些问题,目前ad hoc网络研究的重点主要在网络的路由,管理,节能及安全等方面。

1 安全研究及相关工作

安全问题是ad hoc网络研究中的一个重要课题,在对安全敏感的应用中尤其如此。其安全性目标和传统网络相一致[1]:

1)可用性:即使当网络受到攻击,节点仍然能够在需要的时候提供有效服务。

2)机密性:能保证特定的信息不会泄露给未经授权的用户,比如在军事战场上。

3)完整性:就是保证信息在传输过程中不会被中断,并且保证节点接收的信息应与发送的信息完全一样。

4)安全认证:使每个节点能够确认与其通信节点的身份,同时能够在没有全局的认证机构的情况下实施对用户的鉴别。

5)抗抵赖性:这个可以确保一个节点不能否认是他发出的信息。

对移动自组网的攻击根据攻击特性可分为主动攻击、自私性攻击和被动攻击[2]。

被动攻击是指攻击节点只是消极窃听,窃听的信息主要包括“通信的内容”和“通信的路由”信息,单纯的被动攻击只能获取信息,并不造成网络的瘫痪。主动攻击则指攻击节点采用各种方式主动入侵网络各个环节,降低网络性能和可用性;主动攻击可以分为“外部攻击”和“内部攻击”,外部攻击指实施攻击的节点设备没有通过网络验证,内部攻击是指攻击设备已经在网络中获得合法身份。而自私性攻击是指网络中部分节点可能由于资源有限和计算能量等原因而不愿承担为其他节点的转发任务。

对付网络外部的攻击者,可以使用身份安全认证和密钥策略[3]。比如自组织的公共密钥机制,基于PKI的局部化认证机制,异步分布式密钥管理策略等。而对网络内部的攻击者,认证和密钥无能为力,我们可以采用采用入侵检测和行为检测机制。主要是根据某个节点的行为来判断节点是否是攻击节点。

2 DSR 路由协议

DSR[4](Dynamic Routing Protocol,动态源路由协议)协议是一个典型的按需路由协议,也是最早采用按需路由思想的协议,DSR是基于源路由概念 的按需自适应路由协议,移动节点需要保留存储节点所知的源路由的路由缓冲,当新的路由被发现时,缓冲内地条目随之更新,它的最大特点是使用源路由机制,每一个分组的头部都包含整条路由信息。这种机制最初被IEEE802.5协议用在由网桥互连的多个令牌环网中寻找路由。DSR借鉴该机制,并结合了按需路由思想。DSR协议使用源路由,采用Cache(缓冲器)存放路由信息,且中间节点不必存储转发分组所需的路由信息,网络开销较少。

DSR路由协议包括两个过程:路由发现和路由维护。

路由发现:当一个节点欲发送数据到目的节点时,它首先查询路由缓冲器看是否有到目的节点的路由,如果有,则采用此路由发送数据,如果没有,源节点就开始启动路由发现程序,路由发送过程使用泛洪路由。

路由维护:DSR支持主动应答和被动应答两种链路状态监测方法,路由维护通过路由错误分组和确认分组来实现,一旦节点在发送数据时发现需要使用的邻接链路断开,它发送“路由出错”分组给这些断开路由的源节点,源节点收到分组后,将失效路由从路由表中删除,沿途转发“路由出错”的节点也从自己的路由表中删除包含该断开链路的所有路由。

除路由错误分组外,确认分组可以用来验证路由连接的正确运行,路由维护过程中源节点检测网络拓扑的变化,若有变化导致源路由中断,源节点就尝试用缓存中的路由信息,如果不成功,就重启路由发现过程,为减少路由开销,节点缓存学习到底或用过的路由信息,并通过随机收听的方式来获取路由信息。

3 对DSR路由协议的改进

由前面分析可知,DSR路由协议在构建之初,并未考虑到网络的安全性问题。网络中的恶意节点可以利用中间任何环节发出攻击,是数据不能正常传输。例如当源节点向目的节点发送数据包时,路由信息被加入到数据包的IP选项域,中间节点根据IP头中的源路由信息转发数据包。路由维护处理链路断开的情况。这种路由情况下所暴露的问题是:在路由发现阶段,中间节点需要将自己的路径信息记录在路由数据包中,恶意节点在这个过程中可能通过插入错误的路径信息,使路由包的传输路径发生偏离和变更,绕过合法路径;同时中间节点也可能丢弃路由包,使得路由包不能到达目的节点;恶意节点可能会重复地转发一个旧的路由请求包等。

为了提高路由协议的安全性,减少中间节点对数据的处理和可能的修改,保证数据的完整性,可以应用单向散列函数[3]于数据中,hash函数将任意长的数字串M映射为定长的短数字串H=h(M),H称为M的hash值,hash函数h(M)必须很容易计算,我们可以验证序列M和M'是否具有相同的hash值,却不能从H求出来,由于hash函数这样的特性,我们可以充分运用它来验证我们数据传输过程中是否改变,但是仅仅通过字串的hash值,则只能用于检测数据的完整性,现在我们在求hash值时加上密钥控制,即H=h(k,m),则可以大大增加伪造消息的难度,这样有密钥控制的hash值也可用于认证。源节点在数据传输时除了对数据进行加密外,同时对数据进行计算散列函数,但并不传输,留在缓冲区内,而目的节点接收到数据后先解密,解密成功后计算数字摘要,并将数字摘要通过自己的反向路由回传给源节点,源节点会将接收到的数据和自己缓冲区的数据比较,如果是相同的,则继续传输数据,若不相同,则换一条路径传输。

对于密钥,我们采用对称性加密算法,如每次数据传输前,先通过DH算法交换密钥,待密钥交换成功后再进行传输,由于是每次传输时才会产生密钥,所以不需要每个节点记下其他节点密钥,在需要是进行交换即可。

DH[6]密钥交换算法是基于数论中的一个古典难题:离散对数问题。离散对数问题:若 p 是素数,p 已知,考虑方程 y = gx mod p,给定 g,x 求 y是简单的,但给定 y,g 求 x,即求 x = logg,py mod p,在计算上是不可行的。

DH 密钥交换算法的描述如下:已知公开的素数 p 和 p 的本原根 α

1)用户 A 选择秘密的 Xa<p,计算 Ya = αXa mod p,将其发送给 B。

2)用户 B 选择秘密的 Xb<p,计算 Yb = αXb mod p,将其发送给 A。

3)A 和 B 分别计算 Ka = (Yb)Xa mod p 和Kb = (Ya)Xb mod p,就同时得到了共享的密钥K=Ka=Kb,然后就可以用 K 进行加密传输了。DH密钥交换算法的优点在于:双方在通信前不需要知道任何共享的密钥,而是通过公开的 p 和 α 协商出一个密钥来进行加密通信。

通过前面分析,我们可以将DSR路由协议如下流程图进行改进。

图1 改进的DSR安全路由协议

4 结论

本文在DSR路由协议的基础上采用对称加密机制防止数据传输时中间节点的篡改,添加,并使用密钥交换算法实现传输前密钥的交换,以及利用数字摘要回传比较方法抵御中间某些知道密钥的节点而修改数据,从而进一步保证数据的安全性。

[1]郑相全.无线自组网技术实用教程[M].北京:清华大学出版社.2004,3-4,307

[2]王建新,拉米.移动自组网的安全性研究[J].技术纵横,2004,5.

[3]姜海,何永明,程时昕.移动Ad Hoc网络关键技术研究[J].中兴通讯高级论坛,2001,(7) :61-65

[4]D.B.Johnson and D.A.Maltz,"Dynamic source routing in adhoc wireless network, mobile computing,"In Mobile Computing,edited by Tomasz Imieliski and Hank Korth,Kluwer Academie Publishers,1996,151-181,

[5]蒋睿,胡爱群,等.网络信息安全理论与技术[M].湖北:华中科技大学出版社,2007.

[6]http://bbs.cisps.org/viewtopic.php?p=64863.

猜你喜欢
路由密钥分组
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
分组搭配
路由重分发时需要考虑的问题
TPM 2.0密钥迁移协议研究
怎么分组
一种对称密钥的密钥管理方法及系统