張 怡,汪學明
(貴州大學 計算機科學與信息學院,貴州 貴陽 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.