對于AODV路由協(xié)議的深入研究
對于自組織網(wǎng)絡(luò)來說,當(dāng)中的AODV路由協(xié)議是一個重點,也是一個難點。所以我們今天就特意將這個協(xié)議的一些問題,在這里為大家仔細(xì)地深入研究一下。那么本文主要包括的內(nèi)容則是:研究對Ad-hoc網(wǎng)絡(luò)中AODV路由協(xié)議的路由黑洞攻擊問題進行研究,希望基于對中間應(yīng)答節(jié)點及其下一跳節(jié)點進行檢測的思想,研究適用于AODV路由協(xié)議的可信路由算法,使AODV路由協(xié)議能夠識別出進行路由黑洞進攻的惡意節(jié)點,同時,能進一步改善安全AODV路由協(xié)議的性能,包括網(wǎng)絡(luò)吞吐量、分組成功接收的概率、網(wǎng)絡(luò)開銷和時延。
在對AODV路由協(xié)議、Ad-hoc網(wǎng)絡(luò)面臨的安全威脅和現(xiàn)有的安全AODV路由協(xié)議進行深入研究的基礎(chǔ)上,提出可信AODV路由協(xié)議,以解決AODV路由協(xié)議中的路由黑洞。
AODV借用了DSR的路由發(fā)現(xiàn)策略及DSDV的逐跳路由、序列號和定期廣播機制,是一種按需路由協(xié)議。
在AODV路由協(xié)議中,每個節(jié)點動態(tài)的生成并維護一張不完整的路由表。當(dāng)數(shù)據(jù)到達網(wǎng)絡(luò)層時,節(jié)點首先搜索自身路由表,若有到目的節(jié)點的有效路由則直接使用該路由發(fā)送數(shù)據(jù),否則將啟動路由建立過程。
源節(jié)點廣播路由請求消息(RREQ),包括目的節(jié)點地址、目的節(jié)點序列號、廣播序列號、源節(jié)點地址、源節(jié)點序列號、上一跳地址和跳數(shù)。當(dāng)中間節(jié)點收到RREQ時,首先根據(jù)該RREQ提供的信息建立到上一跳的反向路由,接著查找自己的路由表,若發(fā)現(xiàn)有到目的節(jié)點的有效路由,則通過反向路由單播回送路由應(yīng)答消息(RREP),包括源節(jié)點地址、目的節(jié)點地址、目的節(jié)點序列號、跳數(shù)和生存時間。否則再將收到的RREQ廣播給鄰居節(jié)點,直到該RREQ到達日的節(jié)點。
由目的節(jié)點生成RREP,并沿已建立的反向路由傳給源節(jié)點。當(dāng)同一個RREQ有若干不同的RREP時(可能由目的節(jié)點或者不同的中間節(jié)點發(fā)出),源節(jié)點采用最先到達的那個RREP。若幾個RREP同時到達,源節(jié)點將選擇目的節(jié)點序列號最大的路由,或者在目的節(jié)點序列號相同時,選擇跳數(shù)最小的路由。至此,路由建立完畢,并可以在其有效期內(nèi)使用。
數(shù)據(jù)沿著建立的路由傳送過程中,中間節(jié)點在確定有有效路由,但下一跳節(jié)點無法到達(可能由于節(jié)點的移動或者鏈路斷路)或者在沒有有效路由時(例如有效期結(jié)束),該節(jié)點將廣播路由出錯消息(RERR)給鄰居節(jié)點。RERR包括無法到達的節(jié)點地址和序列號,所有收到RERR的節(jié)點將相應(yīng)的路由設(shè)置為無效,并同理廣播RERR,源節(jié)點收到RERR后將重啟路由建立過程。
惡意節(jié)點利用AODV路由協(xié)議的廣播機制捕獲經(jīng)過自己的RREQ消息,并宣稱自己有到達目的節(jié)點的最佳路由(通過偽造跳數(shù)或者偽造目的節(jié)點序列號),從而使源節(jié)點采用此虛假路由。這樣,惡意節(jié)點可以輕易攔截下所有數(shù)據(jù)包而形成一個吸收數(shù)據(jù)包的“黑洞"。
由于惡意節(jié)點在收到RREQ消息時不需要查表也不需要判斷路由的有效性就做出應(yīng)答,所以往往會先于其它路由應(yīng)答消息到達源節(jié)點,就算有其它正確的路由應(yīng)答消息同時到達,由于惡意節(jié)點偽造了跳數(shù)或者目的節(jié)點序列號,使得源節(jié)點看起來該路由有到達目的節(jié)點的更短的路徑(跳數(shù)小)或者比其它路由更新(目的節(jié)點序列號大),從而使源節(jié)點錯誤地選擇了虛假路由。
在對于Ad-hoc網(wǎng)絡(luò)的進攻上,國內(nèi)外的許多研究者做了大量的工作,將攻擊行為分成了以下幾大類:拒絕服務(wù)攻擊(Dos)、路由黑洞(Black hole)、路由重播(Replay)、Rushing攻擊、Tunneling攻擊等。#p#
惡意節(jié)點對AODV路由協(xié)議的攻擊歸納為以下六類:
(1)假冒源結(jié)點S偽造一個RREQ包,讓自己的地址看起來像源地址;
(2)當(dāng)轉(zhuǎn)發(fā)一個RREQ包的時候,減少跳數(shù)域;
(3)扮演接收方偽造一個RREP,讓自己的地址看起來像目的地址;
(4)沒有去轉(zhuǎn)發(fā)相應(yīng)的RREQ或者RREP,或者沒有去響應(yīng)相應(yīng)的RREQ和數(shù)據(jù)包;
(5)用很高的目的結(jié)點序列號偽造一個RERR包;
(6)把一個結(jié)點的源或目的序列號設(shè)置得很大。
針對于Ad-hoc網(wǎng)絡(luò)中的這些進攻,已經(jīng)提出了幾種安全AODV路由協(xié)議和方案。
ARAN(Authenticated Routing for Ad-hoc Networks)通過可信任的認(rèn)證服務(wù)器,為所有的有效接點頒發(fā)證書,并且把路由跳數(shù)信息也加入到簽過名的包內(nèi),下一跳收到路由包的節(jié)點,用從密鑰服務(wù)器中得到的公鑰對由上游結(jié)點發(fā)來的路由包進行驗證,通過驗證后,再用自己的私鑰進行加密后進行轉(zhuǎn)發(fā)。
Ariadne協(xié)議的目標(biāo)在于用較小的計算開銷,來保障路由發(fā)現(xiàn)的正確路徑。采用了一個廣播的認(rèn)證協(xié)議—定時有效流損失容忍認(rèn)證(Timed Efficient Stream Loss-tolerant Authentication,TELSA)。TELSA目標(biāo)在于不用密鑰分發(fā)機制提供的共享密鑰,每個節(jié)點創(chuàng)建一個哈希鏈,哈希值被當(dāng)成密鑰,用來生成每個包的消息認(rèn)證碼MAC(Message Authentication Code)。
SAODV(Secure Ad-hoc On-Demand Distance Vector)提出了把可變域,如跳數(shù),和不可變域分開進行處理。對于可變域,用哈希函數(shù)進行逐跳驗證;對于不可變域進行數(shù)字簽名,并拓展了一些字段用于已知目的節(jié)點的中間節(jié)點發(fā)送RREP包。
辛辛那提大學(xué)的Hongmei Deng等人提出了一種基于對響應(yīng)節(jié)點的下游鄰居節(jié)點驗證的方案。當(dāng)中間節(jié)點(假設(shè)是B)應(yīng)答RREQ時必須在RREP中附加下一跳節(jié)點C的信息,源節(jié)點收到RREP后并不立即信任該路由,而是再向C發(fā)送驗證詢問包,如果返回的驗證反饋包中確認(rèn)有到目的節(jié)點和到B的可用路由(源節(jié)點忽略來自包含節(jié)點B的路徑的返回的驗證反饋包)源節(jié)點將信任的RREP,否則拋棄RREP,同時向全網(wǎng)發(fā)送警告信息孤立。
這些利用數(shù)字簽名,加密等方法解決路由黑洞攻擊問題的方案雖然有比較高的安全性,但由于每個節(jié)點都要執(zhí)行加密和驗證程序,因此應(yīng)用在計算機能力和電源有限的移動終端中顯得過于龐大,同時加密和驗證還會引起時延,不利于大規(guī)模網(wǎng)絡(luò)的構(gòu)建。
本文研究在成組惡意節(jié)點攻擊情況下,可信AODV路由協(xié)議。