馮 欣
(長(zhǎng)春理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,吉林長(zhǎng)春 130022)
在理想的Adhoc網(wǎng)絡(luò)中,節(jié)點(diǎn)是工作在一個(gè)開(kāi)放、合作和高度任意的環(huán)境中的。但是在實(shí)際的網(wǎng)絡(luò)環(huán)境中,幾乎無(wú)時(shí)無(wú)刻都有著潛在的攻擊者,他們希望能夠通過(guò)滲入網(wǎng)絡(luò)達(dá)到執(zhí)行竊聽(tīng)或轉(zhuǎn)換信息的攻擊目的。蟲(chóng)洞攻擊(Wormhole Attack)[1]就是一種針對(duì)Adhoc網(wǎng)絡(luò)中路由協(xié)議,特別是帶防御性的路由協(xié)議的嚴(yán)重攻擊,它是在兩個(gè)串謀惡意結(jié)點(diǎn)間建立一條私有通道,攻擊者在網(wǎng)絡(luò)中的一個(gè)位置上記錄數(shù)據(jù)包或位置信息,通過(guò)此私有通道將竊取到的信息傳遞到網(wǎng)絡(luò)的另外一個(gè)位置。一般的,私有通道的距離會(huì)大于單跳無(wú)線傳輸范圍。因此,數(shù)據(jù)包如果要通過(guò)私有通道來(lái)傳遞的話,會(huì)比通過(guò)正常多跳路徑傳遞所需要時(shí)間短。由此可見(jiàn),蟲(chóng)洞是有益無(wú)害的,那么如何防御蟲(chóng)洞攻擊就成為了Adhoc網(wǎng)絡(luò)的一個(gè)重要研究方向。
蟲(chóng)洞攻擊的一般模型如圖1所示。
X和Y是兩個(gè)相對(duì)獨(dú)立的網(wǎng)絡(luò),節(jié)點(diǎn)M處于X中,而節(jié)點(diǎn)N處于Y的范圍內(nèi)。由圖可知,節(jié)點(diǎn)M和節(jié)點(diǎn)N并不是鄰居節(jié)點(diǎn),但是假設(shè)節(jié)點(diǎn)a和d是網(wǎng)絡(luò)中的惡意節(jié)點(diǎn)。兩節(jié)點(diǎn)通過(guò)某種手段形成“最短隧道”[2-5],表面上使得M和N兩點(diǎn)間的距離最小,當(dāng)節(jié)點(diǎn)M得知通往N處有一條最短路徑時(shí),就會(huì)將要傳輸?shù)男畔⒔?jīng)由“最短隧道”傳向N點(diǎn),此時(shí),M和N就會(huì)竊取到M和N之間的傳輸信息,以達(dá)到破壞網(wǎng)絡(luò)的目的。
圖1 蟲(chóng)洞攻擊一般模型
對(duì)于以上所提出的蟲(chóng)洞攻擊問(wèn)題,已有很多學(xué)者在研究,也提出了一些相關(guān)的防御或檢測(cè)蟲(chóng)洞的方法。
文獻(xiàn)[6]引入了Leash的概念來(lái)檢測(cè)蟲(chóng)洞攻擊。Leash與每一跳相關(guān)聯(lián)。因此,數(shù)據(jù)包的每次傳輸都需要一個(gè)新的Leash,就是一個(gè)標(biāo)志位(這里包括時(shí)間Leash和地理Leash)。但無(wú)論哪種Leash,都需要數(shù)據(jù)包中的位置信息或時(shí)間信息,這樣會(huì)增加網(wǎng)絡(luò)負(fù)載。文獻(xiàn)[7]提出了一種用定向天線方法來(lái)檢測(cè)蟲(chóng)洞攻擊。這種方法是使用數(shù)據(jù)包的到達(dá)角度來(lái)檢測(cè)數(shù)據(jù)包是否來(lái)自一個(gè)適當(dāng)?shù)泥従庸?jié)點(diǎn)。由于使用了定向天線,因此這個(gè)角度信息是可以得到的。使用數(shù)據(jù)包的到達(dá)角度信息可獲得節(jié)點(diǎn)鄰居集合的準(zhǔn)備信息。這樣由于攻擊信息來(lái)自錯(cuò)誤的鄰居節(jié)點(diǎn),因此可以檢測(cè)蟲(chóng)洞攻擊。但是這種方法要求有一個(gè)理想條件:定向天線必須對(duì)準(zhǔn)的非常完美。這在現(xiàn)實(shí)中比較難做到;文獻(xiàn)[8]提出了一個(gè)圖論的框架為蟲(chóng)洞攻擊模型。該協(xié)議假設(shè)的向?qū)Ч?jié)點(diǎn)都明確地知道自己的位置,本協(xié)議有高效的傳輸率和不同的天線特性。
文中在前人思想上,以 OLSR協(xié)議[9]為基礎(chǔ),提出了一種更安全的優(yōu)化鏈路狀態(tài)路由協(xié)議(Secure Optimistic Link State Routing Protocol,SOLSR協(xié)議)
在文獻(xiàn)[10]提出的OLSR協(xié)議基礎(chǔ)上使用了本地廣播密鑰的思想:讓源節(jié)點(diǎn)對(duì)自己所發(fā)出的數(shù)據(jù)包進(jìn)行加密,然后在不同的跳數(shù)范圍內(nèi)改變密鑰,使得不同地理區(qū)域中數(shù)據(jù)包的密鑰不同,即使讓被動(dòng)攻擊的惡意節(jié)點(diǎn)獲取到,惡意節(jié)點(diǎn)也不能通過(guò)解密來(lái)獲取數(shù)據(jù)包信息,從而也不能向其它節(jié)點(diǎn)進(jìn)行重放。為了簡(jiǎn)化算法思想,文中做出以下假設(shè):
1)所有網(wǎng)絡(luò)中的節(jié)點(diǎn)已經(jīng)都知道M和N兩點(diǎn)是蟲(chóng)洞節(jié)點(diǎn)。即在每個(gè)節(jié)點(diǎn)的路由表當(dāng)中,只要有經(jīng)過(guò)M或者是N的路由,就被認(rèn)為是“最短隧道”。
2)如果當(dāng)本Adhoc網(wǎng)絡(luò)中的一個(gè)源節(jié)點(diǎn)(即廣播發(fā)送者)S需要向n個(gè)節(jié)點(diǎn)(即廣播接收者)R1,R2,…,Rn進(jìn)行安全廣播時(shí),即在圖1中,如果節(jié)點(diǎn)a欲向節(jié)點(diǎn)d發(fā)送信息時(shí),相當(dāng)于在網(wǎng)絡(luò)初始化或網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的時(shí)候。文中還假設(shè)基站與周?chē)?jié)點(diǎn)已經(jīng)進(jìn)行了相互認(rèn)證并建立了單播會(huì)話密鑰。關(guān)于節(jié)點(diǎn)間相互認(rèn)證以及單播會(huì)話密鑰建立的解決方案已經(jīng)非常多,而且大多方案都已成熟[11]。
設(shè)定:(G1,+)和(G2,?)為兩個(gè)階均為p的循環(huán)群,p為質(zhì)數(shù),并且滿足G1中Diffie-Hellman計(jì)算問(wèn)題[12]為困難問(wèn)題;令P為G1的生成元;令e為G1和G2上的雙線性變換,即e:G1×G2→G2。
首先,源節(jié)點(diǎn)a在Z*q中隨機(jī)選擇n+1個(gè)不同的元素v0,v1,…,vn∈Z*q,以及元素Q1,Q2∈G1,同時(shí),a選取自己的主密鑰K∈Z*q和一次性秘密整數(shù)z,構(gòu)造一次多項(xiàng)式f(x)=zx+K∈Zp[x]。然后,再計(jì)算下面信息:
其中(QK,Q1,Q2,v0,…,vn,V0)可以作為公共信息在網(wǎng)絡(luò)其它節(jié)點(diǎn)中以明文的形式廣播;而Vi將作為Ri(任意一個(gè)節(jié)點(diǎn))的廣播解密密鑰(i =1,2,…,n),通過(guò)事先建立的單播會(huì)話密鑰加密發(fā)送。
為了在Ri中分發(fā)廣播密鑰Kb∈G2,源節(jié)點(diǎn)a首先隨機(jī)選擇一次性秘密整數(shù)r∈,并計(jì)算以下信息:
然后,將Cb作為公共信息在Ri中以明文形式進(jìn)行廣播。
為了達(dá)到在不同區(qū)域的節(jié)點(diǎn)有不同的密鑰,加強(qiáng)傳輸信息的保密機(jī)制,采取在每個(gè)節(jié)點(diǎn)路由信息表的信息字段中增加一個(gè) Hop-traverse字段。SOLSR協(xié)議通過(guò)鏈路狀態(tài)更新消息(Link State Update,LSU)來(lái)廣播自己的直接鄰居,LSU消息的源發(fā)節(jié)點(diǎn)在RLSU字段指定其廣播區(qū)域的半徑r,然后它選擇一個(gè)隨機(jī)數(shù)x,并對(duì)其散列得到散列值h(x)。h(x)被放到Hop-traverse字段。隨后轉(zhuǎn)發(fā)LSU消息的節(jié)點(diǎn)對(duì) Hop-traverse字段進(jìn)行散列并用該值做字段替換,即Hoptraverse=h(Hop-traverse)。S_L_E是一個(gè)32位的序列號(hào),隨著節(jié)點(diǎn)生成新的LSU消息而遞增。節(jié)點(diǎn)也可以將認(rèn)證公共密鑰附加在LSU消息中。這樣就做到了保證收到LSU消息的節(jié)點(diǎn)可以對(duì)數(shù)據(jù)包進(jìn)行區(qū)域性加密。LSU消息首部格式[13]設(shè)計(jì)見(jiàn)表1。
表1 LSU消息首部格式
當(dāng)接收者Ri接收到Cb后,可以通過(guò)下述方法解密得到廣播密鑰Kb。
首先,Ri構(gòu)造包含兩個(gè)元素的授權(quán)子集F= {v0,vi},并計(jì)算如下信息:
其次,Ri計(jì)算廣播密鑰Kb方法如下:
設(shè)定有兩種攻擊,可以分析到攻擊結(jié)果分別如下:
1)如果攻擊M者能夠獲得源節(jié)點(diǎn)a的主密鑰K,那么,它就能夠很容易地從Cb中計(jì)算出廣播密鑰Kb。但是,由公共信息QK計(jì)算K將面臨橢圓曲線離散對(duì)數(shù)問(wèn)題。而此問(wèn)題對(duì)于一般的節(jié)點(diǎn)來(lái)說(shuō)很難做到。所以此次攻擊就不能成功。
2)如果攻擊者能夠獲取網(wǎng)絡(luò)中任意一個(gè)節(jié)點(diǎn)Ri的密鑰Vi(i=1,2,…,n)。那么它就可以像Ri一樣計(jì)算出廣播密鑰Kb。但是文中所設(shè)計(jì)的方案中,Ri的密鑰Vi是通過(guò)Ri與源節(jié)點(diǎn)之間已協(xié)商的單播會(huì)話加密密鑰進(jìn)行加密的。只有攻擊者已經(jīng)攻破了Ri與a節(jié)點(diǎn)之間的安全信道,否則惡意節(jié)點(diǎn)將無(wú)法通過(guò)這種方式獲得Vi。
在設(shè)計(jì)好參數(shù)以后,用NS2對(duì)文中的網(wǎng)絡(luò)環(huán)境進(jìn)行模擬,網(wǎng)絡(luò)模擬時(shí)間設(shè)置為120 s,節(jié)點(diǎn)傳輸半徑為500 m。
蟲(chóng)洞攻擊如圖2所示。
圖2 蟲(chóng)洞攻擊圖示
圖2中模擬出了圖1給出的網(wǎng)絡(luò)情景,由a點(diǎn)向d傳輸?shù)臄?shù)據(jù)包經(jīng)過(guò)了文中設(shè)置的“最短隧道”,而在數(shù)據(jù)傳輸過(guò)程中,黑洞節(jié)點(diǎn)M,N發(fā)生相繼的丟包,以此來(lái)仿真黑洞攻擊,如圖3所示。
圖3 蟲(chóng)洞節(jié)點(diǎn)丟包
在場(chǎng)景設(shè)置程序中,分別用OLSR協(xié)議和SOLSR協(xié)議,分析數(shù)據(jù)可得到如圖4所示的結(jié)果。
圖4 協(xié)議性能對(duì)比分析
圖4說(shuō)明,隨著時(shí)間幀的移動(dòng),SOLSR協(xié)議中源節(jié)點(diǎn)a不經(jīng)過(guò)節(jié)點(diǎn)M和N(最短隧道)向節(jié)點(diǎn)d發(fā)送信息的分組包數(shù)一直維持在12 K左右,在一般的網(wǎng)絡(luò)環(huán)境中,這是比較正常的;但是在OLSR協(xié)議中,源節(jié)點(diǎn)a向目的節(jié)點(diǎn)d發(fā)送的信息將全部經(jīng)過(guò)M和N點(diǎn),分組包維持在50 K個(gè)。幾乎是正常網(wǎng)絡(luò)下的5倍。這就表明蟲(chóng)洞隧道大量轉(zhuǎn)發(fā)了源節(jié)點(diǎn)到目的節(jié)點(diǎn)的數(shù)據(jù)包,會(huì)造成極大危害。
在蟲(chóng)洞節(jié)點(diǎn)已知的情況下,對(duì)已有的先驗(yàn)式路由協(xié)議OLSR的改進(jìn),提出了安全的OLSR協(xié)議。本協(xié)議利用對(duì)數(shù)據(jù)包在地理位置上區(qū)域性加密的方法成功地防御蟲(chóng)洞的攻擊。蟲(chóng)洞攻擊分為主動(dòng)攻擊和被動(dòng)攻擊,文中提出的方法只能對(duì)被動(dòng)攻擊的惡意節(jié)點(diǎn)進(jìn)行防御,使其不能真正地獲取到數(shù)據(jù)包的信息,但是如果對(duì)于主動(dòng)攻擊的節(jié)點(diǎn)來(lái)說(shuō),當(dāng)節(jié)點(diǎn)收到發(fā)送節(jié)點(diǎn)端的數(shù)據(jù)包時(shí),無(wú)論惡意節(jié)點(diǎn)是否能解密數(shù)據(jù),它都將會(huì)對(duì)源節(jié)點(diǎn)進(jìn)行惡意攻擊,這也是以后研究的重點(diǎn)。
[1] Ritesh M aheshwari,Jie Gao,Samir R Das.Detecting wormhole attack in wireless networks using connectivity information[J].Stony Brook,NY,2000,5:1794-1800.
[2] Yih-Chun Hu,Adrian Perrig,David B Johnson. Wormhole detection in wireless Ad Hoc networks [J].Rice University Department of Computer Science Technical Report TR01-384 December 17,2002,15(7):380-384.
[3] 劉偉,柴喬林.利用蟲(chóng)洞原理抵御黑洞攻擊的方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(20):4888-4890.
[4] 柳楠,韓芳溪,張維勇,等.移動(dòng)Ad hoc網(wǎng)絡(luò)中的特殊攻擊[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(6):1486-1488.
[5] 姚勝.基于OLSR路由協(xié)議的蟲(chóng)洞攻擊防御策略研究[D]:[碩士學(xué)位論文].西安:電子科技大學(xué),2009.
[6] Y C Hu,A Perrig,D Johnson.Packet leashes:a defense against wormhole attack in wireless networks[C]//INFOCOM,2003.
[7] L Hu,D Evans.Using directional antennas to prevent wormhole at-tacks[C]//Network and Distributed System Security Symposium(NDSS),2004.
[8] R Poovendran,L Lazos.A graph theoretic framework for preventing the wormhole attack in wireless ad hoc networks[C]//ACM Journal of Wireless Networks(WINET),2005.
[9] 柳楠.針對(duì)“蟲(chóng)洞”攻擊的移動(dòng)Ad hoc網(wǎng)絡(luò)安全路由及仿真實(shí)現(xiàn)的研究[D]:[碩士學(xué)位論文].濟(jì)南:山東大學(xué),2005.
[10] 洪亮,洪帆,彭冰,等.一種基于鄰居信任評(píng)估的蟲(chóng)洞防御機(jī)制[J].計(jì)算機(jī)科學(xué),2006,33(8):130-133.
[11] 龐遼軍.無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)間認(rèn)證及密鑰協(xié)商協(xié)議[J].傳感技術(shù)學(xué)報(bào),2008,21(8):1422-1426.
[12] 龐遼軍,李慧賢,焦李成,等.基于秘密共享的無(wú)線傳感器網(wǎng)絡(luò)廣播密鑰分發(fā)協(xié)議[J].傳感技術(shù)學(xué)報(bào),2008,21(10):1777.
[13] Farooq Anjum,Petros Mouchtaris.Security for Wireless Ad Hoc Networks[M].錢(qián)權(quán),譯.北京:清華大學(xué)出版社,2009:103-107.
長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào)2010年6期