摘 要: 針對(duì)移動(dòng)Ad Hoc網(wǎng)絡(luò)反應(yīng)式路由的洪泛攻擊,分析了現(xiàn)有的抵御洪泛攻擊的FAP方案的安全漏洞,提出了一種簡(jiǎn)單易行的CSR方案,并與FAP方案進(jìn)行了對(duì)比。
關(guān)鍵詞: 移動(dòng)Ad Hoc網(wǎng)絡(luò) 反應(yīng)式路由? 洪泛攻擊? FAP方案
?
移動(dòng)Ad Hoc網(wǎng)絡(luò)是一種新型的移動(dòng)多跳無線網(wǎng)絡(luò),它不依賴于任何固定的基礎(chǔ)設(shè)施和管理中心,而是通過傳輸范圍有限的移動(dòng)節(jié)點(diǎn)間的相互協(xié)作和自我組織來保持網(wǎng)絡(luò)連接并實(shí)現(xiàn)數(shù)據(jù)的傳遞。Ad Hoc網(wǎng)絡(luò)中路由的特殊性使其成為Ad Hoc網(wǎng)絡(luò)中的重要問題,一直是該領(lǐng)域的研究熱點(diǎn)。目前,較為成熟且已在Ad Hoc網(wǎng)絡(luò)中廣為使用的路由協(xié)議" title="路由協(xié)議">路由協(xié)議有優(yōu)化鏈路" title="鏈路">鏈路狀態(tài)路由算法OLSR(Optimized Link State Routing Protocol)、動(dòng)態(tài)源路由DSR(Dynamic Source Routing)、按需距離矢量路由AODV (Ad Hoc On-Demand Distance Vector Routing)等。同時(shí),隨著各類攻擊的出現(xiàn),基于安全的Ad Hoc路由協(xié)議也相繼產(chǎn)生[1~4]。
洪泛攻擊是新近提出的一種針對(duì)Ad Hoc網(wǎng)絡(luò)中反應(yīng)式路由的攻擊類型,分為RREQ報(bào)文和數(shù)據(jù)報(bào)文攻擊兩種。它通過在網(wǎng)絡(luò)中引發(fā)拒絕服務(wù),能夠?qū)ΜF(xiàn)有的所有反應(yīng)式路由進(jìn)行攻擊。Ping Yi等人首次提出了這種攻擊的模型[5],同時(shí)給出了抵御這種攻擊的洪泛攻擊預(yù)防FAP(Flooding Attack Prevention)方案。
針對(duì)FAP方案的不足,本文提出了通信狀態(tài)記錄CSR(Communication Status Record)方案。該方案中各節(jié)點(diǎn)通過實(shí)時(shí)記錄與其相關(guān)聯(lián)的節(jié)點(diǎn)及鏈路的狀態(tài),從而可以有效地辨別非法節(jié)點(diǎn),避免為非法節(jié)點(diǎn)轉(zhuǎn)發(fā)報(bào)文,達(dá)到抵御洪泛攻擊的效果。
1 背景知識(shí)
1.1 反應(yīng)式路由簡(jiǎn)介
反應(yīng)式路由協(xié)議又稱為按需路由協(xié)議,是一種當(dāng)需要發(fā)送數(shù)據(jù)時(shí)才查找路由的路由算法。在這種路由協(xié)議中,節(jié)點(diǎn)不需要維護(hù)及時(shí)、準(zhǔn)確的路由信息,當(dāng)需要向目的節(jié)點(diǎn)發(fā)送報(bào)文時(shí),源節(jié)點(diǎn)才在網(wǎng)絡(luò)中發(fā)起路由查找過程,找到相應(yīng)的路由。常用的反應(yīng)式路由協(xié)議有DSR、AODV等。與先驗(yàn)式路由協(xié)議相比,反應(yīng)式路由協(xié)議的開銷較小,應(yīng)用更廣泛。
?
以AODV路由協(xié)議為例,RREQ報(bào)文的傳播路徑如圖1所示。圖中當(dāng)節(jié)點(diǎn)A要發(fā)起與節(jié)點(diǎn)B的通信時(shí),A先在網(wǎng)絡(luò)中洪泛路由請(qǐng)求RREQ(Route Request)尋路報(bào)文。實(shí)箭頭方向?yàn)镽REQ洪泛的方向,目的節(jié)點(diǎn)收到RREQ報(bào)文后,不再轉(zhuǎn)發(fā)。
中間節(jié)點(diǎn)接收RREQ報(bào)文后進(jìn)行轉(zhuǎn)發(fā),同時(shí)在自身的路由表" title="路由表">路由表中增加一個(gè)表項(xiàng),用來記錄從本節(jié)點(diǎn)到源節(jié)點(diǎn)的反向路徑。反向路徑示意圖如圖2所示。虛箭頭方向?yàn)楦鞴?jié)點(diǎn)建立的朝源節(jié)點(diǎn)的反向鏈路。
目的節(jié)點(diǎn)接收到RREQ報(bào)文后,不再轉(zhuǎn)發(fā)該RREQ報(bào)文,并回送路由應(yīng)答RREP(Route Reply)報(bào)文。RREP報(bào)文沿RREQ報(bào)文到達(dá)的反方向,依次到達(dá)轉(zhuǎn)發(fā)RREQ報(bào)文的各中間節(jié)點(diǎn),中間節(jié)點(diǎn)沿自身路由表中保存的反向路徑,向源節(jié)點(diǎn)轉(zhuǎn)發(fā)RREP報(bào)文。數(shù)據(jù)報(bào)文傳輸路徑如圖3所示。實(shí)箭頭方向?yàn)槟康墓?jié)點(diǎn)發(fā)送RREP的鏈路,源節(jié)點(diǎn)沿虛箭頭方向向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。在此后的通信中,源節(jié)點(diǎn)沿RREP報(bào)文的反方向向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)報(bào)文。
鏈路不通的消息由路由錯(cuò)誤RRER(Route Error)傳播。
每個(gè)RREQ 報(bào)文在網(wǎng)絡(luò)中存活的時(shí)間由報(bào)文中的TTL值控制,RREQ報(bào)文每次經(jīng)過一個(gè)節(jié)點(diǎn),其TTL值減少1,TTL值為0的RREQ報(bào)文視為失效報(bào)文并被丟棄。
每個(gè)路由都采用序號(hào)標(biāo)記,以此來指示路由的新舊。
1.2 洪泛攻擊對(duì)反應(yīng)式路由的影響
洪泛攻擊分為RREQ報(bào)文洪泛攻擊和數(shù)據(jù)報(bào)文洪泛攻擊。
在RREQ報(bào)文洪泛攻擊中,入侵節(jié)點(diǎn)選擇大量不在此網(wǎng)絡(luò)中的IP地址作為目的地址,連續(xù)發(fā)送大量的TTL值極大的RREQ報(bào)文。因目的地址不在本地網(wǎng)絡(luò),沒有節(jié)點(diǎn)能夠發(fā)送RREP報(bào)文響應(yīng),這些RREQ報(bào)文就會(huì)在整個(gè)網(wǎng)絡(luò)中循環(huán)傳播。一方面,網(wǎng)絡(luò)中到處充斥的RREQ報(bào)文會(huì)占用網(wǎng)絡(luò)通信帶寬,阻礙正常通信;另一方面,各節(jié)點(diǎn)的反向路由表很快就會(huì)被耗盡,無法為正常的通信提供服務(wù)。
在數(shù)據(jù)報(bào)文洪泛攻擊中,入侵節(jié)點(diǎn)首先和網(wǎng)絡(luò)中的所有節(jié)點(diǎn)建立通信鏈路,然后沿所建的路徑給所有節(jié)點(diǎn)發(fā)送大量的無用報(bào)文。這些泛濫的數(shù)據(jù)報(bào)文將會(huì)堵塞網(wǎng)絡(luò),耗盡網(wǎng)絡(luò)中節(jié)點(diǎn)間的通信帶寬。目的節(jié)點(diǎn)將會(huì)忙于接收入侵節(jié)點(diǎn)的無用報(bào)文而無法正常工作。
移動(dòng)Ad Hoc網(wǎng)絡(luò)中的節(jié)點(diǎn)資源極其有限,這兩種攻擊方式都旨在占用網(wǎng)絡(luò)中的通信帶寬,消耗網(wǎng)絡(luò)中節(jié)點(diǎn)的大量資源,使合法節(jié)點(diǎn)之間無法正常通信。特別當(dāng)入侵節(jié)點(diǎn)聯(lián)合使用RREQ洪泛攻擊和報(bào)文洪泛攻擊時(shí),很快就會(huì)置網(wǎng)絡(luò)于癱瘓狀態(tài)。
2 FAP方案
2.1 FAP方案的原理
文獻(xiàn)[5]中采用鄰居抑制的方法來抵御RREQ報(bào)文洪泛攻擊。網(wǎng)絡(luò)中的節(jié)點(diǎn)為其所轉(zhuǎn)發(fā)的每個(gè)RREQ報(bào)文附加一個(gè)優(yōu)先級(jí)。每個(gè)RREQ報(bào)文的優(yōu)先級(jí)與發(fā)送它的節(jié)點(diǎn)發(fā)送的RREQ報(bào)文的頻度成反比。
當(dāng)某節(jié)點(diǎn)的RREQ報(bào)文隊(duì)列中有很多RREQ報(bào)文要轉(zhuǎn)發(fā)時(shí),它轉(zhuǎn)發(fā)這些RREQ報(bào)文的順序由它們的優(yōu)先級(jí)來決定,優(yōu)先級(jí)高的先被轉(zhuǎn)發(fā)。同時(shí),如果某個(gè)節(jié)點(diǎn)發(fā)送的RREQ報(bào)文過多,以至于超過特定的門限時(shí),其鄰居節(jié)點(diǎn)就會(huì)拒絕為它轉(zhuǎn)發(fā)RREQ報(bào)文,從而達(dá)到防范RREQ報(bào)文洪泛的目的。
FAP方案中采用Path Cutoff(切斷路徑)的方法來抵御數(shù)據(jù)報(bào)文洪泛攻擊。目的節(jié)點(diǎn)發(fā)現(xiàn)對(duì)方是入侵節(jié)點(diǎn)后,發(fā)送RRER報(bào)文,指明入侵節(jié)點(diǎn)的IP地址不可達(dá),以此切斷正在通信的鏈路,阻止入侵節(jié)點(diǎn)繼續(xù)發(fā)送無用報(bào)文。另外,當(dāng)入侵節(jié)點(diǎn)再發(fā)RREQ報(bào)文企圖與其他節(jié)點(diǎn)建立連接時(shí),因?yàn)樗泄?jié)點(diǎn)已接收到了RRER報(bào)文,所以不會(huì)有節(jié)點(diǎn)向入侵節(jié)點(diǎn)發(fā)送RREP報(bào)文回應(yīng),從而使入侵節(jié)點(diǎn)無法與合法節(jié)點(diǎn)建立通信鏈路,實(shí)施數(shù)據(jù)報(bào)文洪泛攻擊。
2.2 FAP方案的分析
(1)比較各個(gè)RREQ報(bào)文優(yōu)先級(jí)決定轉(zhuǎn)發(fā)順序的策略只在網(wǎng)絡(luò)通信量大時(shí)有效。優(yōu)先級(jí)是由各節(jié)點(diǎn)發(fā)送RREQ報(bào)文的頻度決定的,而計(jì)算頻度的過程較為復(fù)雜,加重了各節(jié)點(diǎn)的負(fù)擔(dān),不適合Ad Hoc網(wǎng)絡(luò)中節(jié)點(diǎn)資源極其有限的特點(diǎn)。
(2)FAP方案中對(duì)數(shù)據(jù)報(bào)文攻擊采取了發(fā)現(xiàn)攻擊后再進(jìn)行防御的被動(dòng)方式。如果多個(gè)入侵節(jié)點(diǎn)同時(shí)與網(wǎng)絡(luò)中的多" title="的多">的多個(gè)節(jié)點(diǎn)建立了連接,則會(huì)發(fā)送大量的無用報(bào)文,實(shí)施該策略的代價(jià)是很大的,并且可能無法阻止產(chǎn)生的惡劣后果。
(3)如果網(wǎng)絡(luò)中有兩個(gè)或兩個(gè)以上的入侵節(jié)點(diǎn),則任意兩個(gè)入侵節(jié)點(diǎn)之間建立鏈路,發(fā)送大量的無用報(bào)文,占用網(wǎng)絡(luò)資源,由于合法節(jié)點(diǎn)不能判知洪泛攻擊的存在,所以FAP方案無法對(duì)此進(jìn)行防御。
3 CSR方案
本文主要關(guān)注節(jié)點(diǎn)間的雙向通信模式。假設(shè)每個(gè)節(jié)點(diǎn)都有一個(gè)MAC到IP地址的惟一映射。源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間使用安全認(rèn)證" title="安全認(rèn)證">安全認(rèn)證機(jī)制,比如它們可以通過交換密鑰或初始化時(shí)發(fā)放證書等方法驗(yàn)證雙方的合法性,確保只有合法的通信節(jié)點(diǎn)才能通過安全通信認(rèn)證。但是中間節(jié)點(diǎn)不必參與這一通信建立的安全認(rèn)證過程。
3.1 CSR方案的實(shí)現(xiàn)
在FAP方案的基礎(chǔ)上,本文提出CSR方案,在每個(gè)合法節(jié)點(diǎn)上建立一張CSR表,CSR表結(jié)構(gòu)如圖4所示。記錄節(jié)點(diǎn)轉(zhuǎn)發(fā)的RREQ報(bào)文并保存當(dāng)前建立連接的合法通信路由。
3.2 RREQ數(shù)目表項(xiàng)的維護(hù)
當(dāng)節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)送報(bào)文時(shí),先洪泛RREQ報(bào)文。每個(gè)收到RREQ報(bào)文的節(jié)點(diǎn)在自身的CSR中加一個(gè)表項(xiàng),把其中的源地址、目的地址置為報(bào)文中相應(yīng)的項(xiàng),同時(shí)把新增表項(xiàng)的RREQ數(shù)目一項(xiàng)置為1。以后每收到一條從A到B的,且序號(hào)相同的RREQ報(bào)文,就把RREQ值加1。網(wǎng)絡(luò)中的所有節(jié)點(diǎn)對(duì)收到的RREQ報(bào)文進(jìn)行類似的統(tǒng)計(jì)。例如節(jié)點(diǎn)A發(fā)出的RREQ報(bào)文經(jīng)由節(jié)點(diǎn)T和Q到達(dá)B,節(jié)點(diǎn)T和Q分別在各自的CSR中增加表項(xiàng)如圖5所示。
?
3.3 合法性標(biāo)記表項(xiàng)的維護(hù)
目的節(jié)點(diǎn)B收到來自A的RREQ報(bào)文(可能多個(gè))后,按最先到達(dá)或路徑最短等原則,選擇一條路由(如A-T-Q-B),在自身的CSR中加入相應(yīng)的表項(xiàng)。之后發(fā)送RREP報(bào)文,報(bào)文里包含源地址A,目的地址B和序列號(hào)s,并按照B-Q-T-A的路徑回送給A。在RREP到達(dá)Q和T時(shí),Q和T驗(yàn)證B的合法性。若為合法節(jié)點(diǎn),它們分別把自身CSR中相應(yīng)項(xiàng)的合法性標(biāo)記置為1;若為非法節(jié)點(diǎn),則丟棄該RREP報(bào)文。例如,收到B的RREP報(bào)文后,Q和T修改其上的CSR中相應(yīng)的表項(xiàng)如圖6所示,B 上的該表項(xiàng)同此項(xiàng)。
節(jié)點(diǎn)在設(shè)某一表項(xiàng)(如從A到B,序列號(hào)為S)的合法標(biāo)記為1時(shí),首先檢測(cè)CSR表,找到所有從A到B的表項(xiàng),把它們的序列號(hào)與S進(jìn)行比較,如果存在序列號(hào)大于S的表項(xiàng),且其合法標(biāo)記為1,則CSR把序列號(hào)為S的這一項(xiàng)刪除。如果其他從A到B的表項(xiàng)的序列號(hào)都小于S,則CSR把這一項(xiàng)的合法標(biāo)記置為1,并把從A到B,序列號(hào)小于S的表項(xiàng)都刪除。
3.4 CSR表項(xiàng)的刪除
當(dāng)兩個(gè)合法節(jié)點(diǎn)之間的通信完成以后,由源節(jié)點(diǎn)發(fā)送RANC(Rout Anouncement)通知報(bào)文,告訴鏈路中用到的中間節(jié)點(diǎn)。中間節(jié)點(diǎn)收到RANC報(bào)文后,自動(dòng)把CSR中相應(yīng)的表項(xiàng)刪除。
如果節(jié)點(diǎn)A和B的通信未結(jié)束就中斷原有鏈路,則采用新鏈路進(jìn)行通信。由于源節(jié)點(diǎn)不發(fā)送RANC報(bào)文,原先鏈路的中間節(jié)點(diǎn)在新鏈路中若未被采用,其保留的節(jié)點(diǎn)A與B之間通信的表項(xiàng)就無法更新及刪除。但是由于存在3.3節(jié)中的檢測(cè)機(jī)制,在A和B之間建立新鏈路的過程中,由于新發(fā)送的RREQ的序列號(hào)是最近的,所以A與B之間原有的、不再使用的鏈路就會(huì)被自動(dòng)刪除,不會(huì)占用CSR表的資源。
4 CSR方案分析
4.1 CSR抵御洪泛攻擊的原理
現(xiàn)在假設(shè)某節(jié)點(diǎn)的CSR中有n個(gè)表項(xiàng),其源地址、目的地址和RREQ值分別為Si、Di、RVQi,0≤i
另外,當(dāng)有報(bào)文到某合法節(jié)點(diǎn)要求進(jìn)行轉(zhuǎn)發(fā)時(shí),該合法節(jié)點(diǎn)首先查詢自身的CSR,看表中是否有關(guān)于該報(bào)文里所涉及的源地址和目的地址的通信條目,如果有就查看其所對(duì)應(yīng)的合法性標(biāo)記。若合法性標(biāo)記為1,判定該通路為合法鏈路,對(duì)數(shù)據(jù)報(bào)文進(jìn)行轉(zhuǎn)發(fā),否則丟棄。
由于入侵節(jié)點(diǎn)不能通過安全認(rèn)證,無法與合法節(jié)點(diǎn)建立路由。其鄰居節(jié)點(diǎn)的CSR中沒有入侵節(jié)點(diǎn)對(duì)應(yīng)的路由表項(xiàng),所以不會(huì)為其轉(zhuǎn)發(fā)報(bào)文,從而達(dá)到了抵御數(shù)據(jù)報(bào)文洪泛攻擊的目的。
4.2 CSR方案的正確性分析
(1)各節(jié)點(diǎn)利用CSR表中的RREQ數(shù)目表項(xiàng)來記錄相鄰節(jié)點(diǎn)發(fā)送的RREQ報(bào)文數(shù),采用定期統(tǒng)計(jì)CSR表中每個(gè)節(jié)點(diǎn)的RREQ數(shù)目值的方式可以有效及時(shí)地判定是否有節(jié)點(diǎn)發(fā)起RREQ報(bào)文攻擊。
(2)CSR方案通過各節(jié)點(diǎn)實(shí)時(shí)登記正在通信的合法鏈路的方式,從根源上杜絕了合法節(jié)點(diǎn)為入侵節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文的可能。
4.3 CSR方案與FAP方案的對(duì)比
(1)CSR方案解決了FAP方案無法解決的多個(gè)入侵節(jié)點(diǎn)配合攻擊的問題。
(2)CSR方案的算法簡(jiǎn)單,其動(dòng)態(tài)建立和動(dòng)態(tài)刪除機(jī)制不會(huì)給移動(dòng)Ad Hoc網(wǎng)絡(luò)中的節(jié)點(diǎn)引入太大的工作量。
(3)CSR方案計(jì)算簡(jiǎn)單有效,用于通信量較均衡的、安全系數(shù)不高的網(wǎng)絡(luò),如對(duì)于多臺(tái)移動(dòng)主機(jī)臨時(shí)組建的會(huì)議局域網(wǎng),有更高的有效性和準(zhǔn)確度。
本文針對(duì)用于反應(yīng)式路由中的洪泛攻擊,提出了一種簡(jiǎn)單的CSR方案。該方案以很小的代價(jià)就能有效地抵御這種攻擊,克服了FAP方案的漏洞,且計(jì)算量小,用于通信量較均衡、安全系數(shù)不高的局域網(wǎng)時(shí),有較大的優(yōu)勢(shì)。
參考文獻(xiàn)
1 Hu Y C,Johnson D B,Perring A.Secure efficient distance vector routing in mobile wireless Ad Hoc networks.In:Fourth IEEE workshop on mobile computing systems and applica-tions,2002
2 Papadimitratos P,Haas Z J.Secure routing for mobile Ad Hoc networks.In:SCS communication networks and distributed systems modeling and simulation conference,2002
3 Perring A,Szewczyk R,Wen V et.al.Security protocols for sense network.In:Seventh annual ACM international confer-ence on mobile computing and networks,2001
4 Zapata M G,Asokan N.Securing Ad Hoc routing protocols.In:Proceedings of the ACM workshop on wireless security, 2002
5 Yi P,Dai Z L,Zhong Y P et al.Resisting flooding attacks in Ad Hoc networks.In:Proceedings of international confer-ence on information technology:coding and computing,2005