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