專利名稱:Ad Hoc網(wǎng)絡(luò)中節(jié)點(diǎn)攻擊的防御方案的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是針對(duì)Ad Hoc網(wǎng)絡(luò)中OLSR路由協(xié)議的安全解決方案。主要用于解決無(wú)線 路由節(jié)點(diǎn)易受攻擊的安全問(wèn)題,屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域。
背景技術(shù):
移動(dòng)自組網(wǎng)(Mobile Ad Hoc Network)是一種無(wú)基礎(chǔ)設(shè)施的無(wú)線網(wǎng)絡(luò),最初用于 軍事通訊,它具有開(kāi)放的媒質(zhì)、分布式的合作、動(dòng)態(tài)的拓?fù)浣Y(jié)構(gòu)和受限的網(wǎng)絡(luò)能力特點(diǎn),所 以特別容易受到攻擊。應(yīng)用于Ad Hoc網(wǎng)絡(luò)中的OLSR (Optimized Link State Routing Protocol,最優(yōu)化鏈路狀態(tài)路由協(xié)議)協(xié)議是由INRIA(法國(guó)國(guó)家信息與自動(dòng)化研究所)開(kāi) 發(fā)提出,并被IETF MANET工作組確定為RFC標(biāo)準(zhǔn)的一種先應(yīng)式無(wú)線移動(dòng)Ad Hoc網(wǎng)絡(luò)路由 協(xié)議。OLSR協(xié)議在優(yōu)化網(wǎng)絡(luò)負(fù)載的同時(shí),使得網(wǎng)絡(luò)的完整性和安全性在一定程度上比較容 易受到惡意節(jié)點(diǎn)攻擊。例如MPR (Multi-Point Relays,多點(diǎn)中繼)節(jié)點(diǎn)就存在很大的安 全隱患,這些隱患將給現(xiàn)代信息化戰(zhàn)爭(zhēng)帶來(lái)嚴(yán)重后果。針對(duì)Ad Hoc網(wǎng)絡(luò)的攻擊有蟲(chóng)洞攻 擊,黑洞攻擊等。1.蟲(chóng)洞攻擊
蟲(chóng)洞攻擊一般由2個(gè)能直接通信的攻擊節(jié)點(diǎn)協(xié)同發(fā)動(dòng),它們之間的鏈路稱為“隧 道”(其長(zhǎng)度大于普通節(jié)點(diǎn)信號(hào)覆蓋半徑,在路由上體現(xiàn)為1跳距離)是發(fā)動(dòng)攻擊的基礎(chǔ)。 蟲(chóng)洞攻擊示意如圖1,其中A和B是距離較遠(yuǎn)的2個(gè)節(jié)點(diǎn),不在信號(hào)覆蓋范圍內(nèi),X和Y是協(xié) 同攻擊節(jié)點(diǎn),在X和Y之間建立一條私密的鏈路形成“隧道”。當(dāng)A向周?chē)従影l(fā)送HELLO報(bào)文時(shí),X收到該報(bào)文后通過(guò)隧道傳給Y,由Y原 封不動(dòng)地重放到網(wǎng)絡(luò)中,B接收到A的HELLO報(bào)文,判定A為1跳鄰居。因此A,B以及所有 位于X,Y傳播范圍內(nèi)正常節(jié)點(diǎn)的鄰居表中均會(huì)存在偽鄰居。若路由協(xié)議時(shí)以最優(yōu)路徑優(yōu)先 原則建立路由表項(xiàng),A到B的最短距離是Qn+2)跳,則A的η跳內(nèi)的鄰居會(huì)通過(guò)“隧道”建 立路由表項(xiàng)到達(dá)B。所有的節(jié)點(diǎn)的通信都暴露在攻擊節(jié)點(diǎn)下,通過(guò)路由信息的擴(kuò)散傳播會(huì)使 網(wǎng)絡(luò)極大范圍內(nèi)的節(jié)點(diǎn)通信受控于攻擊節(jié)點(diǎn),攻擊者對(duì)通過(guò)其路徑的信息進(jìn)行篡改、丟棄 或竊取等惡意操作使網(wǎng)絡(luò)中部分節(jié)點(diǎn)無(wú)法通信,甚至讓整個(gè)網(wǎng)絡(luò)癱瘓。2.黑洞攻擊
黑洞攻擊的特征有即使沒(méi)有到目的節(jié)點(diǎn)的路由信息,黑洞節(jié)點(diǎn)也會(huì)聲稱自己具 備該路由信息,目的是為了干擾正常的數(shù)據(jù)傳輸;當(dāng)收到其它節(jié)點(diǎn)傳來(lái)的數(shù)據(jù)分組時(shí),黑洞 節(jié)點(diǎn)會(huì)全部丟棄該分組以達(dá)到破壞網(wǎng)絡(luò)的目的。黑洞攻擊有兩種方式單個(gè)節(jié)點(diǎn)的黑洞攻 擊和多個(gè)節(jié)點(diǎn)配合的攻擊。
發(fā)明內(nèi)容
技術(shù)問(wèn)題本發(fā)明的目的是提供一種針對(duì)Ad Hoc網(wǎng)絡(luò)中OLSR路由協(xié)議安全的解決方案,來(lái)解決路由節(jié)點(diǎn)受攻擊的問(wèn)題。技術(shù)方案本發(fā)明的方法是一種策略性的方法,通過(guò)引入節(jié)點(diǎn)消息的密鑰認(rèn)證以 及對(duì)消息發(fā)送頻率的監(jiān)控達(dá)到對(duì)非法消息的過(guò)濾。一、體系結(jié)構(gòu)
1.基于OLSR路由協(xié)議的Ad Hoc網(wǎng)絡(luò)通過(guò)HELLO消息互相發(fā)送鄰居消息,圖2給出了 傳統(tǒng)HELLO控制消息格式,其中字段含義如下所示 Reversed:該字段是個(gè)預(yù)留字段。Willingness:該字段表示節(jié)點(diǎn)為其他節(jié)點(diǎn)轉(zhuǎn)發(fā)消息的樂(lè)意程度,主要有三 種類型WILL_NEVER表示節(jié)點(diǎn)不愿意參加消息轉(zhuǎn)發(fā);WILL_ALWAYS表示節(jié)點(diǎn)必然被選為MPR 節(jié)點(diǎn);WILL_DEFAULT表示看具體的網(wǎng)絡(luò)節(jié)點(diǎn)分布情況,可能作為MI5R節(jié)點(diǎn)。默認(rèn)情況下該 字段為 WILL_DEFAULT。HTime 該字段表示HELLO消息發(fā)送周期,一般OLSR協(xié)議默認(rèn)值為2秒,針 對(duì)MI5R節(jié)點(diǎn)的一種攻擊方案便是對(duì)節(jié)點(diǎn)HELLO消息周期的修改,降低周期值并利用攻擊節(jié) 點(diǎn)模擬MPR節(jié)點(diǎn)發(fā)送HELLO消息給周?chē)?jié)點(diǎn),將消息中的Willingness字段修改為WILL_ NEVER (表示節(jié)點(diǎn)不愿作為MI5R節(jié)點(diǎn))。防御的第二階段便是監(jiān)測(cè)HELLO消息的發(fā)送周期。Link Code:表示了節(jié)點(diǎn)與其鄰居節(jié)點(diǎn)之間的鏈路類型和鏈接類型,ASYM_ Link表示單向鏈路;SYM_Link表示雙向鏈路,而且表示被該節(jié)點(diǎn)選為節(jié)點(diǎn)的MPR。Link Message Size:給出本分組的大小,從Link Code字段開(kāi)始計(jì)算,直到 下一個(gè)Link Code字段,倘若沒(méi)有后續(xù)的鏈路類型,則到該分組的結(jié)尾。Neighbor Interface Address:鄰居節(jié)點(diǎn)的地址列表。每一種鏈路類型之后 都會(huì)緊跟若干個(gè)鄰居地址列表,表明發(fā)送HELLO分組的節(jié)點(diǎn)到這些鄰居列表中的所有節(jié)點(diǎn) 的鏈路類型是前面Link Code中給出的鏈路類型。2.圖3給出了改進(jìn)的HELLO消息格式,它與傳統(tǒng)的HELLO控制消息相比沒(méi)有增加 消息大小,但是把消息中的一個(gè)Reversed字段改為Encrypt字段(放置加密信息)。在HELLO消息發(fā)送過(guò)程中提供密鑰認(rèn)證,該字段提供16位,利用SHAl算法對(duì)指 定密鑰進(jìn)行加密,每個(gè)節(jié)點(diǎn)發(fā)送時(shí)進(jìn)行加密,接收到消息后進(jìn)行解密認(rèn)證,如果認(rèn)證失敗則 認(rèn)為該消息非法,則丟棄該消息。二、方法流程
1、針對(duì)Mra節(jié)點(diǎn)的攻擊分析
OLSR是一種先應(yīng)式的網(wǎng)絡(luò)表現(xiàn)在節(jié)點(diǎn)定時(shí)廣播HELLO和TC消息,HELLO消息主要用 于實(shí)現(xiàn)鏈路偵測(cè)、鄰居偵聽(tīng)的功能,以此建立節(jié)點(diǎn)的本地鏈路信息表,同時(shí)也用于向鄰居節(jié) 點(diǎn)通告本節(jié)點(diǎn)的MPR節(jié)點(diǎn)選擇;TC消息用于執(zhí)行MPR Elector鏈路狀態(tài)聲明,使得每個(gè) 節(jié)點(diǎn)都能夠感知全網(wǎng)拓?fù)鋱D。OLSR協(xié)議的主要工作過(guò)程為首先,節(jié)點(diǎn)之間周期性地互相 發(fā)送HELLO消息來(lái)完成鄰居探測(cè),鄰居探測(cè)也可以分為鄰居節(jié)點(diǎn)探測(cè)、二跳鄰居節(jié)點(diǎn)探測(cè) 和對(duì)鄰居關(guān)系變化的響應(yīng);其次,被選為MPR的節(jié)點(diǎn)才會(huì)把TC分組消息發(fā)送到全網(wǎng),這可 以大幅度減少控制消息的洪泛規(guī)模;最后是構(gòu)建路由表,每個(gè)節(jié)點(diǎn)周期性地通過(guò)它周?chē)?MPR節(jié)點(diǎn)傳播TC消息到網(wǎng)絡(luò)中的所有節(jié)點(diǎn),消息中包含了該節(jié)點(diǎn)及其MPR selector之間 的鏈路,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)通過(guò)接收到的TC消息建立它的拓?fù)浔?,然后再利用最短路徑?法來(lái)計(jì)算出它的路由表。由此可以看出如果能夠?qū)崿F(xiàn)對(duì)網(wǎng)絡(luò)中某個(gè)或某些Mra節(jié)點(diǎn)的攻擊便能夠使得網(wǎng)絡(luò)中消息傳送中斷甚至是整個(gè)網(wǎng)絡(luò)的癱瘓,同時(shí)如果攻擊者使用另外一個(gè) 節(jié)點(diǎn)來(lái)代替受攻擊節(jié)點(diǎn)作為網(wǎng)絡(luò)中的一個(gè)Mra節(jié)點(diǎn),那么該節(jié)點(diǎn)可以在被攻擊網(wǎng)絡(luò)毫無(wú)感 覺(jué)的情況下截獲其中的消息。在戰(zhàn)場(chǎng)環(huán)境下可以攻擊對(duì)方的網(wǎng)絡(luò)節(jié)點(diǎn)以達(dá)到竊取或破壞 對(duì)方機(jī)密消息的目的。經(jīng)過(guò)對(duì)OLSR協(xié)議的分析發(fā)現(xiàn)每個(gè)節(jié)點(diǎn)的HELLO消息中都帶有一個(gè) willingness的字段,該字段表示發(fā)送消息的節(jié)點(diǎn)作為MTO節(jié)點(diǎn)的意愿程度,常用的有五種 類型WILL_NEVER表示節(jié)點(diǎn)不能作為MPR節(jié)點(diǎn);WILL_ALWAYS表示節(jié)點(diǎn)必須被選擇為MPR ; WILL_DEFAULT表示節(jié)點(diǎn)可作為MI3R但不是必須的,視具體的算法而定;WILL_L0W表示節(jié)點(diǎn) 作為MI3R節(jié)點(diǎn)的優(yōu)先級(jí)較低;WILL_HIGH表示節(jié)點(diǎn)作為MI3R節(jié)點(diǎn)的優(yōu)先級(jí)較高。默認(rèn)狀態(tài) 為 WILL_DEFAULT。針對(duì)Mra節(jié)點(diǎn)的攻擊方案就是針對(duì)其中的willingness字段,具體方案為如圖4 正常節(jié)點(diǎn)為12個(gè),gl, g2為攻擊節(jié)點(diǎn)。首先在被攻擊節(jié)點(diǎn)1處安排兩個(gè)攻擊節(jié)點(diǎn)gl、g2, gl用于模擬被攻擊節(jié)點(diǎn)1向周?chē)惶従庸?jié)點(diǎn)發(fā)送HELLO消息,不過(guò)其中的willingness 字段值為WILL_NEVER,使得被攻擊節(jié)點(diǎn)不能作為MPR節(jié)點(diǎn),從而中斷0節(jié)點(diǎn)與3節(jié)點(diǎn)的通 訊。而且通過(guò)仿真發(fā)現(xiàn)通過(guò)修改攻擊節(jié)點(diǎn)gl發(fā)送HELLO消息的頻率可以使得經(jīng)過(guò)被攻擊 節(jié)點(diǎn)1的數(shù)據(jù)丟包率不斷增加,當(dāng)頻率足夠大時(shí)0節(jié)點(diǎn)與3節(jié)點(diǎn)之間的聯(lián)系完全中斷。實(shí) 現(xiàn)了對(duì)已有鏈路的破壞后,另外攻擊節(jié)點(diǎn)g2開(kāi)始工作,代替原1節(jié)點(diǎn)把已經(jīng)斷開(kāi)的連接重 新連接,讓數(shù)據(jù)消息通過(guò)攻擊節(jié)點(diǎn)g2,從而達(dá)到攻擊網(wǎng)絡(luò)的目的,接下來(lái)就可以竊取或修改 消息。在實(shí)際攻擊中g(shù)l節(jié)點(diǎn)攻擊頻率可以直接設(shè)置為能使得網(wǎng)絡(luò)連接中斷的值,而g2節(jié) 點(diǎn)同時(shí)開(kāi)始工作,幾乎可以使得網(wǎng)絡(luò)無(wú)法感覺(jué)到被攻擊。用此方法在戰(zhàn)場(chǎng)上便可以在關(guān)鍵 時(shí)刻給對(duì)手以致命打擊。、針對(duì)MPR節(jié)點(diǎn)攻擊的防御
上一節(jié)給出的攻擊方案主要是針對(duì)HELLO消息中的willingness字段,所以接下來(lái)的 防御方案也是針對(duì)HELLO消息,提高對(duì)非法HELLO消息的過(guò)濾能力。防御方案通過(guò)對(duì)HELLO 消息加上兩層過(guò)濾來(lái)實(shí)現(xiàn)(如圖5所示)。第一通過(guò)分析HELLO消息的格式發(fā)現(xiàn),其中有一個(gè)預(yù)留字段,基于這樣一個(gè)字段 我們可以在不增加HELLO消息長(zhǎng)度的前提下給它加上驗(yàn)證來(lái)保證消息的安全。針對(duì)以上攻 擊采用以下的第一層過(guò)濾方案修改OLSR協(xié)議,給發(fā)送的HELLO消息的預(yù)留字段加上一個(gè) 加密的驗(yàn)證信息,而這個(gè)驗(yàn)證信息可以自由指定,但是必須保證大小不能超過(guò)16位表示范 圍的數(shù)或字符串,使用SHAl加密算法對(duì)信息進(jìn)行加密。每個(gè)HELLO消息都會(huì)在SHAl加密 的保護(hù)下發(fā)送,接收方在獲取消息后首先提取出預(yù)留字段數(shù)據(jù)進(jìn)行解密,如果解密信息和 指定驗(yàn)證信息不一樣則可以認(rèn)為該消息非法,選擇丟棄。通過(guò)這一層的過(guò)濾,在加密的保護(hù) 下能抵御大部分非法HELLO消息攻擊,但是SHAl加密算法并不是不可以破解,一旦這一層 防御被攻破還有以下第二層的有效過(guò)濾。第二 提取HELLO消息中的willingness字段并判斷其值是否為WILL_NEVER,如 果不是則說(shuō)明沒(méi)有受到攻擊,正常處理HELLO消息;如果是則說(shuō)明網(wǎng)絡(luò)有可能受到攻擊。通 過(guò)在協(xié)議中添加HELLO消息跟蹤監(jiān)控功能,可以在這個(gè)時(shí)候監(jiān)控發(fā)送該HELLO消息的一跳 鄰居節(jié)點(diǎn)發(fā)送消息的頻率,如果在正常HELLO消息發(fā)送時(shí)間間隔過(guò)程中發(fā)現(xiàn)接收到多個(gè)同 一鄰居節(jié)點(diǎn)發(fā)送過(guò)來(lái)的消息(本文采用的是當(dāng)前HELLO消息頻率 > 原頻率的25倍),可以認(rèn) 為網(wǎng)絡(luò)受到攻擊,此時(shí)選擇丟棄該HELLO消息,否則正常處理消息。
有益效果
本發(fā)明針對(duì)Ad Hoc網(wǎng)絡(luò)OLSR協(xié)議中MPR節(jié)點(diǎn)的攻擊,提出了一種解決方案。在攻擊 情況下整個(gè)網(wǎng)絡(luò)有癱瘓甚至有被攻擊者竊取或篡改數(shù)據(jù)的危險(xiǎn),但是帶有防御功能的網(wǎng)絡(luò) 能夠通過(guò)自身消息的密碼保護(hù)和對(duì)消息發(fā)送頻率的檢測(cè),達(dá)到雙重安全保障的目的,從而 使網(wǎng)絡(luò)完全避免受到此類攻擊,保證數(shù)據(jù)傳輸?shù)陌踩院涂煽啃浴?br>
圖1蟲(chóng)洞攻擊示意圖。圖2是原HELLO消息格式。圖3是修改后的HELLO消息格式。圖4基于MPR攻擊模擬圖。圖5針對(duì)MPR節(jié)點(diǎn)攻擊的防御流程圖。
具體實(shí)施例方式根據(jù)圖4場(chǎng)景圖假設(shè)0節(jié)點(diǎn)需要和3節(jié)點(diǎn)進(jìn)行通訊,gl和g2是攻擊節(jié)點(diǎn),然后結(jié) 合圖5的流程圖給出以下攻防過(guò)程
1. OLSR是先應(yīng)式的網(wǎng)絡(luò),在網(wǎng)絡(luò)初始階段整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)已經(jīng)建立好。2.首先在未受攻擊的網(wǎng)絡(luò)情況下,0節(jié)點(diǎn)能順利向3節(jié)點(diǎn)發(fā)送消息。3.此時(shí)攻擊節(jié)點(diǎn)gl和g2發(fā)動(dòng)攻擊,攻擊是針對(duì)2節(jié)點(diǎn),模擬2節(jié)點(diǎn)向周?chē)?jié)點(diǎn) 發(fā)送HELLO消息,從而完全取代2節(jié)點(diǎn),此時(shí)網(wǎng)絡(luò)中消息已經(jīng)完全暴露在攻擊者面前。4.針對(duì)以上攻擊設(shè)計(jì)以下防御流程
1)修改OLSR協(xié)議,將發(fā)送的HELLO消息的預(yù)留字段Reversed字段改為放置加密信息 的Encrypt字段,大小不超過(guò)16位表示范圍的數(shù)或字符串,使用SHAl加密算法對(duì)信息進(jìn)行 加密,網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)對(duì)接收到的HELLO消息進(jìn)行解密檢查,若其中的Encrypt內(nèi)容為空, 或者經(jīng)過(guò)驗(yàn)證不是原來(lái)的加密信息則丟棄該消息,否則進(jìn)入2)。2)獲取HELLO消息中的Willingness字段,判斷是否為WILL_NEVER,若不是則認(rèn) 為該消息是安全的,正常處理消息,否則進(jìn)入3)。3)根據(jù)協(xié)議中添加的HELLO消息跟蹤監(jiān)控功能,監(jiān)控該消息源發(fā)送的消息頻率, 如果其頻率大于原頻率的25倍則可以認(rèn)為消息非法,丟棄該消息,否則正常處理消息。
權(quán)利要求
1. 一種OLSR路由協(xié)議中MPR節(jié)點(diǎn)攻擊的防御方案,網(wǎng)絡(luò)結(jié)構(gòu)為采用OLSR路由協(xié)議的 先應(yīng)式網(wǎng)絡(luò),各個(gè)節(jié)點(diǎn)之間可以順利發(fā)送消息,其特點(diǎn)在于包含以下步驟第一步修改OLSR協(xié)議,將用于實(shí)現(xiàn)鏈路偵測(cè)、鄰居偵聽(tīng)的HELLO消息的Reversed字 段改為放置加密信息的Encrypt字段,大小不超過(guò)16位表示范圍的數(shù)或字符串,使用SHAl 加密算法對(duì)信息進(jìn)行加密,接收方在獲取消息后首先提取出Encrypt字段數(shù)據(jù)進(jìn)行解密;第二步網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)對(duì)接收到的HELLO消息進(jìn)行檢查,接收方在獲取消息后首先 提取出Encrypt字段的加密數(shù)據(jù)進(jìn)行解密,若其中的Encrypt字段為空,或者經(jīng)過(guò)驗(yàn)證不是 原來(lái)的加密信息則丟棄該消息,否則進(jìn)入第三步;第三獲取HELLO消息中的Willingness字段,判斷是否為WILL_NEVER,若不是則認(rèn) 為該消息是安全的,正常處理消息;第四步在協(xié)議中添加HELLO消息跟蹤監(jiān)控,監(jiān)控發(fā)送該HELLO消息的一跳鄰居節(jié)點(diǎn) 發(fā)送消息的頻率,如果在正常HELLO消息發(fā)送時(shí)間間隔過(guò)程中發(fā)現(xiàn)接收到多個(gè)同一鄰居節(jié) 點(diǎn)發(fā)送過(guò)來(lái)的消息,HELLO消息頻率大于原頻率的25倍,則認(rèn)為網(wǎng)絡(luò)受到攻擊,此時(shí)選擇丟 棄該HELLO消息,否則正常處理消息。
全文摘要
本發(fā)明涉及一種AdHoc網(wǎng)絡(luò)中節(jié)點(diǎn)攻擊的防御方案。包含以下步驟修改OLSR協(xié)議,將Reversed字段改為放置加密信息的Encrypt字段,接收方對(duì)接收到的HELLO消息進(jìn)行解密,經(jīng)過(guò)驗(yàn)證其中的Encrypt字段為空,或者不是原來(lái)的加密信息則丟棄該消息;獲取HELLO消息中的Willingness字段,判斷是否為WILL_NEVER,若不是則認(rèn)為該消息是安全的;在協(xié)議中添加HELLO消息跟蹤監(jiān)控,監(jiān)控發(fā)送該HELLO消息的一跳鄰居節(jié)點(diǎn)發(fā)送消息的頻率,HELLO消息頻率大于原頻率的25倍,則認(rèn)為網(wǎng)絡(luò)受到攻擊,此時(shí)選擇丟棄該HELLO。使用本發(fā)明方法,可以使網(wǎng)絡(luò)完全避免受到此類攻擊,保證數(shù)據(jù)傳輸?shù)陌踩院涂煽啃浴?br>
文檔編號(hào)H04W84/18GK102098669SQ20111005716
公開(kāi)日2011年6月15日 申請(qǐng)日期2011年3月10日 優(yōu)先權(quán)日2011年3月10日
發(fā)明者張登銀, 王振興, 程春玲 申請(qǐng)人:南京郵電大學(xué)