劉志雄,王建新
(中南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長沙 410083)
無線傳感器網(wǎng)絡(luò)(WSN, wireless sensor network)在軍事和民用領(lǐng)域具有廣泛的應(yīng)用,如環(huán)境和交通監(jiān)測,災(zāi)難救助甚至人體心臟監(jiān)視[1]。傳感器節(jié)點通常部署在野外或者敵方區(qū)域,攻擊者可以通過俘獲節(jié)點并利用存儲在節(jié)點內(nèi)的秘密信息捏造事實上不存在的虛假事件,發(fā)動虛假數(shù)據(jù)注入攻擊[2]。這類攻擊不僅引發(fā)錯誤警報,同時也可以耗盡寶貴的網(wǎng)絡(luò)資源[3,4]。
鑒于虛假數(shù)據(jù)的安全威脅,不少學(xué)者提出了一些解決辦法[3~11],它們的共同特點是在待發(fā)送的數(shù)據(jù)報告中附加 t個 MAC(message authentication code),并在數(shù)據(jù)轉(zhuǎn)發(fā)的過程中對MAC進(jìn)行驗證,從而實現(xiàn)對虛假數(shù)據(jù)的識別和過濾,這里t是系統(tǒng)參數(shù)。這些方案在過濾性能和安全性等方面都獲得了較好的效果,但沒有考慮節(jié)點密鑰與地理位置的相關(guān)性,故無法過濾不同地理區(qū)域多個妥協(xié)節(jié)點協(xié)同偽造的虛假數(shù)據(jù)。
本文提出一種基于地理位置的虛假數(shù)據(jù)過濾方案 GFFS,將節(jié)點地理位置預(yù)分發(fā)給中間節(jié)點存儲,并在數(shù)據(jù)報告中同時附帶檢測節(jié)點產(chǎn)生的MAC和地理位置,然后由中間節(jié)點在轉(zhuǎn)發(fā)過程中同時對數(shù)據(jù)分組中包含的MAC和地理位置進(jìn)行驗證,從而將不同地理區(qū)域的多個妥協(xié)節(jié)點協(xié)同偽造的虛假數(shù)據(jù)過濾掉。
文獻(xiàn)[3]率先提出了傳感器網(wǎng)絡(luò)中虛假數(shù)據(jù)轉(zhuǎn)發(fā)過濾的基本框架SEF。SEF將一個全局密鑰池分成n(n>t)個密鑰分區(qū),每個分區(qū)包含m個密鑰。每個節(jié)點在部署前隨機(jī)地從全局密鑰池中選取一個密鑰分區(qū),并從中任選k個密鑰進(jìn)行存儲。事件發(fā)生后,多個檢測節(jié)點聯(lián)合產(chǎn)生一個包含t個互不相同的MAC數(shù)據(jù)報告。在數(shù)據(jù)分組轉(zhuǎn)發(fā)過程中,與檢測節(jié)點擁有相同密鑰分區(qū)的中間節(jié)點以概率 k /m對數(shù)據(jù)分組中的一個MAC進(jìn)行驗證。在SEF中,攻擊者只要俘獲了t個不同密鑰分區(qū),即可通過協(xié)作偽造出不被識別的假分組。
例如,當(dāng)t=5時,假設(shè)攻擊者俘獲了圖1中的擁有不同密鑰分區(qū)的節(jié)點S1,…,S5,盡管這5個節(jié)點位于網(wǎng)絡(luò)中不同的地理區(qū)域,但攻擊者仍然可以利用它們協(xié)同地偽造發(fā)生在A點(或者其他任何位置)的假分組R,并通過妥協(xié)節(jié)點S1發(fā)送給S1的鄰居節(jié)點,而轉(zhuǎn)發(fā)節(jié)點和sink都無法對R進(jìn)行檢測和過濾。
圖1 多個妥協(xié)節(jié)點協(xié)同偽造虛假數(shù)據(jù)
文獻(xiàn)[4]提出了一種交叉、逐步的認(rèn)證機(jī)制IHA。IHA將節(jié)點組織成簇,簇頭建立到sink的路徑,并基于路徑進(jìn)行交叉式對稱密鑰分發(fā),然后在轉(zhuǎn)發(fā)過程中由中間節(jié)點對簇頭產(chǎn)生的數(shù)據(jù)分組進(jìn)行逐步、交叉的驗證。IHA采用一種確定性的方式進(jìn)行密鑰分發(fā)和數(shù)據(jù)驗證,限制了網(wǎng)絡(luò)中不同區(qū)域的妥協(xié)節(jié)點協(xié)同地偽造假數(shù)據(jù)分組。然而,一旦路由發(fā)生變化,這種確定性的數(shù)據(jù)驗證方式也隨之失效,重新建立路由并分發(fā)密鑰需要較大的維護(hù)開銷。
文獻(xiàn)[5]提出了一種基于爬山 (hill climbing)策略和多徑路由的虛假數(shù)據(jù)過濾方案 DEFS。DEFS將網(wǎng)絡(luò)節(jié)點組織成簇,簇頭采用類似“爬山”的策略進(jìn)行密鑰分發(fā):以較高的概率將簇內(nèi)節(jié)點的密鑰預(yù)分發(fā)給離簇頭較近的中間節(jié)點存儲,而以較低的概率將簇內(nèi)節(jié)點的密鑰預(yù)分發(fā)給離簇頭較遠(yuǎn)的節(jié)點存儲。檢測到突發(fā)事件后,簇頭將數(shù)據(jù)分組沿多條路徑并發(fā)地向sink轉(zhuǎn)發(fā),中間節(jié)點分別以一定概率對數(shù)據(jù)分組進(jìn)行驗證。爬山策略有利于減輕靠近sink節(jié)點的工作負(fù)擔(dān),然而多路徑并發(fā)傳輸數(shù)據(jù)分組的開銷太大,不利于節(jié)省傳感器節(jié)點的能量。
文獻(xiàn)[6]提出了一種基于簇組織和投票機(jī)制的虛假數(shù)據(jù)過濾方案PVFS。PVFS將節(jié)點組織成簇,源簇頭建立一條到sink的路徑。和IHA不同的是,轉(zhuǎn)發(fā)節(jié)點均為簇頭,以概率di/ d0存儲源簇內(nèi)一個節(jié)點的密鑰,其中,d0和di分別表示源簇頭和轉(zhuǎn)發(fā)簇頭距離sink的跳數(shù)。事件發(fā)生時,簇頭收集簇內(nèi)t個節(jié)點產(chǎn)生的投票生成數(shù)據(jù)分組,轉(zhuǎn)發(fā)簇頭節(jié)點以一定概率對數(shù)據(jù)分組進(jìn)行驗證。PVFS由簇頭轉(zhuǎn)發(fā)數(shù)據(jù)分組,簇頭之間需要以比普通節(jié)點較大的通信半徑進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),簇頭容易因能量耗盡而死亡。
文獻(xiàn)[7]提出了一種不受門限值限制的過濾機(jī)制RSFS。節(jié)點與sink形成星形拓?fù)洌录l(fā)生后,由一種比普通節(jié)點能量強(qiáng)得多的節(jié)點作為簇頭完成數(shù)據(jù)聚合,聚合結(jié)果必須附加簇內(nèi)每個普通節(jié)點產(chǎn)生的 MAC。目的節(jié)點在接收到匯聚結(jié)果時通過對聚合結(jié)果及附加 MAC信息的校驗,實現(xiàn)對虛假數(shù)據(jù)的過濾。該方案不受門限值的限制,但假數(shù)據(jù)分組必須傳輸?shù)絪ink才能被檢測到,而無法由轉(zhuǎn)發(fā)節(jié)點進(jìn)行檢測和過濾,不利于節(jié)省傳感器網(wǎng)絡(luò)的能量。
文獻(xiàn)[8]的作者認(rèn)為以上基于對稱密鑰機(jī)制的安全性不夠,提出了一種基于密碼交換(commutative cipher)的路由過濾機(jī)制 CCEF。該機(jī)制假設(shè)各節(jié)點與基站共享一會話密鑰(session key),路由中報文轉(zhuǎn)發(fā)節(jié)點不知道報文源節(jié)點的會話密鑰,但可通過交換密碼對報文進(jìn)行檢測,從而提高了安全性。文獻(xiàn)[9]利用橢圓曲線密鑰技術(shù)來改進(jìn)文獻(xiàn)[8]中的方案,進(jìn)一步提高安全性。文獻(xiàn)[10]將整個網(wǎng)絡(luò)劃分為不重疊的單元(cell),以單元塊(cell by cell)的方式傳遞數(shù)據(jù),采用門限共享技術(shù)和公開密鑰技術(shù)來保證數(shù)據(jù)的安全。文獻(xiàn)[11]在文獻(xiàn)[10]的基礎(chǔ)上,將網(wǎng)絡(luò)劃分為不重疊單元,在特定的路由上對數(shù)據(jù)加密進(jìn)行研究。
最近研究表明[2,4],公開密鑰技術(shù)雖然比對稱密鑰技術(shù)具備更好的安全性,但對存儲空間和計算能力要求較高,無法順利應(yīng)用在性能有限的傳感器網(wǎng)絡(luò)中;而對稱密鑰技術(shù)的計算復(fù)雜性較小,實現(xiàn)簡單,從能量有效及實用性等角度來說,為資源有限的傳感器網(wǎng)絡(luò)所青睞。已有基于對稱密鑰技術(shù)的方案,如SEF、DEFS、PVFS、RSFS等,沒有將節(jié)點密鑰與節(jié)點地理位置綁定,故無法檢測不同地理區(qū)域多個妥協(xié)節(jié)點協(xié)同偽造的虛假數(shù)據(jù)。本文基于對稱密鑰技術(shù),研究如何過濾不同地理區(qū)域多個妥協(xié)節(jié)點協(xié)同偽造的虛假數(shù)據(jù)。
假設(shè)傳感器節(jié)點分布密度較大,事件e發(fā)生后,有多于t個節(jié)點同時檢測到。各個檢測節(jié)點利用密鑰對事件進(jìn)行加密后生成MAC,然后將MAC和位置信息發(fā)送給一個中心節(jié)點(CoS, central of stimulas)[3]。此外,CoS聯(lián)合其他檢測節(jié)點,采用感知范圍疊加的辦法對事件發(fā)生地點進(jìn)行定位,得到Le,這里 Le是取多個節(jié)點感知范圍重疊區(qū)域中某個點的位置。CoS將事件位置Le、各個檢測節(jié)點的位置以及MAC附加在事件e后面,生成數(shù)據(jù)報告。
假設(shè)攻擊者可以俘獲網(wǎng)絡(luò)中的多個節(jié)點,然后利用存儲在這些節(jié)點中的秘密信息偽造虛假數(shù)據(jù)報告并發(fā)送給鄰居節(jié)點,發(fā)動虛假數(shù)據(jù)注入攻擊[3,4]。假設(shè) sink節(jié)點無法被俘獲,且其擁有全局密鑰信息,能量充足,并具備強(qiáng)大的計算和存儲能力,能夠過濾所有最終到達(dá)的假數(shù)據(jù)分組。
部署前,給每個傳感器節(jié)點分配唯一的 ID標(biāo)識。存在一個全局密鑰池G={Ki:0≤I≤N-1},密鑰池大小為 N,分為 n個不重疊的密鑰分區(qū){Ui,0≤I≤n-1},每個分區(qū)包含m個密鑰(N=nm)。每個節(jié)點隨機(jī)選擇一個密鑰分區(qū),并任取其中k個密鑰存儲。
各個傳感器節(jié)點Si通過GPS或者其他方法[13]可以獲得其地理位置,記為Li:(Xi, Yi),其中,Xi、Yi分別表示節(jié)點Si在整個監(jiān)控區(qū)域的橫坐標(biāo)和縱坐標(biāo)。接下來,各節(jié)點Si利用Bubble-geocast算法[14,15]將c個數(shù)據(jù)分組(Si, Li, Ui)分發(fā)給中間節(jié)點存儲,使得中間節(jié)點各以概率 c/Na存儲該數(shù)據(jù)分組,其中Na為網(wǎng)絡(luò)中節(jié)點總數(shù)量,Ui為節(jié)點Si存儲的密鑰分區(qū)索引。
事件發(fā)生后,檢測節(jié)點共同選舉一個中心節(jié)點CoS。CoS將感知數(shù)值e發(fā)送給各檢測節(jié)點,檢測節(jié)點收到數(shù)據(jù)e后,將自己的感知數(shù)值與e進(jìn)行比較,若誤差在預(yù)定的閾值范圍內(nèi),則隨機(jī)選取一個存儲的密鑰 Ki對 e進(jìn)行加密,生成消息認(rèn)證碼Mi:Ki(e)。接下來,各檢測節(jié)點將節(jié)點號、地理位置以及MAC發(fā)送給CoS。中心節(jié)點CoS將事件位置以及t個擁有不同密鑰分區(qū)的檢測節(jié)點的節(jié)點號、密鑰索引、MAC和地理位置附加在感知數(shù)據(jù) e后面,產(chǎn)生數(shù)據(jù)報告R:{e, Le; i1, i2, …, it; Mi1, Mi2, …,Mit; j1, j2, …, jt; Lj1, Lj2, …, Ljt}。其中,i1, i2, …, it為密鑰索引,j1, j2, …, jt為節(jié)點號。
由于隨機(jī)預(yù)載了一個密鑰分區(qū)中的部分密鑰以及部分節(jié)點的地理位置和密鑰分區(qū)索引,故中間節(jié)點可以以一定概率對數(shù)據(jù)分組中的 MAC、節(jié)點位置以及密鑰索引進(jìn)行驗證。
當(dāng)接收到轉(zhuǎn)發(fā)數(shù)據(jù)分組R時,中間節(jié)點Si首先對數(shù)據(jù)分組中附帶的節(jié)點ID、密鑰索引、MAC以及地理位置的數(shù)量進(jìn)行檢查,然后核對這些密鑰索引是否屬于不同密鑰分區(qū),接下來檢查各個地理位置與事件發(fā)生位置Le之間距離的合法性,最后驗證MAC、地理位置和密鑰索引的正確性。中間節(jié)點對數(shù)據(jù)分組R的具體驗證步驟如下。
1) 檢查數(shù)據(jù)分組R中是否各包含t個節(jié)點ID、密鑰索引、MAC以及地理位置。若任何一項的數(shù)量不符合要求,則丟棄R。
2) 檢查 t個密鑰索引是否屬于不同的密鑰分區(qū),否則丟棄R。
3) 檢查各個地理位置與 Le之間的距離是否都小于節(jié)點感知半徑rs,否則丟棄R。
4) 若存儲了 R中某個檢測節(jié)點 Sjv(1≤v≤t)的地理位置Ljv和密鑰分區(qū)索引Ujv,則先判斷R中附帶的Sjv的密鑰索引iv是否屬于密鑰分區(qū)Ujv,接下來判斷R中附帶的Sjv的地理位置是否與存儲的Ljv相等。若任何一項不滿足,則丟棄R。
5) 若存儲了R中某個密鑰索引iv,則利用存儲的密鑰 Kiv對 e重新計算一個 M并與 R中附帶的Miv比較,若二者差值小于某個閾值ε,則說明Miv正確,否則丟棄R。
最后,若以上驗證都通過,則將R轉(zhuǎn)發(fā)給下一跳節(jié)點。
圖2為轉(zhuǎn)發(fā)過濾算法偽代碼。
圖2 轉(zhuǎn)發(fā)過濾算法偽代碼
Sink節(jié)點擁有全局密鑰信息以及所有節(jié)點的位置信息,且具備強(qiáng)大的計算、存儲能力以及充足的能量,能夠過濾所有漏過中轉(zhuǎn)驗證而最終到達(dá)的虛假數(shù)據(jù)。當(dāng) sink接收到數(shù)據(jù)分組時,對所有的MAC以及檢測節(jié)點位置信息進(jìn)行重新校驗,如果所有MAC以及位置信息都正確,則接收數(shù)據(jù)分組并執(zhí)行相應(yīng)的決策,否則將數(shù)據(jù)分組丟棄。
為了簡化分析,假設(shè)網(wǎng)絡(luò)監(jiān)控區(qū)域為直徑 2ra的圓形區(qū)域,Na個感知半徑為rs的傳感器節(jié)點隨機(jī)部署在里面。
SEF是在數(shù)據(jù)分組中附帶t個MAC,由中間節(jié)點通過MAC驗證來過濾虛假數(shù)據(jù)。攻擊者在俘獲了網(wǎng)絡(luò)中任意地理區(qū)域的,且擁有不同密鑰分區(qū)的t個節(jié)點后,即可通過協(xié)作偽造出SEF無法過濾的假分組。例如,當(dāng)t=5時,攻擊者俘獲了圖3中的擁有不同密鑰分區(qū)的節(jié)點S1,…,S5之后,即可偽造出SEF無法過濾的假分組。
而GFFS在數(shù)據(jù)分組中同時附帶t個MAC和檢測節(jié)點的地理位置,中間節(jié)點既要對MAC進(jìn)行驗證,又要驗證地理位置的正確性和合法性(即各個檢測節(jié)點的地理位置與事件位置 Le之間的距離不能大于節(jié)點感知半徑rs)。若攻擊者利用節(jié)點S1,…,S5在GFFS中偽造假分組,由于節(jié)點S1和S4之間的距離大于 2rs,故無論怎樣偽造 Le,都無法使得節(jié)點S1,…,S5與Le之間的距離都小于rs,因此假分組將在第一跳便被過濾掉。因此,和SEF不同,GFFS可以防范不同地理區(qū)域的多個妥協(xié)節(jié)點協(xié)同偽造虛假數(shù)據(jù)。
根據(jù)GFFS的過濾規(guī)則,攻擊者若想偽造出中間節(jié)點無法識別的假分組,必須俘獲t個擁有不同密鑰分區(qū)、且都位于某個直徑為2rs區(qū)域內(nèi)的節(jié)點。如圖3所示,當(dāng)t =5時,假設(shè)攻擊者俘獲了直徑為2rs區(qū)域A中的節(jié)點S6,…,S10,且這些節(jié)點分別存儲不同的密鑰分區(qū),則可以偽造發(fā)生在區(qū)域A中圓心位置的事件Le,并構(gòu)造t個正確的MAC以及t個合法的地理位置,使得GFFS無法識別和過濾。
圖3 直徑為2rs區(qū)域內(nèi)的妥協(xié)節(jié)點
定理1 攻擊者在隨機(jī)俘獲網(wǎng)絡(luò)中的Nc個節(jié)點后(Nc≥t),可以獲得至少t個不同密鑰分區(qū)的概率為
證明 先考慮攻擊者獲得剛好t個不同密鑰分區(qū)的情形。首先,從n個密鑰分區(qū)中任取t個的方法有種。其次,記Nc個妥協(xié)節(jié)點組成的集合為B1,選取出來的t個密鑰分區(qū)的集合為B2。那么,集合B1中的每個節(jié)點各從集合B2中任取1個密鑰分區(qū),使得B2中每個密鑰分區(qū)都至少被取到1次,其方法數(shù)量有
最后,Nc個節(jié)點中的每個節(jié)點各從n個密鑰分區(qū)中任選 1個的方法總數(shù)為 nNc。故攻擊者至少獲得t個擁有不同密鑰分區(qū)節(jié)點的概率為PS。得證。
定理2 攻擊者在隨機(jī)俘獲網(wǎng)絡(luò)中的Nc個節(jié)點后(Nc≥t),獲得至少 t個擁有不同密鑰分區(qū),且都位于某個直徑為 2rs的圓形區(qū)域中的妥協(xié)節(jié)點的概率為
證明 先考慮剛好獲得 t個擁有不同密鑰分區(qū),且都位于某個直徑為2rs的區(qū)域中(假設(shè)為區(qū)域A)妥協(xié)節(jié)點的情形。由于每個節(jié)點以概率分布在A中,則A中剛好有t個節(jié)點的概率為。接下來,這t個節(jié)點被分配了不同密鑰分區(qū)的概率為因此,攻擊者剛好獲得t個擁有不同密鑰分區(qū),且都位于區(qū)域A中的妥協(xié)節(jié)點的概率為pd= pb×pc。
同理可求出剛好獲得t +1,t+2,…,Nc個擁有不同密鑰分區(qū),且都位于區(qū)域A中的妥協(xié)節(jié)點的概率。因此,至少獲得t個擁有不同密鑰分區(qū),且都位于某個直徑為 2rs區(qū)域中的妥協(xié)節(jié)點的概率為pG。得證。
圖4給出了當(dāng)t=5,rs/ra=1/2,n=15時,pS和pG的理論分析曲線和仿真實驗結(jié)果,其中仿真結(jié)果是在相同參數(shù)條件下隨機(jī)測試10 000次的平均值。如圖4所示,攻擊者在俘獲少量節(jié)點后即可以以較高概率攻破SEF,而攻擊者需要俘獲較多的節(jié)點才能攻破GFFS,例如當(dāng)Nc=10時,攻擊者有99.2%的概率可以攻破 SEF,而攻破 GFFS的概率僅為3%。這是因為 SEF沒有考慮節(jié)點密鑰與地理區(qū)域之間的關(guān)聯(lián)關(guān)系,攻擊者只要隨機(jī)從網(wǎng)絡(luò)中俘獲 t個密鑰分區(qū)便可攻破SEF;而GFFS通過引入地理位置信息可以將妥協(xié)節(jié)點的破壞性限制在本地,攻擊者必須俘獲t個擁有不同密鑰分區(qū),且同處于某個直徑為2rs的圓形區(qū)域內(nèi)的節(jié)點才能攻破GFFS。理論分析和仿真實驗結(jié)果都說明,GFFS的妥協(xié)容忍能力遠(yuǎn)強(qiáng)于SEF。
圖4 pS、pG的理論值與仿真結(jié)果
GFFS消耗的能量主要來自4個方面:①各個節(jié)點在初始化階段分發(fā)c個地理位置數(shù)據(jù)分組的開銷;②CoS與其他檢測節(jié)點在產(chǎn)生數(shù)據(jù)分組時的通信開銷;③中間節(jié)點進(jìn)行MAC驗證時的計算開銷;④中間節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)分組的通信開銷。
在初始化過程中,各個傳感器節(jié)點分發(fā)的數(shù)據(jù)分組很短(僅包括節(jié)點ID、節(jié)點位置和密鑰分區(qū)索引),且分發(fā)時間較短;在生成數(shù)據(jù)分組的過程中,CoS和其他檢測節(jié)點之間傳輸?shù)臄?shù)據(jù)分組長度也很短(僅包括MAC、節(jié)點號和地理位置各1個),且傳輸距離僅為1跳,這2種能耗與完整數(shù)據(jù)分組在網(wǎng)絡(luò)中傳輸?shù)哪芎南啾瓤梢院雎圆挥嫛A硗?,文獻(xiàn)[3]指出,MAC計算所消耗的能量比傳輸數(shù)據(jù)分組的能量低了幾個數(shù)量級,故在此也忽略不計。因此在這里只考慮轉(zhuǎn)發(fā)數(shù)據(jù)分組所消耗的能量。
和SEF相比,GFFS給每個數(shù)據(jù)分組增加了t個節(jié)點號及t個地理位置。令I(lǐng)r,In,Ik以及Iu分別表示不采用安全機(jī)制時的純數(shù)據(jù)分組長度、節(jié)點號長度、地理位置長度以及 MAC的長度,則 GFFS和SEF中數(shù)據(jù)分組長度分別可表示為Ir0=Ir+Ik+(In+Ik+Iu)t,Ir1=Ir+(In+Iu)t。例如,當(dāng) Ir=24byte,In=10bit,Ik=10bit,Iu=64bit時,GFFS數(shù)據(jù)分組和 SEF數(shù)據(jù)分組的長度分別為77.8byte和70byte。這些額外的負(fù)荷會增大數(shù)據(jù)分組傳輸?shù)哪芎?,但考慮到GFFS具備防范協(xié)同攻擊的能力,這樣的額外開銷是可以承受的。此外,若攻擊者利用來自不同地理區(qū)域的妥協(xié)節(jié)點協(xié)同偽造假分組并注入網(wǎng)絡(luò)中,則GFFS可以通過盡快將假分組過濾而比SEF節(jié)省能量,本文將在仿真實驗部分對此進(jìn)行驗證。
GFFS中每個傳感器節(jié)點需要存儲一個密鑰分區(qū)中的k個密鑰以及c個節(jié)點位置。假設(shè)每個密鑰和節(jié)點位置的長度分別為64bit和10bit,則存儲5個密鑰和60個節(jié)點位置約需耗費(fèi)115byte的存儲空間。當(dāng)前主流節(jié)點(如UCB研制的MICA2節(jié)點)配置3KB以上的SRAM和128KB以上的ROM[2],顯然能滿足需求。此外,可以采用布隆過濾器[12](Bloom filters)將節(jié)點地理位置映射成字符串,以降低節(jié)點存儲開銷。
全局密鑰池參數(shù)(包括全局密鑰池大小N、每個節(jié)點存儲的密鑰數(shù)量k和密鑰分區(qū)數(shù)量n)對過濾概率的影響在 SEF[3]中已詳細(xì)分析,主要對參數(shù) t(每個合法數(shù)據(jù)分組攜帶的MAC和地理位置數(shù)量),參數(shù)c(每個節(jié)點存儲的地理位置數(shù)量)以及參數(shù)Nc(攻擊者俘獲的妥協(xié)節(jié)點數(shù)量)的取值進(jìn)行分析。
t的取值是安全性和能量消耗之間的折中。數(shù)據(jù)分組攜帶的MAC和地理位置越多,攻擊者需要俘獲更多的節(jié)點才能成功偽造出安全機(jī)制無法過濾的假分組,從而加大了攻擊難度,增強(qiáng)了安全性。但是,這樣也增大了數(shù)據(jù)分組的長度,從而導(dǎo)致在傳輸過程中消耗更多的能量。此外,t的大小還受限于節(jié)點允許的最大數(shù)據(jù)分組長度。例如,一些低端節(jié)點支持的最大數(shù)據(jù)分組長度僅為36bit,因此t不能太大[3]。
c的取值也是安全性和存儲開銷之間的折中。節(jié)點預(yù)存儲的地理位置數(shù)量越多,則中間節(jié)點能夠以更大的概率對假分組中的地理位置進(jìn)行檢測,從而增大了過濾假分組的概率。但c / Na不能太大,否則攻擊者在俘獲少量節(jié)點后即可獲取網(wǎng)絡(luò)中所有節(jié)點的地理位置。此外,在實際應(yīng)用中,c的取值還受限于節(jié)點存儲能力。例如,假設(shè)一個地理位置的長度為 10bit,存儲 100個驗證密鑰就需要1KB,占用了傳感器節(jié)點較大的存儲空間。
攻擊者俘獲的妥協(xié)節(jié)點數(shù)量Nc越大,則攻擊者可以以較大的概率獲取一些相鄰節(jié)點的秘密信息,從而在偽造假分組時所需捏造的假 MAC和假地理位置數(shù)量也越少,相應(yīng)地降低了假分組被中間節(jié)點識別的概率。當(dāng)Nc足夠大時,由于獲取的秘密信息足夠多,攻擊者可以偽造出GFFS無法過濾的假分組。
為了進(jìn)一步驗證GFFS的性能,本文和SEF[3]一樣,利用C++語言建立了模擬仿真平臺。仿真實驗中采用的 GFFS數(shù)據(jù)分組大小為 77.8byte,SEF數(shù)據(jù)分組大小為 70byte,節(jié)點發(fā)送和接收 1個77.8byte數(shù)據(jù)分組的功耗分別為 6.6×10-3J,1.3×10-3J,發(fā)送和接收一個70byte數(shù)據(jù)分組的功耗分別為6×10-3J,1.2×10-3J[3]。仿真環(huán)境如下:在1個圓形網(wǎng)絡(luò)區(qū)域中,1個靜態(tài)源節(jié)點和1個靜態(tài)sink節(jié)點分別位于圓心和圓周上,其他節(jié)點隨機(jī)分布在圓形區(qū)域中。其他仿真參數(shù)的設(shè)置見表 1。限于篇幅,僅給出了在c=0,20,40的情況下,GFFS和SEF在妥協(xié)容忍、過濾概率以及能耗方面的實驗數(shù)據(jù)。取10次仿真實驗的平均值作為實驗結(jié)果。
表1 仿真參數(shù)的設(shè)置
為有效評價相關(guān)機(jī)制的假分組過濾能力,本文提出利用單跳可過濾數(shù)據(jù)分組的累積值進(jìn)行性能評價,如式(5)所示,其中,h為傳輸跳數(shù),Nh為第h跳過濾的假分組個數(shù)。若機(jī)制的過濾性能越好,則假分組在網(wǎng)絡(luò)中傳輸?shù)奶鴶?shù)越少,相應(yīng)地f (0≤f ≤100)越大。反之,f =0則說明由于太多的節(jié)點被妥協(xié),攻擊者偽造的假分組無法被安全機(jī)制過濾。
圖5給出了f隨妥協(xié)節(jié)點數(shù)量Nc和每個節(jié)點存儲的地理位置數(shù)量c的變化情況。從圖5中可以得出如下幾點:①c越大時,GFFS的過濾能力越強(qiáng)。以Nc=80為例,當(dāng)c=20時,f僅為37,而當(dāng)c =40時,f為47。因為c越大時,節(jié)點存儲的地理位置數(shù)量越多,中間節(jié)點對假分組中包含的假地理位置進(jìn)行驗證的概率也越高,故GFFS的過濾能力也越強(qiáng)。②當(dāng)c =0或Nc≥130時,GFFS的過濾能力和SEF相同,而在其他情況下,GFFS的過濾能力強(qiáng)于SEF。因為當(dāng)c =0時,中間節(jié)點不存儲其他節(jié)點的地理位置,此時GFFS和SEF都無法對地理位置進(jìn)行驗證,因此過濾能力相同;當(dāng)Nc≥130時,此時攻擊者俘獲了足夠多的秘密信息,從而可偽造出GFFS和SEF都無法過濾的假分組;當(dāng)c>0且Nc<130時,SEF僅能對假分組中的MAC進(jìn)行驗證,而GFFS則能同時對 MAC和地理位置進(jìn)行驗證,故 GFFS的過濾能力強(qiáng)于 SEF。③GFFS能容忍的妥協(xié)節(jié)點數(shù)量為130個,遠(yuǎn)多于SEF能容忍的12個。這是因為 SEF無法防范來自不同地理區(qū)域的妥協(xié)節(jié)點的協(xié)同攻擊,故攻擊者在俘獲少量節(jié)點后即可攻破SEF;而 GFFS能通過地理位置驗證防范來自不同地理區(qū)域的妥協(xié)節(jié)點的協(xié)同攻擊,故攻擊者攻破GFFS需要俘獲大量節(jié)點。
圖5 過濾概率
圖6所示為源節(jié)點產(chǎn)生的100個假數(shù)據(jù)分組在GFFS和SEF中的傳輸能耗對比情況。從圖6中可以看出,只有在c =0,且Nc<12的情況下,GFFS的能耗比SEF稍大,而其他時候GFFS的能耗都小于SEF。這是因為當(dāng)c=0,且Nc<12時,GFFS的過濾能力和 SEF一致,而 GFFS的數(shù)據(jù)分組比 SEF數(shù)據(jù)分組長,因此GFFS能耗比SEF大;在其他情況下,盡管GFFS數(shù)據(jù)分組長度大于SEF,但GFFS能通過盡早將假數(shù)據(jù)分組過濾掉而達(dá)到比 SEF更節(jié)省能量的目的。
圖6 能量消耗
本文在深入分析當(dāng)前方案無法對傳感器網(wǎng)絡(luò)中不同區(qū)域的妥協(xié)節(jié)點協(xié)同偽造的虛假數(shù)據(jù)進(jìn)行檢測和識別的原因后,提出一種基于地理位置的過濾方案 GFFS。將節(jié)點位置信息預(yù)分發(fā)給中間節(jié)點存儲,由中間節(jié)點在轉(zhuǎn)發(fā)過程中同時對數(shù)據(jù)分組中所包含的MAC和檢測節(jié)點位置信息進(jìn)行驗證,從而將不同區(qū)域的妥協(xié)節(jié)點協(xié)同偽造的虛假數(shù)據(jù)過濾掉。理論分析及仿真實驗表明,GFFS可以有效地防止協(xié)同攻擊,并具備較好的妥協(xié)容忍能力和較低的能量開銷。然而,獲取節(jié)點絕對位置信息增大了傳感器節(jié)點的開銷,因此,研究利用鄰居節(jié)點相對位置信息防止來自不同地理區(qū)域的妥協(xié)節(jié)點的協(xié)同攻擊將成為進(jìn)一步的工作。
[1] 任豐原, 黃海寧, 林闖. 無線傳感器網(wǎng)絡(luò)[J]. 軟件學(xué)報, 2003,14(7):1282-1291.REN F Y, HUANG H N, LIN C. Wireless sensor networks[J]. Journal of Software, 2003,14(7):1282-1291.
[2] 蘇忠, 林闖, 封富君等. 無線傳感器網(wǎng)絡(luò)密鑰管理的方案和協(xié)議[J].軟件學(xué)報, 2007,18(5):1218-1231.SU Z, LIN C, FENG F J, et al. Key management schemes and protocols for wireless sensor networks[J]. Journal of Software, 2007,18(5):1218-1231.
[3] YE F, LUO H, ZHANG L. Statistical en-route filtering of injected false data in sensor networks[A]. Proceedings of 23th Annual Joint Conference of the IEEE Computer and Communications Societies,INFOCOM’04[C]. Hong Kong, China, 2004.2446-2457.
[4] ZHU S, SETIA S, JAJODIA S. An interleaved hop-by-hop authentication scheme for filtering of injected false data in sensor networks[A].Proceeding IEEE Symposium on Security and Privacy, S&P’04[C].Berkley, CA, USA, 2004.259-271.
[5] YU Z, GUAN Y. A Dynamic en-route scheme for filtering false data injection in wireless sensor networks[A]. Proceedings of the 3rd International Conference on Embedded Networked Sensor Systems,SenSys’05[C]. San Diego, 2005.294-295.
[6] LI F, W J. A probabilistic voting-based filtering scheme in wireless sensor networks[A]. Proceedings of the International Wireless Communications and Mobile Computing Conference, IWCMC’06[C].Vancouver, Canada, 2006.255-265.
[7] MA M. Resilience of sink filtering scheme in wireless sensor networks[J]. Computer Communications, 2006, 30(1):55-65.
[8] YANG H, LU S. Commutative cipher based en-route filtering in wireless sensor networks[A]. Vehicular Technology Conference, VTC’04[C].Los Angeles, USA, 2004.1223-1227.
[9] WANG H, LI Q. PDF: a public-key based false data filtering scheme in sensor networks[A]. Proceedings of the International Conference on Wireless Algorithms, Systems and Applications, WASA’07[C]. Vaasa,Finland, 2007.129-138.
[10] REN K, LOU W, ZHANG Y. Providing location-aware end-to-end data security in wireless sensor networks[A]. Proceedings of the IEEE Conference on Computing and Communicating, INFOCOM’06[C].Barcelona, Spain, 2006.585-598.
[11] AYDAY E, DELGOSHA F and FEKRI F. Location-aware security services for wireless sensor networks using network coding[A]. IEEE Conference on Computer Communications, INFOCOM’07[C]. Anchorage, Alaska, USA, 2007.1226-1234.
[12] BLOOM B. Space/Time trade-offs in hash coding with allowable errors[J]. Communications of the ACM, 1970,13(7):422-426.
[13] MAO G, FIDAN B, ANDERSON B. Wireless sensor network localization techniques[J]. Computer Networks: The International Journal of Computer and Telecommunications Networking, 2007.2529-2553.
[14] BOSE P, MORIN B, STOJMENOVIC I, URRUTIA J. Routing with guaranteed delivery in ad hoc wireless networks[J]. Wireless Networks,2001, 7(6): 609-616.
[15] PENG S L, LI S S, LIAO X K, PENG Y X, XIAO N. Estimation of a population size in large-scale wireless sensor networks[J]. Journal of Computer Science and Technology, 2009,24(5):987-996.