张 怡,汪学明
(贵州大学 计算机科学与信息学院,贵州 贵阳 550025)
由于移动Ad hoc网络自组织具有无中心等缺点,易受如窃听、伪造、拒绝服务等攻击,安全问题尤为突出。无线自组网按需距离矢量路由协议(AODV,Ad hoc On-demand Distance Vector)因为简单和控制开销小而广泛应用于Ad hoc网络,但它没有安全机制,遭遇攻击易导致网络崩溃。因此,2001年Yi S等人提出了ARAN[1]协议,2002年在文献[2]中提出了SRP,文献[3]提出了Ariadne协议,文献[4]提出了SAODV协议,2003年文献[5]提出SLSP安全协议,这些协议都显著提高路由安全性。
为了使AODV的路由信息不可伪造,本文对文献[6]中的匿名路由模块提出改进,唯一标识路由请求,在节点寻路隐藏身份的同时,对报文分组进行认证。
AODV是基于距离矢量算法的路由协议[7],它只在源节点要向目的节点通信而路由表中没有到目的节点的可用路由时,才发起路由查找过程。当源节点与目的节点通信时,先查找路由表是否有到目的节点的路由,若有则直接通信;若没有,启动路由发现过程,向所有邻居节点广播路由请求RREQ。中间节点收到此RREQ,在路由表中建立指向源节点的反向路由,再向周围节点继续广播此RREQ,若有到达目的节点的路由或目的节点收到RREQ,就发回RREP给上一节点并经若干中间节点发回源节点。若源节点收到多个RREP,根据目的节点序列号和跳数来决定最优路径,并更新路由表。
但AODV没有保护RREQ等报文,它无防御各种攻击的机制。比如RRER作用是通知路由出错。攻击者可伪造该报文,通知某链路上的节点该链路出错不可用,使节点抛弃可用链路,重新经历路由发现、路由建立、路由维护等过程,网络不能正常运行。再如著名的黑洞问题,恶意节点先于正常节点回复一个虚假可到达目的节点的RREP包,源节点就将数据包源源不断的发到恶意节点上而未与目的节点通信,恶意节点如同黑洞一样获取信息。因此保证信息的安全性对网络十分必要。
会话密钥由非对称密钥算法RSA生成,对报文分组进行安全签名。系统公私钥在初始化网络信息时由认证中心(CA)生成,初始化结束后CA消失,所有节点均保存系统公钥,私钥分为n份授予n个节点,需要时由其中k个节点合作更新证书。
路由发现过程包括路由请求、路由请求转发、在目的节点处对路由请求的验证,路由请求及其转发以及对其验证过程简叙如下(路由应答、路由应答转发和在源节点处对路由应答的验证类似)。
当源节点和目的节点前有过相互通信经历,但由于网络拓扑变化等原因需要重新建立到达彼此的路由。即如图1所示,节点N1与节点N6已交换证书,但N1路由表中没有到达N6的有效路由信息。
图1 某时刻网络中N1与N6通信
符号说明:RREQ--路由请求数据包;RREP--路由回复数据包;RERR--路由错误数据包;IDi--节点i标示符;Cei--节点i的证书;Ri--节点i产生的随机数;SKi--节点i私钥加密;PKi--节点i公钥加密;Hash()--hash散列值;RIDi--节点i产生随机身份标示;HNi--跳数;QnumNi--路由请求ID,每次启用路由发现机制时该数值单调加 1;SM--Signature method,安全签名算法,对报文分组摘要加密生成安全签名S;Cer--公开密钥证书。
①构建RREQ。随机数RIDN1为源节点N1的标识,跳数初始值 HN1=1,结构:RREQ={RIDN1,HN1,QnumNi,PKN6{RIDN1,IDN1,IDN6}Cer ,SM}。序列对(RIDN1,QnumNi)唯一标识一个路由请求RREQ。
②中间节点 Ni收到一条新的路由请求RREQ时,检查是否收到过该(RIDN1,QnumN1)标识的RREQ,若是则不作任何处理,丢弃该分组。若否,执行 Step-com。因为第一次收到(RIDN1,QnumN1)标识的 RREQ,尝试用私钥解密 PKN6。如成功解密转到③,否则将原跳数加 1 后广播。
Step-com:判断 RREQ是否具有安全签名 S:如果没有,节点认为报文分组没有经过认证,视其无效直接丢弃;如果报文具有安全签名S,则对RREQ内的公开密钥证书进行验证。证书有效,用其公开密钥PK对签名S加密,得到报文分组摘要H(M),借助RSA加密算法对RREQ分组M 进行运算,最后判断计算结果 h与解密得到的报文摘要H(M)是否一致。如果h与H(M)不一致,表明RREQ分组在传递过程中已被篡改,节点执行丢弃操作;若 h=H(M),证明报文未被篡改。
③加密段PKN6只有目的节点N6能解开,在得到源节点真实ID后发送RREP分组给发送RREQ给自己的前一节点N5。RREP={RIDN6,RIDN1,QnumN1,PKN5{IDN1,IDN6,HN6, PHN6,{Node List}}Cer,SM }。
④中间节点Ni收到RREP,检查序列对(RIDN6,RIDN1,QnumN1)是否收到过,若是,直接丢弃,若否,检查第二个随机数 RIDN1,判断是否收到过 N1的 RREQ,若否,丢弃;若是,执行Step-com, 确保报文未被篡改。检查正确后解密 PKNi{}字段,检查相应 RREQ是否为自身发出,若是转到⑤;若否,将自己的 ID加入{Node list},应答跳数值PHNi加 1生成新的 RREP,结构:RREP={RIDN6,RIDN1,PKN(i-1){IDN1,IDN6, HN6, PHN5,{Node List}}Ni签名}。向发送此RREQ给自己上一节点发送。
⑤源节点收到 RREP,比较RREQ和RREP的跳数是否一致并获取路由信息。
如果以上均成功验证,目的节点能确定 RREQ的确来自源节点,记录在{Node List}里的每个节点实际上都参加了RREQ的转发,并且能够容易的获得RREQ经历的跳数。反向路由应答转发以及在源节点核实 RREP和路由请求阶段对称。
当某一节点移动或能量耗尽等原因造成链路中断时,离它最近的节点向其他节点广播一个“错误”信息RRER通知其他节点经过该节点的路由不可用,此时须用自己的私钥对RRER报文签名,中间节点对发送RRER报文的节点进行身份认证再从路由表删除该路由。这样就防止了恶意节点通过伪造RRER报文。
仿真平台选择NS2网络模拟软件。场景设置为500 m×500 m正方形区域,用于20个节点的网络,时间:150 s。图2~4中给出了在该场景中对比AODV路由协议以及改进过的协议 50%的节点遭受伪造路由应答的恶意攻击时的性能比较。
从图2中可看出,开始攻击后,AODV数据包的传递率迅速降低,主要因为恶意节点谎称具有最短路径,于是把接收到的路由请求包丢弃。而此时,改进的协议仍能完成大约60%的数据包传递任务。
图3表明改进的路由协议比AODV路由开销大,因为正常节点收到RREQ或RREP时,要经过解密与判断等,而AODV中恶意节点收到包后,直接丢弃了。
图2 数据包传递率
图3 路由开销
图4 路由延迟
图4表明AODV路由延迟低,部分原因是恶意节点比具有正确路由信息的节点有更快回复,谎称具有最短路径。而改进的协议因为要进行多步判断,所以延迟高。
该方案借助非对称公开密钥RSA算法对报文进行安全签名,寻路时隐藏身份用随机数代替源节点保护源、目标节点及跳数,并加密转发路由,可免疫如窃听,中间节点攻击等常见攻击。该改进增强了 AODV路由协议的安全性,但在路由开销和延迟方面仍存在改进空间,在以后的工作中将继续深入研究。
[1] YI S, NALDURG P, KRAVETS K.Security-aware Ad Hoc Routing for Wireless Network[R]. In Proc. MobiHoc, 2001:299-302.
[2] PAPADIMITRATORS P, HAAS Z J. Secure Routing for Mobile Ad Hoc networks[R]. In Procedings of the SCS Communication Networks and Distributed System Modeling and Sirnulation Conference,2002:193-204.
[3] SANZGIRI K, DAHILL B. A Secure Routing Protocol for Ad Hoc Networks..In:Proc of 2002 IEEE International Conference on Network Protocols(ICNP)[C]. 2002:78-87.
[4] HU Y C, PERRIG A, JONSON D B.Ariadne: A Secure On-Demand Routing Protocol for Ad Hoc Networks[R]. 8th ACM International Conference on Mobile Computing and Networking, MobiCom 2002:12-23.
[5] PAPADIMITRATOS P, HAAS Z J.Secure Link State Routing for Mobile Ad Hoc Networks[R].IEEE Workshop On Security and Assurance in Ad Hoc Networks 2003:379-383.
[6] 诸恺,杨凌,张晓帆,等.移动Ad hoc网络中按需路由协议的安全性改进方案[J]. 通信技术, 2008,41(10):113-115.
[7] 葛文英,李鹏伟.Ad Hoc网络的按需路由研究[J]. 软件技术研究,2006(08):41-42.
[8] 郑少仁,王海涛,赵志峰,等. Ad Hoc网络技术[M]. 北京:人民邮电出版社.2005:4-5.