游 林,楊 露,袁猷南
(杭州電子科技大學(xué)通信工程學(xué)院,杭州 310018)
隨著傳感技術(shù)、通信技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,無線傳感器網(wǎng)絡(luò)(WSN,Wireless Sensor Networks)將會深入到我們生活中的各個(gè)方面。它有一些典型的應(yīng)用,如應(yīng)急響應(yīng)信息,能量管理,醫(yī)療監(jiān)測,后勤存貨管理,戰(zhàn)場管理等[1]。隨著傳感器網(wǎng)絡(luò)相關(guān)的硬件和軟件技術(shù)的不斷發(fā)展,WSN必將深入到人類生活的方方面面[2]。由于WSN一般部署在惡劣環(huán)境、無人照看或者敵方區(qū)域,WSN的安全問題顯得尤為重要。
廣播認(rèn)證是傳感器網(wǎng)絡(luò)中的一項(xiàng)重要應(yīng)用,因?yàn)樵赪SN中基站經(jīng)常需要通過無線通信的方式廣播指令和數(shù)據(jù)給網(wǎng)絡(luò)的傳感器節(jié)點(diǎn)[3]。一般有兩種提供廣播認(rèn)證服務(wù)的解決辦法:μTESLA[1]和數(shù)字簽名[4]。μTESLA被證實(shí)存在認(rèn)證延時(shí),易遭受DoS攻擊和需要時(shí)間同步等缺點(diǎn)。而最近的研究表明有可能將公鑰加密技術(shù)應(yīng)用到資源有限的傳感器平臺上,采用公鑰加密技術(shù)進(jìn)行廣播認(rèn)證是很有吸引力的,但公鑰加密操作引入的能量消耗很大。例如文獻(xiàn)[4]指出認(rèn)證一個(gè)40 bytes的ECDSA簽名需要耗時(shí)大約1.96s,真正對這樣的簽名進(jìn)行認(rèn)證操作則需要耗能38.88 mJ[5]。
由此可見,如果采用公鑰機(jī)制的廣播認(rèn)證協(xié)議,那么該網(wǎng)絡(luò)很容易遭受DoS攻擊。例如當(dāng)直接將ECDSA應(yīng)用到廣播認(rèn)證中而不加任何保護(hù)措施時(shí),攻擊者可以很簡單的廣播大量虛假數(shù)據(jù)包,迫使接收了這些虛假數(shù)據(jù)包的節(jié)點(diǎn)進(jìn)行大量不必要的簽名認(rèn)證操作,直到消耗掉節(jié)點(diǎn)的所有能量。
為此必須采取措施來防御基于數(shù)字簽名的廣播認(rèn)證中的DoS攻擊,近年來對這方面的研究也取得了一些進(jìn)展??偨Y(jié)起來主要有以下三類防御廣播認(rèn)證中的DoS攻擊的措施:
(1)對廣播包進(jìn)行簽名認(rèn)證操作前先進(jìn)行弱認(rèn)證[5-6]:文獻(xiàn)[5]提出基于加密 puzzles問題的弱認(rèn)證策略來減少不必要的簽名認(rèn)證操作。文獻(xiàn)[6]提出基于組和基于密鑰鏈的兩種預(yù)認(rèn)證濾波器來對接收到的數(shù)據(jù)包先進(jìn)行弱認(rèn)證操作。
(2)利用動態(tài)窗口協(xié)議來減少 DoS 攻擊[7-8]:文獻(xiàn)[7]利用 AIMD(Additive Increase Multiplicative Decrease)動態(tài)窗口協(xié)議[7],對新收到的數(shù)據(jù)包進(jìn)行“先認(rèn)證再轉(zhuǎn)播”還是“先轉(zhuǎn)播再認(rèn)證”判斷來控制虛假數(shù)據(jù)包的傳輸。文獻(xiàn)[8]采用基于多跳認(rèn)證的動態(tài)窗口,通過動態(tài)控制窗口大小來減少DoS攻擊。
(3)利用單向 Hash 鏈和鄰居節(jié)點(diǎn)表信息[9-10]:文獻(xiàn)[9]和[10]通過利用單向Hash鏈以及節(jié)點(diǎn)中存儲的鄰居節(jié)點(diǎn)表來對收到的數(shù)據(jù)包先預(yù)判,然后再決定是否進(jìn)行簽名認(rèn)證操作從而防御DoS攻擊。
為了提高無線傳感器網(wǎng)絡(luò)防御廣播認(rèn)證中DoS攻擊的能力,減少DoS攻擊對網(wǎng)絡(luò)的破壞范圍,本文提出了一種基于弱認(rèn)證和信譽(yù)等級的協(xié)議(Week Authentication and Reputation Grade-based Scheme,以下簡稱WARGS)來防御廣播認(rèn)證中的DoS攻擊。
無線傳感器網(wǎng)絡(luò)中的網(wǎng)絡(luò)模型主要有分布式和層次式兩大類。當(dāng)WSN規(guī)模較大時(shí)一般采用層次式網(wǎng)絡(luò)模型。在層次式網(wǎng)絡(luò)模型中,整個(gè)網(wǎng)絡(luò)被分為很多簇,其結(jié)構(gòu)如圖1所示。該網(wǎng)絡(luò)以簇為基本單位,一個(gè)簇相當(dāng)于一個(gè)子網(wǎng)絡(luò),它由簇頭和普通傳感器節(jié)點(diǎn)組成?;驹谠摼W(wǎng)絡(luò)中作為信息的發(fā)起源,計(jì)算能力強(qiáng),擁有足夠能量來支撐它所覆蓋網(wǎng)絡(luò)區(qū)域的運(yùn)行?;具€有足夠的內(nèi)存來存儲密鑰。簇頭擁有相比普通節(jié)點(diǎn)更強(qiáng)的計(jì)算能力和更大的存儲空間,在能量方面也比普通節(jié)點(diǎn)更充足。
設(shè)n1,n2,…,nt為兩兩互素的正整數(shù),令N=n1n2…nt=n1N1=n2N2= …=ntNt,其中Ni=N/ni,i=1,2,…,t。則同余方程組
有唯一解
其中是滿足一次同余方程=1modni,i=1,2,…,t的正整數(shù)解。
本文假設(shè)網(wǎng)絡(luò)中的廣播認(rèn)證采用基于公鑰簽名的認(rèn)證機(jī)制,廣播源能進(jìn)行基于公鑰的簽名產(chǎn)生和認(rèn)證操作,傳感器節(jié)點(diǎn)能進(jìn)行基于公鑰的簽名認(rèn)證操作。假設(shè)網(wǎng)絡(luò)中已經(jīng)應(yīng)用了公鑰密碼體制如ECC,每個(gè)廣播數(shù)據(jù)包都是采用數(shù)字簽名的。對于層次式的WSN網(wǎng)絡(luò)結(jié)構(gòu)基站進(jìn)行廣播數(shù)據(jù)時(shí)先把廣播包廣播給簇頭,然后簇頭再把廣播包廣播給節(jié)點(diǎn)。同時(shí)假設(shè)采用的廣播協(xié)議是泛洪協(xié)議,當(dāng)然也可以采用其它廣播協(xié)議。
攻擊者模型是建立在以下假設(shè)條件下的:攻擊者可以對網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包進(jìn)行偷聽,注入,篡改操作,攻擊者可能是能量充足和計(jì)算機(jī)能力很強(qiáng)的節(jié)點(diǎn)(比如筆記本);攻擊者可能利用多個(gè)成對的節(jié)點(diǎn)來加速攻擊,多個(gè)攻擊者之間進(jìn)行串謀攻擊,在網(wǎng)絡(luò)中的不同位置制造蟲洞(wormholes);但是攻擊者不能俘獲廣播源,比如基站或簇頭,所以攻擊者就不能偽造具有合法數(shù)字簽名的廣播包。
WARGS的初衷就是通過弱認(rèn)證和信譽(yù)等級管理的辦法來減少攻擊者發(fā)動地針對廣播認(rèn)證中的DoS攻擊對網(wǎng)絡(luò)的影響。換句話說,就是減少普通節(jié)點(diǎn)對虛假廣播數(shù)據(jù)包的認(rèn)證和轉(zhuǎn)發(fā)操作。
本文提出的WARGS主要由三個(gè)模塊組成,如圖2所示。它們分別是弱認(rèn)證模塊,信譽(yù)等級管理模塊和風(fēng)險(xiǎn)管理模塊。
圖2 WARGS框架結(jié)構(gòu)
圖2中弱認(rèn)證模塊的功能是節(jié)點(diǎn)對接收到的廣播數(shù)據(jù)包進(jìn)行弱認(rèn)證操作。信譽(yù)等級管理模塊的功能是節(jié)點(diǎn)對自己鄰居節(jié)點(diǎn)表中的節(jié)點(diǎn)的信譽(yù)等級進(jìn)行劃分和信譽(yù)值更新等操作。弱認(rèn)證和信譽(yù)等級管理兩者之間是有互操作的,這個(gè)下面會有介紹。風(fēng)險(xiǎn)管理模塊對網(wǎng)絡(luò)的風(fēng)險(xiǎn)進(jìn)行監(jiān)測,并根據(jù)監(jiān)測出的網(wǎng)絡(luò)風(fēng)險(xiǎn)狀況及時(shí)做出響應(yīng)。下面分別介紹這三個(gè)模塊。
本文采用的弱認(rèn)證方法是基于中國剩余定理和單向函數(shù)的一種認(rèn)證方法。這種認(rèn)證方法主要是針對層次式傳感器網(wǎng)絡(luò)結(jié)構(gòu)而提出的,當(dāng)然也可以應(yīng)用到一般的分布式網(wǎng)絡(luò)中。在層次式網(wǎng)絡(luò)中,當(dāng)基站要廣播數(shù)據(jù)包時(shí)它先將進(jìn)行了簽名操作的數(shù)據(jù)包廣播給簇頭,簇頭接收到廣播包之后先進(jìn)行認(rèn)證操作。如果認(rèn)證通過,則再把廣播包廣播給該簇內(nèi)的其它普通節(jié)點(diǎn)。這樣的話就存在針對簇頭和普通節(jié)點(diǎn)發(fā)動DoS攻擊的可能,為了防御這種攻擊,簇頭和普通節(jié)點(diǎn)對新接收的數(shù)據(jù)包需要先進(jìn)行弱認(rèn)證操作。為此,基站則需要先按照以下兩個(gè)步驟產(chǎn)生簇頭弱認(rèn)證所需要的參數(shù):
(1)生成單向密鑰鏈。設(shè)GF(p)是有限域,其中p為大素?cái)?shù),f:GF(p)→GF(p)是單向函數(shù),所謂單向函數(shù)即由y=f(x)來求x在計(jì)算上是不可能的。對于任意的KL∈GF(p),定義
這樣就有Kj=f(Kj+1),0≤j≤L-1。按照這樣的方法就可以生成如圖3所示的密鑰鏈。
圖3 單向密鑰鏈
假設(shè)網(wǎng)絡(luò)中含有N個(gè)簇頭,基站需要維系N條密鑰鏈。設(shè)f1,f2,…,fN是有限域GF(p)上的N個(gè)不同的單向函數(shù),一個(gè)簇用一條密鑰鏈。同時(shí)假設(shè)在網(wǎng)絡(luò)部署時(shí)每個(gè)簇頭i和簇頭i內(nèi)的其他節(jié)點(diǎn)已經(jīng)存儲了初始密鑰Ki,0和單向函數(shù)fi,其中 1≤i≤N。N條密鑰鏈的結(jié)構(gòu)如下圖4所示。
圖4 N條密鑰鏈的結(jié)構(gòu)
(2)根據(jù)中國剩余定理計(jì)算X。當(dāng)基站需要廣播第j個(gè)廣播包時(shí),它先解如下同余方程組得到Xj。
其中K1,j,K2,j,…,KN,j代表圖 4 從右到左數(shù)第j列密鑰,為了使得對于任意的 1≤i≤N,0≤j≤L-1 有Ki,j<ni成立,還需要滿足 min(n1,n2,…,nN)≥p。參數(shù)b≥L事先存儲在每個(gè)簇頭中,參數(shù)n1,n2,…,nN則分別秘密存儲在簇頭1,2,…,N中?;窘馔喾匠?3)得到唯一的Xj后,將廣播包packet(j)=j‖Xj‖Mj‖DSj廣播給所有簇頭,其中Mj是第j個(gè)要廣播的消息,DSj是對Mj進(jìn)行數(shù)字簽名得到的結(jié)果。
簇頭i收到基站廣播的數(shù)據(jù)包packet(j)之后,先進(jìn)行模運(yùn)算j=Xjmodb得到j(luò),并判斷j>k是否成立,其中k是簇頭存儲的最近認(rèn)證通過的廣播包索引號。如果不成立則直接丟棄數(shù)據(jù)包,否則繼續(xù)進(jìn)行模運(yùn)算Ki,j=Xjmodni得到Ki,j,然后根據(jù)Ki,k=fj-ki(Ki,j)是否成立來進(jìn)行弱認(rèn)證,其中Ki,k是簇頭存儲的最近認(rèn)證通過的密鑰值。如果最后對廣播包認(rèn)證成功則需要用Ki,j更新該值。
簇頭對廣播包認(rèn)證成功之后,就需要把廣播包廣播給簇內(nèi)的其它傳感器節(jié)點(diǎn)。為了防御對節(jié)點(diǎn)的DoS攻擊,在廣播之前簇頭需要先計(jì)算出節(jié)點(diǎn)弱認(rèn)證所需的參數(shù),根據(jù)中國剩余定理解同余方程組
得到唯一的解Yj,然后簇頭廣播數(shù)據(jù)包packet(j)=j‖Yj‖Mj‖DSj給普通節(jié)點(diǎn)。
同余方程組(4)中參數(shù)s由簇頭秘密選取且不公布給簇內(nèi)的其它節(jié)點(diǎn),Rdj是簇頭每次計(jì)算Yj時(shí)秘密選取的一個(gè)隨機(jī)數(shù),參數(shù)a0和a1則事先通過安全信道公布給了簇內(nèi)的所有節(jié)點(diǎn)。節(jié)點(diǎn)接收到數(shù)據(jù)包之后先進(jìn)行模運(yùn)算j=Yjmoda0得到j(luò),并判斷j>k是否成立,這里的k是節(jié)點(diǎn)存儲的最近認(rèn)證通過的廣播包索引號。如果不成立則直接丟棄數(shù)據(jù)包,否則進(jìn)行模運(yùn)算Ki,j=Yjmoda1得到Ki,j,然后根據(jù)Ki,k=(Ki,j) 是否成立來進(jìn)行弱認(rèn)證,Ki,k是節(jié)點(diǎn)存儲的最近認(rèn)證通過的密鑰值。如果成立則弱認(rèn)證成功,否則弱認(rèn)證失敗。
信譽(yù)管理機(jī)制同樣可以應(yīng)用于WSN中來提高網(wǎng)絡(luò)的安全性,RFSN[11](Reputation-based Framework for Sensor Networks)是第一個(gè)被提出的,同時(shí)也是比較完整的無線傳感器網(wǎng)絡(luò)信任管理機(jī)制。此外還有其它一些針對傳感器網(wǎng)絡(luò)而提出的一些信譽(yù)模型,如基于Dirichlet分布的無線傳感器網(wǎng)絡(luò)信譽(yù)模型[12]。本文對信譽(yù)模型的建立不做具體的闡述,只提出一種基于鄰居節(jié)點(diǎn)表的信譽(yù)等級劃分和更新方法。
假定網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都維持了一個(gè)自己鄰居節(jié)點(diǎn)信息表,鄰居節(jié)點(diǎn)的信息表一般是通過節(jié)點(diǎn)的ID來索引的。設(shè)Rpt表示信譽(yù)值的大小,Rpt的取值范圍為[-1,1]。用Rpt(ID)表示節(jié)點(diǎn)的鄰居表中身份為ID的節(jié)點(diǎn)的信譽(yù)值,根據(jù)信譽(yù)值Rpt(ID)的大小該節(jié)點(diǎn)將自己的鄰居節(jié)點(diǎn)劃分為4個(gè)不同的等級:Rpt(ID)=1則劃為A級,0<Rpt(ID)<1劃為B級,-1<Rpt(ID)≤0劃為 C級,Rpt(ID)=-1劃為D級。信譽(yù)值Rpt在每次接收到新數(shù)據(jù)包并且完成認(rèn)證之后就進(jìn)行更新,更新方法可由算法1表示:
算法1 鄰居節(jié)點(diǎn)信譽(yù)值更新算法
其中參數(shù)α為信譽(yù)值增加的權(quán)重因子,參數(shù)β為信譽(yù)值減少的權(quán)重因子,Er是風(fēng)險(xiǎn)管理模塊中監(jiān)測的單位窗口內(nèi)認(rèn)證失敗的數(shù)據(jù)包占接收到的總數(shù)據(jù)包的百分比,且有0≤Er≤1,這個(gè)會在講述風(fēng)險(xiǎn)管理模塊時(shí)有具體說明。
由算法1可知,當(dāng)對新接收到的數(shù)據(jù)包簽名認(rèn)證成功時(shí),則信譽(yù)值在原來基礎(chǔ)上增加α×e-2Er,如果Rpt(j+1)≥1則將它設(shè)為1;當(dāng)弱認(rèn)證失敗時(shí),信譽(yù)值減少β×e-2Er;當(dāng)Rpt(j)>0且簽名認(rèn)證失敗時(shí),因?yàn)檫@時(shí)此節(jié)點(diǎn)處于信譽(yù)等級中的A級或B級,而且進(jìn)行簽名認(rèn)證消耗了不少能量和時(shí)間,需要對發(fā)送這種數(shù)據(jù)包的節(jié)點(diǎn)信譽(yù)值有大幅度地減少,本文的算法采取對原來的信譽(yù)值進(jìn)行減半操作。同時(shí)為了防止Rpt(j)接近于0時(shí)減半效果不明顯,需要在此基礎(chǔ)上再減少β×e-2Er;當(dāng)Rpt(j)≤0且簽名驗(yàn)證失敗時(shí),此時(shí)節(jié)點(diǎn)的信譽(yù)等級為C級或者D級,信譽(yù)值減少2β×e-2Er即可;如果Rpt(j+1)≤-1則將它設(shè)為-1。
Er表示當(dāng)前網(wǎng)絡(luò)環(huán)境的好壞程度,Er越大說明當(dāng)前數(shù)據(jù)包認(rèn)證失敗的概率越大,網(wǎng)絡(luò)環(huán)境越差,反之,Er越小說明當(dāng)前數(shù)據(jù)包認(rèn)證失敗的概率越小,網(wǎng)絡(luò)環(huán)境越好。因?yàn)榫W(wǎng)絡(luò)中可能存在專門針對于信譽(yù)值的攻擊,比如通過故意發(fā)送某些偽造的數(shù)據(jù)包來擾亂信譽(yù)值的更新。可見,當(dāng)Er變大時(shí),對數(shù)據(jù)包的認(rèn)證結(jié)果的可靠性下降,信譽(yù)值的更新幅度也應(yīng)該下降;當(dāng)Er變小時(shí),對數(shù)據(jù)包的認(rèn)證結(jié)果的可靠性上升,信譽(yù)值的更新幅度也應(yīng)該上升。因此在算法1中信譽(yù)增加或者減少的權(quán)重因子后面都乘以e-2Er,以此來根據(jù)Er的變化適度地調(diào)整信譽(yù)值更新幅度。
有了鄰居節(jié)點(diǎn)的信譽(yù)等級信息之后,節(jié)點(diǎn)在接收到新廣播包時(shí)就可以根據(jù)鄰居節(jié)點(diǎn)的信譽(yù)等級執(zhí)行相應(yīng)的認(rèn)證和轉(zhuǎn)播策略。設(shè)節(jié)點(diǎn)轉(zhuǎn)播的廣播包為packet(j)=ID‖j‖Yj‖Mj‖DSj,當(dāng)節(jié)點(diǎn)接收到新來的廣播數(shù)據(jù)包時(shí),它按照算法2來執(zhí)行認(rèn)證和轉(zhuǎn)播策略。
算法2 認(rèn)證和轉(zhuǎn)播策略
由算法2可知,當(dāng)節(jié)點(diǎn)接收到數(shù)據(jù)包時(shí),先從數(shù)據(jù)包中獲得ID信息,然后查看此ID是否在節(jié)點(diǎn)存儲的鄰居節(jié)點(diǎn)表中。如果不在鄰居節(jié)點(diǎn)表中則直接丟棄該數(shù)據(jù)包,否則根據(jù)該ID的信譽(yù)等級執(zhí)行相應(yīng)的認(rèn)證和轉(zhuǎn)播算法。當(dāng)該ID的信譽(yù)等級為A時(shí),說明該ID十分可信,則節(jié)點(diǎn)替換包中原來的ID為自己的ID后直接轉(zhuǎn)播數(shù)據(jù)包給一跳范圍內(nèi)的其它鄰居節(jié)點(diǎn);當(dāng)該ID的信譽(yù)等級為B時(shí),節(jié)點(diǎn)先對數(shù)據(jù)包進(jìn)行弱認(rèn)證再決定是否轉(zhuǎn)播;當(dāng)該ID的信譽(yù)等級為C時(shí),節(jié)點(diǎn)對數(shù)據(jù)包進(jìn)行弱認(rèn)證和簽名認(rèn)證(先弱認(rèn)證再簽名認(rèn)證,如果弱認(rèn)證沒有通過就不需要進(jìn)行簽名認(rèn)證)再決定是否轉(zhuǎn)播;當(dāng)該ID的信譽(yù)等級為D時(shí),說明該ID不可信,則節(jié)點(diǎn)直接丟棄該數(shù)據(jù)包。
前一節(jié)描述地認(rèn)證和轉(zhuǎn)播策略是假設(shè)節(jié)點(diǎn)工作在正常模式的前提下進(jìn)行。通過統(tǒng)計(jì)弱認(rèn)證和簽名認(rèn)證的結(jié)果,節(jié)點(diǎn)可以檢測出一個(gè)時(shí)間間隔內(nèi)數(shù)據(jù)包認(rèn)證失敗的概率。當(dāng)某個(gè)時(shí)間間隔內(nèi)數(shù)據(jù)包認(rèn)證失敗的概率很大,節(jié)點(diǎn)就不應(yīng)該仍然執(zhí)行正常模式下的認(rèn)證和轉(zhuǎn)播策略,而應(yīng)該對每一個(gè)接收到地?cái)?shù)據(jù)包進(jìn)行弱認(rèn)證和簽名認(rèn)證之后再轉(zhuǎn)播甚至不接收任何數(shù)據(jù)包(節(jié)點(diǎn)進(jìn)入休眠狀態(tài)),將這種模式稱為報(bào)警模式[13]。為此,WARGS引入風(fēng)險(xiǎn)管理模塊。
在風(fēng)險(xiǎn)管理模塊中,引入Er來衡量風(fēng)險(xiǎn)窗口W內(nèi)數(shù)據(jù)包認(rèn)證失敗的概率。W表示接收數(shù)據(jù)包的總數(shù),用Ner表示最近接收的W個(gè)數(shù)據(jù)包中認(rèn)證失敗的個(gè)數(shù),則有Er=Ner/W。每個(gè)節(jié)點(diǎn)連續(xù)的監(jiān)測出風(fēng)險(xiǎn)窗口W內(nèi)認(rèn)證失敗的數(shù)據(jù)包的個(gè)數(shù)并計(jì)算出Er,當(dāng)Er≥Er1時(shí)節(jié)點(diǎn)跳轉(zhuǎn)到報(bào)警模式對每一個(gè)接收到的數(shù)據(jù)包進(jìn)行弱認(rèn)證和簽名認(rèn)證之后再轉(zhuǎn)播;當(dāng)Er2≤Er≤1時(shí),節(jié)點(diǎn)不接收任何數(shù)據(jù)包進(jìn)入休眠狀態(tài),其中Er2>Er1;當(dāng)網(wǎng)絡(luò)環(huán)境變好使得Er1≤Er<Er2時(shí),節(jié)點(diǎn)又開始對每一個(gè)接收到的數(shù)據(jù)包進(jìn)行弱認(rèn)證和簽名認(rèn)證后再轉(zhuǎn)播;當(dāng)Er<Er1時(shí)節(jié)點(diǎn)則恢復(fù)到正常模式。參數(shù)Er1和Er2的大小可以視網(wǎng)絡(luò)的不同需求來設(shè)定。
盡管節(jié)點(diǎn)進(jìn)入報(bào)警模式時(shí)會增加網(wǎng)絡(luò)中端對端的延時(shí),但是增加報(bào)警模式可以減小虛假數(shù)據(jù)包對網(wǎng)絡(luò)的影響范圍,防止節(jié)點(diǎn)對攻擊者發(fā)來的數(shù)據(jù)包不停地進(jìn)行認(rèn)證操作,從而降低網(wǎng)絡(luò)計(jì)算和通信的能耗。
這節(jié)將對本文提出的WARGS協(xié)議與文獻(xiàn)[5,7,10]提出的防御DoS攻擊策略進(jìn)行性能分析比較。文獻(xiàn)[8]中提出的基于多跳認(rèn)證的動態(tài)窗口方案主要針對防御路由機(jī)制中的DoS攻擊設(shè)計(jì)的,而且該方案中引入反向路徑數(shù)據(jù)傳輸,這會增加網(wǎng)絡(luò)的通信開銷。同時(shí)文獻(xiàn)[8]的方案跟文獻(xiàn)[7]的動態(tài)窗口協(xié)議其實(shí)屬于同一類防御DoS攻擊的措施,因此不將本文提出的WARGS協(xié)議再與文獻(xiàn)[8]的方案進(jìn)行比較。以下將文獻(xiàn)[5]提出的協(xié)議簡記為Puzzle Scheme,文獻(xiàn)[7]提出的協(xié)議簡記為Dynamic Window,文獻(xiàn)[10]提出的協(xié)議簡記為 Node-id Scheme。其中 Puzzle Scheme和 Node-id Scheme采用的都是Hop-by-Hop的數(shù)據(jù)包認(rèn)證轉(zhuǎn)發(fā)策略。本文利用Java開發(fā)平臺和MATLAB相結(jié)合進(jìn)行仿真,在仿真過程中將100個(gè)傳感器節(jié)點(diǎn)隨機(jī)地分布在500 m×500 m的區(qū)域,普通節(jié)點(diǎn)的通信半徑為100 m。該區(qū)域中含有一個(gè)簇頭和一個(gè)攻擊者,攻擊者在進(jìn)行攻擊時(shí)位置固定。設(shè)弱認(rèn)證耗時(shí)為30 ms,簽名認(rèn)證耗時(shí)0.5 s,網(wǎng)絡(luò)中的最大跳數(shù)為10跳,節(jié)點(diǎn)的鄰居個(gè)數(shù)大概為7~18個(gè)。在對WARGS進(jìn)行仿真時(shí)設(shè)α=β=0.1,網(wǎng)絡(luò)初始化時(shí)所有節(jié)點(diǎn)的信譽(yù)值為0,Er=0。對于 Dynamic Window,初始窗口大小w為64,按照文獻(xiàn)[7]的默認(rèn)值設(shè)置線性增加值和成倍遞減值分別為1和2。
對于文獻(xiàn)[5]的Puzzle Scheme,廣播者在進(jìn)行廣播數(shù)據(jù)包前需要構(gòu)造一個(gè)puzzle,并找到解決這個(gè)puzzle的方法用于弱認(rèn)證。但是一個(gè)資源充足的攻擊者仍然可以通過試驗(yàn)找到解決puzzle的方法從而對偽造的數(shù)據(jù)包構(gòu)造正確的弱認(rèn)證參數(shù)。假設(shè)puzzle的長度是l,攻擊者在k次試驗(yàn)內(nèi)找到puzzle解決辦法的概率pk,l為:
攻擊者找到了puzzle的解決方法就可以利用這個(gè)合法的弱認(rèn)證參數(shù)對節(jié)點(diǎn)發(fā)動攻擊,可見上面的概率就是攻擊者發(fā)動攻擊的概率。
本文提出的弱認(rèn)證方案中基站產(chǎn)生的弱認(rèn)證參數(shù)Xj是由式(3)得出的,其中參數(shù)組b,n1,n2,…,nN只有基站知道。在單向函數(shù)是安全的條件下,攻擊者在收集了其它公布了的認(rèn)證密鑰的情況下也得不到K1,j,K2,j,…,KN,j的值。由此可見攻擊者偽造合法的Xj的可能性為零,攻擊者用合法的弱認(rèn)證參數(shù)偽造數(shù)據(jù)包來攻擊簇頭的概率為零。簇頭產(chǎn)生的弱認(rèn)證參數(shù)Yj由式(4)可以得出,參數(shù)a0和a1公布給節(jié)點(diǎn),但是由單向函數(shù)的性質(zhì)可知攻擊者從以前公布的認(rèn)證密鑰中不能計(jì)算出Ki,j。即使攻擊者俘獲了簇內(nèi)的某個(gè)節(jié)點(diǎn)獲得了a0和a1,甚至破獲了Ki,j,但是Rdj和s只有簇頭才存儲(攻擊者截獲不到)。由此可見攻擊者偽造合法Yj的可能性為零,即攻擊者用合法的弱認(rèn)證參數(shù)偽造數(shù)據(jù)包來攻擊節(jié)點(diǎn)的概率為零。
通過上面的分析可知,引入了弱認(rèn)證之后本文的廣播認(rèn)證協(xié)議的安全性并沒有降低,因?yàn)槿跽J(rèn)證是保障協(xié)議安全的第一道防線,協(xié)議中對廣播包的真正簽名認(rèn)證是通過數(shù)字簽名來實(shí)現(xiàn)的,這是保障協(xié)議安全的第二道防線。由圖5可知本文的WARGS協(xié)議和 Node-id Scheme十分安全,而對Puzzle Scheme而言攻擊者發(fā)動攻擊的概率隨試驗(yàn)次數(shù)的增加而增加,Dynamic Window沒有采用弱認(rèn)證這里對它的安全性不進(jìn)行分析。
圖5 攻擊率比較
Puzzle Scheme廣播包的數(shù)據(jù)格式為j‖Mj‖DSj‖Kj‖Pj,而本文的廣播包數(shù)據(jù)格式為j‖Yj‖Mj‖DSj,可以得知采用同樣的簽名機(jī)制Puzzle Scheme數(shù)據(jù)包將比WARGS更大,引入的通信開銷也更大。
相比Node-id Scheme,本文的WARGS協(xié)議引入的節(jié)點(diǎn)開銷要小很多。在Node-id Scheme中,每個(gè)節(jié)點(diǎn)要維持一個(gè)單向密鑰鏈,還得存儲所有鄰居節(jié)點(diǎn)的認(rèn)證密鑰值,假設(shè)文獻(xiàn)[10]中的d=20,采用輸出固定長度為160比特的SHA-1單向Hash函數(shù),那么該節(jié)點(diǎn)的存儲開銷為400 bytes。而WARGS中每個(gè)節(jié)點(diǎn)不需要維持一個(gè)單向密鑰鏈,只需要存儲一個(gè)用來弱認(rèn)證的認(rèn)證密鑰,大數(shù)a0和a1。
這里對存在攻擊者發(fā)送虛假數(shù)據(jù)包情況下的終端到終端的平均延時(shí)進(jìn)行仿真分析。不同協(xié)議的延時(shí)分析結(jié)果如圖6所示。由圖6可知,Node-id Scheme采用的是先認(rèn)證完成再轉(zhuǎn)播所以延時(shí)最大,大約為5.3 s。Dynamic Window的初始w為64,遠(yuǎn)大于網(wǎng)絡(luò)中的最大跳數(shù),所以沒有攻擊時(shí)節(jié)點(diǎn)對數(shù)據(jù)包的處理都是先轉(zhuǎn)播再認(rèn)證,延時(shí)很小。隨著攻擊的出現(xiàn)部分節(jié)點(diǎn)的w值變小,延時(shí)開始增加。然而當(dāng)攻擊者發(fā)送的虛假數(shù)據(jù)包達(dá)到一定數(shù)量時(shí),只有攻擊者一跳范圍內(nèi)的節(jié)點(diǎn)w減為1,這樣虛假數(shù)據(jù)包的傳輸就控制在攻擊者周圍,其它節(jié)點(diǎn)的w值維持在一個(gè)比較大的值,從而使得延時(shí)最后趨于定值。
對于WARGS協(xié)議,網(wǎng)絡(luò)初始化一段時(shí)間后大部分節(jié)點(diǎn)的信譽(yù)等級為B,在沒有攻擊或攻擊剛出現(xiàn)時(shí)延時(shí)約為0.8 s。在進(jìn)行仿真時(shí)攻擊者先發(fā)送了3個(gè)弱認(rèn)證通不過的數(shù)據(jù)包,第4個(gè)數(shù)據(jù)包則是弱認(rèn)證通過但是簽名認(rèn)證通不過的數(shù)據(jù)包。這樣那些轉(zhuǎn)發(fā)了第4個(gè)數(shù)據(jù)包的節(jié)點(diǎn)信譽(yù)值會下降,大部分都下將到了C等級,從而導(dǎo)致延時(shí)增加很大。但當(dāng)攻擊者再發(fā)送這種虛假數(shù)據(jù)包時(shí),第一跳接收此虛假數(shù)據(jù)包的節(jié)點(diǎn)會先進(jìn)行弱認(rèn)證和簽名認(rèn)證,從而有效地控制了虛假數(shù)據(jù)包的轉(zhuǎn)發(fā),網(wǎng)絡(luò)的延時(shí)逐漸減小。最后由于網(wǎng)絡(luò)中信譽(yù)等級為A的節(jié)點(diǎn)增多和攻擊者被降為D等級,WARGS協(xié)議引入的延時(shí)比Dynamic Window的延時(shí)還小。
圖6 終端到終端延時(shí)
這里對攻擊者的兩種不同攻擊行為分別進(jìn)行仿真,一種是攻擊者發(fā)送弱認(rèn)證不能通過的虛假數(shù)據(jù)包,以下記為DoS=1;另一種是攻擊者發(fā)送弱認(rèn)證通過但是簽名認(rèn)證失敗的虛假數(shù)據(jù)包,以下記為DoS=2。假設(shè)攻擊者俘獲了某個(gè)合法的節(jié)點(diǎn),然后攻擊者就可以發(fā)動攻擊。DoS=2的這種攻擊情況只能在簇頭正在進(jìn)行廣播數(shù)據(jù)包的時(shí)候才會存在,因?yàn)楣粽邆卧觳涣巳跽J(rèn)證成功的數(shù)據(jù)包,每一次廣播的弱認(rèn)證參數(shù)Yj的值都是不一樣的,要得到最新合法的Yj它只能從實(shí)時(shí)的廣播信息中截獲。在進(jìn)行仿真時(shí)還需要對鄰居節(jié)點(diǎn)表中有攻擊者的節(jié)點(diǎn)存儲的攻擊者信譽(yù)值設(shè)置一個(gè)初始值,記存儲的攻擊者的初始信譽(yù)值為rep。
由圖7和圖8可知當(dāng)DoS=1時(shí),WARGS協(xié)議能將虛假數(shù)據(jù)包有效地控制一跳范圍內(nèi),即只有攻擊者的鄰居節(jié)點(diǎn)才接收了虛假數(shù)據(jù)包。但是當(dāng)攻擊者廣播了大約12個(gè)虛假數(shù)據(jù)包以后,它的攻擊對網(wǎng)絡(luò)基本沒有影響,網(wǎng)絡(luò)中接收到的總的虛假數(shù)據(jù)包個(gè)數(shù)還是以前的那些虛假數(shù)據(jù)包個(gè)數(shù)。當(dāng)DoS=2時(shí)攻擊者的前一兩次攻擊對網(wǎng)絡(luò)的影響比較大,但當(dāng)攻擊者連續(xù)廣播2~3個(gè)虛假數(shù)據(jù)包后WARGS協(xié)議就能限制對虛假數(shù)據(jù)包的轉(zhuǎn)發(fā),由圖8可知基本不再轉(zhuǎn)發(fā)攻擊者發(fā)送的數(shù)據(jù)包,最后會使得攻擊者的攻擊行為對網(wǎng)絡(luò)毫無影響。由圖7和圖8亦可知基于Hop-by-Hop的協(xié)議可以有效限制虛假數(shù)據(jù)包的轉(zhuǎn)發(fā),但是由于沒有信譽(yù)機(jī)制,攻擊者的鄰居節(jié)點(diǎn)會不停地接收并認(rèn)證虛假數(shù)據(jù)包,使得接收并進(jìn)行認(rèn)證的虛假數(shù)據(jù)包總數(shù)隨著攻擊者廣播虛假數(shù)據(jù)包的個(gè)數(shù)而線性增加,最后會超過WARGS協(xié)議接收并進(jìn)行認(rèn)證的虛假數(shù)據(jù)包的總數(shù)。由此可見WARGS協(xié)議可以有效地防御攻擊者發(fā)動的DoS攻擊。
圖7 接收并進(jìn)行認(rèn)證的虛假數(shù)據(jù)包總數(shù)
圖8 轉(zhuǎn)發(fā)虛假數(shù)據(jù)包總數(shù)
下面將對WARGS協(xié)議在另外兩種典型的攻擊—Sybil攻擊和 Wormhole攻擊下的安全性進(jìn)行分析。
(1)Sybil攻擊 在Sybil攻擊中,一個(gè)攻擊者可以克隆出不同ID的傳感器節(jié)點(diǎn)。WARGS協(xié)議中每個(gè)節(jié)點(diǎn)在網(wǎng)絡(luò)部署時(shí)就存儲了鄰居節(jié)點(diǎn)信息表,而且每次對接收到的數(shù)據(jù)包都會核實(shí)對方的ID是否在自己的鄰居節(jié)點(diǎn)表中??梢姴捎帽疚牡膮f(xié)議Sybil攻擊對網(wǎng)絡(luò)的影響會減小,如果再采用一些Sybil攻擊檢測技術(shù)如基于RSSI(Received Signal Strength Indicator)的Sybil檢測[14]就可以避免Sybil攻擊。
(2)Wormhole攻擊 在Wormhole攻擊中,攻擊者在網(wǎng)絡(luò)中制造Wormhole,Wormhole將吸引較大的網(wǎng)絡(luò)流量。Wormhole攻擊會影響WARGS協(xié)議的安全,因?yàn)樗梢允沟靡粋€(gè)節(jié)點(diǎn)的鄰居數(shù)目大幅度增加,影響廣播數(shù)據(jù)包的正常轉(zhuǎn)發(fā)。但是這種影響是有限的,因?yàn)槿绻粽呃眠@個(gè)Wormhole廣播虛假數(shù)據(jù)包的話,它周圍的節(jié)點(diǎn)會逐漸降低它的信譽(yù)至D等級。這樣就可以消除Wormhole攻擊對網(wǎng)絡(luò)的影響,廣播協(xié)議又可以正常工作。
將基于數(shù)字簽名的廣播認(rèn)證應(yīng)用到無線傳感器網(wǎng)絡(luò)中已經(jīng)引起人們的廣泛關(guān)注。但這種廣播認(rèn)證方案很容易遭受針對簽名認(rèn)證的DoS攻擊。為此,本文提出一種基于弱認(rèn)證和信譽(yù)等級的協(xié)議WARGS來防御這種DoS攻擊。WARGS協(xié)議利用中國剩余定理進(jìn)行弱認(rèn)證操作,同時(shí)加入信譽(yù)等級管理和風(fēng)險(xiǎn)管理模塊來減少網(wǎng)絡(luò)受DoS攻擊的影響。分析和仿真表明該協(xié)議的弱認(rèn)證機(jī)制安全性高,協(xié)議效率比Puzzle Scheme和Node-id Scheme也高。WARGS在降低網(wǎng)絡(luò)終端到終端的延時(shí)的同時(shí),還可以有效地將虛假數(shù)據(jù)包的影響大約限制在攻擊者的一跳鄰居范圍內(nèi)。本文以后的工作是將WARGS協(xié)議與實(shí)際的廣播認(rèn)證協(xié)議結(jié)合起來,并模擬不同類型的攻擊來進(jìn)一步測試協(xié)議的性能。
[1]Perrig A,Szewczyk R,Tygar JD,et al.SPINS:Security Protocols for Sensor Networks[J].Wireless Networks,2002,8(5):521-534.
[2]范容,潘雪增,傅建慶,等.基于Steiner樹的層次型無線傳感器網(wǎng)絡(luò)安全組播協(xié)議[J].傳感技術(shù)學(xué)報(bào),2011,24(4):601-608.
[3]Liu D,Ning P.Multilevel μTESLA:Broadcast Authentication for Distributed Sensor Networks[J].ACM Transactions on Embedded Computing Systems(TECS),2004,3(4):800-836.
[4]Gura N,Patel A,Wander A,et al.Comparing Elliptic Curve Cryptography and Rsa on 8-Bit CPUs[M].Cryptographic Hardware and Embedded Systemsches 2004.Heidelberg,Berlin:Springer,2004.925-943.
[5]Ning P,Liu A,Du W.Mitigating DoS Attacks Against Broadcast Authentication in Wireless Sensor Networks[J].ACM Transactions on Sensor Networks(TOSN),2008,4(1):1-35.
[6]Dong Q,Liu D,Ning P.Pre-Authentication Filters:Providing Dos Resistance for Signature-Based Broadcast Authentication in Sensor Networks[C]//Gligor V,Hubaux J-P,Poovendran R,eds.WiSec’08 Proceedings of the First ACM Conference on Wireless Network Security.Alexandria,VA,USA:ACM,2008.2-12.
[7]Wang R,Du W,Ning P.Containing Denial-of-Service Attacks in Broadcast Authentication in Sensor Networks[C]//Kranakis E,Belding E,Modiano E,et al.Proceedings of the 8th ACM International Symposium on Mobile Ad Hoc Networking and Computing.Montreal,Quebec,Canada:ACM,2007.71-79.
[8]Yao L,Yu Z,Zhang T,et al.Dynamic Window Based Multihop Authentication for WSN[C]//Al-Shaer E,Keromytis AD,Shmatikov V,et al.Proceedings of the 17th ACM Conference on Computer and Communications Security.Chicago,Illinois,USA:ACM,2010.744-746.
[9]Xiaojiang D,Guizani M,Yang X,et al.Defending DoS Attacks on Broadcast Authentication in Wireless Sensor Networks[C]//Wu J,Lou Q,Gong K,et al.IEEE International Conference on Communications,ICC 2008.Beijing,China:Institute of Electrical and E-lectronics Engineers Inc,2008.1653-1657.
[10]鄒長忠.無線傳感器網(wǎng)絡(luò)中基于節(jié)點(diǎn)ID驗(yàn)證的防御DOS攻擊策略[J].小型微型計(jì)算機(jī)系統(tǒng),2010(8):1532-1537.
[11]Ganeriwal S,Srivastava M B.Reputation-Based Framework for High Integrity Sensor Networks[C]//Setia S,Swarup V,et al.Proceedings of the 2004 ACM Workshop on Security of Ad Hoc and Sensor Networks,SASN’04.Washington DC,USA:ACM,2004.66-77.
[12]黃旗明,南海燕.基于Dirichlet分布的無線傳感器網(wǎng)絡(luò)的信譽(yù)計(jì)算模型研究[J].傳感技術(shù)學(xué)報(bào),2009,22(4):526-530.
[13]Ying H,Wenbo H,Nahrstedt K,et al.Dos-Resistant Broadcast Authentication Protocol with Low End-to-End Delay[C]//Merrill D,Saha D,eds.INFOCOM Workshops 2008,IEEE.Phoenix,Arizona,USA:IEEE,2008.1-6.
[14]Demirbas M,Song Y.An RSSI-Based Scheme for Sybil Attack Detection in Wireless Sensor Networks[C]//Conti M,Qiao C,eds.Proceedings of the 2006 International Symposium on on World of Wireless,Mobile and Multimedia Networks.Buffalo-Niagara Falls,NY,USA:IEEE Computer Society,2006.564-568.