劉志雄,王建新
(中南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410083)
無(wú)線傳感器網(wǎng)絡(luò)(WSN, wireless sensor network)在軍事和民用領(lǐng)域具有廣泛的應(yīng)用,如環(huán)境和交通監(jiān)測(cè),災(zāi)難救助甚至人體心臟監(jiān)視[1]。傳感器節(jié)點(diǎn)通常部署在野外或者敵方區(qū)域,攻擊者可以通過(guò)俘獲節(jié)點(diǎn)并利用存儲(chǔ)在節(jié)點(diǎn)內(nèi)的秘密信息捏造事實(shí)上不存在的虛假事件,發(fā)動(dòng)虛假數(shù)據(jù)注入攻擊[2]。這類(lèi)攻擊不僅引發(fā)錯(cuò)誤警報(bào),同時(shí)也可以耗盡寶貴的網(wǎng)絡(luò)資源[3,4]。
鑒于虛假數(shù)據(jù)的安全威脅,不少學(xué)者提出了一些解決辦法[3~11],它們的共同特點(diǎn)是在待發(fā)送的數(shù)據(jù)報(bào)告中附加 t個(gè) MAC(message authentication code),并在數(shù)據(jù)轉(zhuǎn)發(fā)的過(guò)程中對(duì)MAC進(jìn)行驗(yàn)證,從而實(shí)現(xiàn)對(duì)虛假數(shù)據(jù)的識(shí)別和過(guò)濾,這里t是系統(tǒng)參數(shù)。這些方案在過(guò)濾性能和安全性等方面都獲得了較好的效果,但沒(méi)有考慮節(jié)點(diǎn)密鑰與地理位置的相關(guān)性,故無(wú)法過(guò)濾不同地理區(qū)域多個(gè)妥協(xié)節(jié)點(diǎn)協(xié)同偽造的虛假數(shù)據(jù)。
本文提出一種基于地理位置的虛假數(shù)據(jù)過(guò)濾方案 GFFS,將節(jié)點(diǎn)地理位置預(yù)分發(fā)給中間節(jié)點(diǎn)存儲(chǔ),并在數(shù)據(jù)報(bào)告中同時(shí)附帶檢測(cè)節(jié)點(diǎn)產(chǎn)生的MAC和地理位置,然后由中間節(jié)點(diǎn)在轉(zhuǎn)發(fā)過(guò)程中同時(shí)對(duì)數(shù)據(jù)分組中包含的MAC和地理位置進(jìn)行驗(yàn)證,從而將不同地理區(qū)域的多個(gè)妥協(xié)節(jié)點(diǎn)協(xié)同偽造的虛假數(shù)據(jù)過(guò)濾掉。
文獻(xiàn)[3]率先提出了傳感器網(wǎng)絡(luò)中虛假數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)濾的基本框架SEF。SEF將一個(gè)全局密鑰池分成n(n>t)個(gè)密鑰分區(qū),每個(gè)分區(qū)包含m個(gè)密鑰。每個(gè)節(jié)點(diǎn)在部署前隨機(jī)地從全局密鑰池中選取一個(gè)密鑰分區(qū),并從中任選k個(gè)密鑰進(jìn)行存儲(chǔ)。事件發(fā)生后,多個(gè)檢測(cè)節(jié)點(diǎn)聯(lián)合產(chǎn)生一個(gè)包含t個(gè)互不相同的MAC數(shù)據(jù)報(bào)告。在數(shù)據(jù)分組轉(zhuǎn)發(fā)過(guò)程中,與檢測(cè)節(jié)點(diǎn)擁有相同密鑰分區(qū)的中間節(jié)點(diǎn)以概率 k /m對(duì)數(shù)據(jù)分組中的一個(gè)MAC進(jìn)行驗(yàn)證。在SEF中,攻擊者只要俘獲了t個(gè)不同密鑰分區(qū),即可通過(guò)協(xié)作偽造出不被識(shí)別的假分組。
例如,當(dāng)t=5時(shí),假設(shè)攻擊者俘獲了圖1中的擁有不同密鑰分區(qū)的節(jié)點(diǎn)S1,…,S5,盡管這5個(gè)節(jié)點(diǎn)位于網(wǎng)絡(luò)中不同的地理區(qū)域,但攻擊者仍然可以利用它們協(xié)同地偽造發(fā)生在A點(diǎn)(或者其他任何位置)的假分組R,并通過(guò)妥協(xié)節(jié)點(diǎn)S1發(fā)送給S1的鄰居節(jié)點(diǎn),而轉(zhuǎn)發(fā)節(jié)點(diǎn)和sink都無(wú)法對(duì)R進(jìn)行檢測(cè)和過(guò)濾。
圖1 多個(gè)妥協(xié)節(jié)點(diǎn)協(xié)同偽造虛假數(shù)據(jù)
文獻(xiàn)[4]提出了一種交叉、逐步的認(rèn)證機(jī)制IHA。IHA將節(jié)點(diǎn)組織成簇,簇頭建立到sink的路徑,并基于路徑進(jìn)行交叉式對(duì)稱(chēng)密鑰分發(fā),然后在轉(zhuǎn)發(fā)過(guò)程中由中間節(jié)點(diǎn)對(duì)簇頭產(chǎn)生的數(shù)據(jù)分組進(jìn)行逐步、交叉的驗(yàn)證。IHA采用一種確定性的方式進(jìn)行密鑰分發(fā)和數(shù)據(jù)驗(yàn)證,限制了網(wǎng)絡(luò)中不同區(qū)域的妥協(xié)節(jié)點(diǎn)協(xié)同地偽造假數(shù)據(jù)分組。然而,一旦路由發(fā)生變化,這種確定性的數(shù)據(jù)驗(yàn)證方式也隨之失效,重新建立路由并分發(fā)密鑰需要較大的維護(hù)開(kāi)銷(xiāo)。
文獻(xiàn)[5]提出了一種基于爬山 (hill climbing)策略和多徑路由的虛假數(shù)據(jù)過(guò)濾方案 DEFS。DEFS將網(wǎng)絡(luò)節(jié)點(diǎn)組織成簇,簇頭采用類(lèi)似“爬山”的策略進(jìn)行密鑰分發(fā):以較高的概率將簇內(nèi)節(jié)點(diǎn)的密鑰預(yù)分發(fā)給離簇頭較近的中間節(jié)點(diǎn)存儲(chǔ),而以較低的概率將簇內(nèi)節(jié)點(diǎn)的密鑰預(yù)分發(fā)給離簇頭較遠(yuǎn)的節(jié)點(diǎn)存儲(chǔ)。檢測(cè)到突發(fā)事件后,簇頭將數(shù)據(jù)分組沿多條路徑并發(fā)地向sink轉(zhuǎn)發(fā),中間節(jié)點(diǎn)分別以一定概率對(duì)數(shù)據(jù)分組進(jìn)行驗(yàn)證。爬山策略有利于減輕靠近sink節(jié)點(diǎn)的工作負(fù)擔(dān),然而多路徑并發(fā)傳輸數(shù)據(jù)分組的開(kāi)銷(xiāo)太大,不利于節(jié)省傳感器節(jié)點(diǎn)的能量。
文獻(xiàn)[6]提出了一種基于簇組織和投票機(jī)制的虛假數(shù)據(jù)過(guò)濾方案PVFS。PVFS將節(jié)點(diǎn)組織成簇,源簇頭建立一條到sink的路徑。和IHA不同的是,轉(zhuǎn)發(fā)節(jié)點(diǎn)均為簇頭,以概率di/ d0存儲(chǔ)源簇內(nèi)一個(gè)節(jié)點(diǎn)的密鑰,其中,d0和di分別表示源簇頭和轉(zhuǎn)發(fā)簇頭距離sink的跳數(shù)。事件發(fā)生時(shí),簇頭收集簇內(nèi)t個(gè)節(jié)點(diǎn)產(chǎn)生的投票生成數(shù)據(jù)分組,轉(zhuǎn)發(fā)簇頭節(jié)點(diǎn)以一定概率對(duì)數(shù)據(jù)分組進(jìn)行驗(yàn)證。PVFS由簇頭轉(zhuǎn)發(fā)數(shù)據(jù)分組,簇頭之間需要以比普通節(jié)點(diǎn)較大的通信半徑進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),簇頭容易因能量耗盡而死亡。
文獻(xiàn)[7]提出了一種不受門(mén)限值限制的過(guò)濾機(jī)制RSFS。節(jié)點(diǎn)與sink形成星形拓?fù)?,事件發(fā)生后,由一種比普通節(jié)點(diǎn)能量強(qiáng)得多的節(jié)點(diǎn)作為簇頭完成數(shù)據(jù)聚合,聚合結(jié)果必須附加簇內(nèi)每個(gè)普通節(jié)點(diǎn)產(chǎn)生的 MAC。目的節(jié)點(diǎn)在接收到匯聚結(jié)果時(shí)通過(guò)對(duì)聚合結(jié)果及附加 MAC信息的校驗(yàn),實(shí)現(xiàn)對(duì)虛假數(shù)據(jù)的過(guò)濾。該方案不受門(mén)限值的限制,但假數(shù)據(jù)分組必須傳輸?shù)絪ink才能被檢測(cè)到,而無(wú)法由轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行檢測(cè)和過(guò)濾,不利于節(jié)省傳感器網(wǎng)絡(luò)的能量。
文獻(xiàn)[8]的作者認(rèn)為以上基于對(duì)稱(chēng)密鑰機(jī)制的安全性不夠,提出了一種基于密碼交換(commutative cipher)的路由過(guò)濾機(jī)制 CCEF。該機(jī)制假設(shè)各節(jié)點(diǎn)與基站共享一會(huì)話密鑰(session key),路由中報(bào)文轉(zhuǎn)發(fā)節(jié)點(diǎn)不知道報(bào)文源節(jié)點(diǎn)的會(huì)話密鑰,但可通過(guò)交換密碼對(duì)報(bào)文進(jìn)行檢測(cè),從而提高了安全性。文獻(xiàn)[9]利用橢圓曲線密鑰技術(shù)來(lái)改進(jìn)文獻(xiàn)[8]中的方案,進(jìn)一步提高安全性。文獻(xiàn)[10]將整個(gè)網(wǎng)絡(luò)劃分為不重疊的單元(cell),以單元塊(cell by cell)的方式傳遞數(shù)據(jù),采用門(mén)限共享技術(shù)和公開(kāi)密鑰技術(shù)來(lái)保證數(shù)據(jù)的安全。文獻(xiàn)[11]在文獻(xiàn)[10]的基礎(chǔ)上,將網(wǎng)絡(luò)劃分為不重疊單元,在特定的路由上對(duì)數(shù)據(jù)加密進(jìn)行研究。
最近研究表明[2,4],公開(kāi)密鑰技術(shù)雖然比對(duì)稱(chēng)密鑰技術(shù)具備更好的安全性,但對(duì)存儲(chǔ)空間和計(jì)算能力要求較高,無(wú)法順利應(yīng)用在性能有限的傳感器網(wǎng)絡(luò)中;而對(duì)稱(chēng)密鑰技術(shù)的計(jì)算復(fù)雜性較小,實(shí)現(xiàn)簡(jiǎn)單,從能量有效及實(shí)用性等角度來(lái)說(shuō),為資源有限的傳感器網(wǎng)絡(luò)所青睞。已有基于對(duì)稱(chēng)密鑰技術(shù)的方案,如SEF、DEFS、PVFS、RSFS等,沒(méi)有將節(jié)點(diǎn)密鑰與節(jié)點(diǎn)地理位置綁定,故無(wú)法檢測(cè)不同地理區(qū)域多個(gè)妥協(xié)節(jié)點(diǎn)協(xié)同偽造的虛假數(shù)據(jù)。本文基于對(duì)稱(chēng)密鑰技術(shù),研究如何過(guò)濾不同地理區(qū)域多個(gè)妥協(xié)節(jié)點(diǎn)協(xié)同偽造的虛假數(shù)據(jù)。
假設(shè)傳感器節(jié)點(diǎn)分布密度較大,事件e發(fā)生后,有多于t個(gè)節(jié)點(diǎn)同時(shí)檢測(cè)到。各個(gè)檢測(cè)節(jié)點(diǎn)利用密鑰對(duì)事件進(jìn)行加密后生成MAC,然后將MAC和位置信息發(fā)送給一個(gè)中心節(jié)點(diǎn)(CoS, central of stimulas)[3]。此外,CoS聯(lián)合其他檢測(cè)節(jié)點(diǎn),采用感知范圍疊加的辦法對(duì)事件發(fā)生地點(diǎn)進(jìn)行定位,得到Le,這里 Le是取多個(gè)節(jié)點(diǎn)感知范圍重疊區(qū)域中某個(gè)點(diǎn)的位置。CoS將事件位置Le、各個(gè)檢測(cè)節(jié)點(diǎn)的位置以及MAC附加在事件e后面,生成數(shù)據(jù)報(bào)告。
假設(shè)攻擊者可以俘獲網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn),然后利用存儲(chǔ)在這些節(jié)點(diǎn)中的秘密信息偽造虛假數(shù)據(jù)報(bào)告并發(fā)送給鄰居節(jié)點(diǎn),發(fā)動(dòng)虛假數(shù)據(jù)注入攻擊[3,4]。假設(shè) sink節(jié)點(diǎn)無(wú)法被俘獲,且其擁有全局密鑰信息,能量充足,并具備強(qiáng)大的計(jì)算和存儲(chǔ)能力,能夠過(guò)濾所有最終到達(dá)的假數(shù)據(jù)分組。
部署前,給每個(gè)傳感器節(jié)點(diǎn)分配唯一的 ID標(biāo)識(shí)。存在一個(gè)全局密鑰池G={Ki:0≤I≤N-1},密鑰池大小為 N,分為 n個(gè)不重疊的密鑰分區(qū){Ui,0≤I≤n-1},每個(gè)分區(qū)包含m個(gè)密鑰(N=nm)。每個(gè)節(jié)點(diǎn)隨機(jī)選擇一個(gè)密鑰分區(qū),并任取其中k個(gè)密鑰存儲(chǔ)。
各個(gè)傳感器節(jié)點(diǎn)Si通過(guò)GPS或者其他方法[13]可以獲得其地理位置,記為L(zhǎng)i:(Xi, Yi),其中,Xi、Yi分別表示節(jié)點(diǎn)Si在整個(gè)監(jiān)控區(qū)域的橫坐標(biāo)和縱坐標(biāo)。接下來(lái),各節(jié)點(diǎn)Si利用Bubble-geocast算法[14,15]將c個(gè)數(shù)據(jù)分組(Si, Li, Ui)分發(fā)給中間節(jié)點(diǎn)存儲(chǔ),使得中間節(jié)點(diǎn)各以概率 c/Na存儲(chǔ)該數(shù)據(jù)分組,其中Na為網(wǎng)絡(luò)中節(jié)點(diǎn)總數(shù)量,Ui為節(jié)點(diǎn)Si存儲(chǔ)的密鑰分區(qū)索引。
事件發(fā)生后,檢測(cè)節(jié)點(diǎn)共同選舉一個(gè)中心節(jié)點(diǎn)CoS。CoS將感知數(shù)值e發(fā)送給各檢測(cè)節(jié)點(diǎn),檢測(cè)節(jié)點(diǎn)收到數(shù)據(jù)e后,將自己的感知數(shù)值與e進(jìn)行比較,若誤差在預(yù)定的閾值范圍內(nèi),則隨機(jī)選取一個(gè)存儲(chǔ)的密鑰 Ki對(duì) e進(jìn)行加密,生成消息認(rèn)證碼Mi:Ki(e)。接下來(lái),各檢測(cè)節(jié)點(diǎn)將節(jié)點(diǎn)號(hào)、地理位置以及MAC發(fā)送給CoS。中心節(jié)點(diǎn)CoS將事件位置以及t個(gè)擁有不同密鑰分區(qū)的檢測(cè)節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)、密鑰索引、MAC和地理位置附加在感知數(shù)據(jù) e后面,產(chǎn)生數(shù)據(jù)報(bào)告R:{e, Le; i1, i2, …, it; Mi1, Mi2, …,Mit; j1, j2, …, jt; Lj1, Lj2, …, Ljt}。其中,i1, i2, …, it為密鑰索引,j1, j2, …, jt為節(jié)點(diǎn)號(hào)。
由于隨機(jī)預(yù)載了一個(gè)密鑰分區(qū)中的部分密鑰以及部分節(jié)點(diǎn)的地理位置和密鑰分區(qū)索引,故中間節(jié)點(diǎn)可以以一定概率對(duì)數(shù)據(jù)分組中的 MAC、節(jié)點(diǎn)位置以及密鑰索引進(jìn)行驗(yàn)證。
當(dāng)接收到轉(zhuǎn)發(fā)數(shù)據(jù)分組R時(shí),中間節(jié)點(diǎn)Si首先對(duì)數(shù)據(jù)分組中附帶的節(jié)點(diǎn)ID、密鑰索引、MAC以及地理位置的數(shù)量進(jìn)行檢查,然后核對(duì)這些密鑰索引是否屬于不同密鑰分區(qū),接下來(lái)檢查各個(gè)地理位置與事件發(fā)生位置Le之間距離的合法性,最后驗(yàn)證MAC、地理位置和密鑰索引的正確性。中間節(jié)點(diǎn)對(duì)數(shù)據(jù)分組R的具體驗(yàn)證步驟如下。
1) 檢查數(shù)據(jù)分組R中是否各包含t個(gè)節(jié)點(diǎn)ID、密鑰索引、MAC以及地理位置。若任何一項(xiàng)的數(shù)量不符合要求,則丟棄R。
2) 檢查 t個(gè)密鑰索引是否屬于不同的密鑰分區(qū),否則丟棄R。
3) 檢查各個(gè)地理位置與 Le之間的距離是否都小于節(jié)點(diǎn)感知半徑rs,否則丟棄R。
4) 若存儲(chǔ)了 R中某個(gè)檢測(cè)節(jié)點(diǎn) Sjv(1≤v≤t)的地理位置Ljv和密鑰分區(qū)索引Ujv,則先判斷R中附帶的Sjv的密鑰索引iv是否屬于密鑰分區(qū)Ujv,接下來(lái)判斷R中附帶的Sjv的地理位置是否與存儲(chǔ)的Ljv相等。若任何一項(xiàng)不滿(mǎn)足,則丟棄R。
5) 若存儲(chǔ)了R中某個(gè)密鑰索引iv,則利用存儲(chǔ)的密鑰 Kiv對(duì) e重新計(jì)算一個(gè) M并與 R中附帶的Miv比較,若二者差值小于某個(gè)閾值ε,則說(shuō)明Miv正確,否則丟棄R。
最后,若以上驗(yàn)證都通過(guò),則將R轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)。
圖2為轉(zhuǎn)發(fā)過(guò)濾算法偽代碼。
圖2 轉(zhuǎn)發(fā)過(guò)濾算法偽代碼
Sink節(jié)點(diǎn)擁有全局密鑰信息以及所有節(jié)點(diǎn)的位置信息,且具備強(qiáng)大的計(jì)算、存儲(chǔ)能力以及充足的能量,能夠過(guò)濾所有漏過(guò)中轉(zhuǎn)驗(yàn)證而最終到達(dá)的虛假數(shù)據(jù)。當(dāng) sink接收到數(shù)據(jù)分組時(shí),對(duì)所有的MAC以及檢測(cè)節(jié)點(diǎn)位置信息進(jìn)行重新校驗(yàn),如果所有MAC以及位置信息都正確,則接收數(shù)據(jù)分組并執(zhí)行相應(yīng)的決策,否則將數(shù)據(jù)分組丟棄。
為了簡(jiǎn)化分析,假設(shè)網(wǎng)絡(luò)監(jiān)控區(qū)域?yàn)橹睆?2ra的圓形區(qū)域,Na個(gè)感知半徑為rs的傳感器節(jié)點(diǎn)隨機(jī)部署在里面。
SEF是在數(shù)據(jù)分組中附帶t個(gè)MAC,由中間節(jié)點(diǎn)通過(guò)MAC驗(yàn)證來(lái)過(guò)濾虛假數(shù)據(jù)。攻擊者在俘獲了網(wǎng)絡(luò)中任意地理區(qū)域的,且擁有不同密鑰分區(qū)的t個(gè)節(jié)點(diǎn)后,即可通過(guò)協(xié)作偽造出SEF無(wú)法過(guò)濾的假分組。例如,當(dāng)t=5時(shí),攻擊者俘獲了圖3中的擁有不同密鑰分區(qū)的節(jié)點(diǎn)S1,…,S5之后,即可偽造出SEF無(wú)法過(guò)濾的假分組。
而GFFS在數(shù)據(jù)分組中同時(shí)附帶t個(gè)MAC和檢測(cè)節(jié)點(diǎn)的地理位置,中間節(jié)點(diǎn)既要對(duì)MAC進(jìn)行驗(yàn)證,又要驗(yàn)證地理位置的正確性和合法性(即各個(gè)檢測(cè)節(jié)點(diǎn)的地理位置與事件位置 Le之間的距離不能大于節(jié)點(diǎn)感知半徑rs)。若攻擊者利用節(jié)點(diǎn)S1,…,S5在GFFS中偽造假分組,由于節(jié)點(diǎn)S1和S4之間的距離大于 2rs,故無(wú)論怎樣偽造 Le,都無(wú)法使得節(jié)點(diǎn)S1,…,S5與Le之間的距離都小于rs,因此假分組將在第一跳便被過(guò)濾掉。因此,和SEF不同,GFFS可以防范不同地理區(qū)域的多個(gè)妥協(xié)節(jié)點(diǎn)協(xié)同偽造虛假數(shù)據(jù)。
根據(jù)GFFS的過(guò)濾規(guī)則,攻擊者若想偽造出中間節(jié)點(diǎn)無(wú)法識(shí)別的假分組,必須俘獲t個(gè)擁有不同密鑰分區(qū)、且都位于某個(gè)直徑為2rs區(qū)域內(nèi)的節(jié)點(diǎn)。如圖3所示,當(dāng)t =5時(shí),假設(shè)攻擊者俘獲了直徑為2rs區(qū)域A中的節(jié)點(diǎn)S6,…,S10,且這些節(jié)點(diǎn)分別存儲(chǔ)不同的密鑰分區(qū),則可以偽造發(fā)生在區(qū)域A中圓心位置的事件Le,并構(gòu)造t個(gè)正確的MAC以及t個(gè)合法的地理位置,使得GFFS無(wú)法識(shí)別和過(guò)濾。
圖3 直徑為2rs區(qū)域內(nèi)的妥協(xié)節(jié)點(diǎn)
定理1 攻擊者在隨機(jī)俘獲網(wǎng)絡(luò)中的Nc個(gè)節(jié)點(diǎn)后(Nc≥t),可以獲得至少t個(gè)不同密鑰分區(qū)的概率為
證明 先考慮攻擊者獲得剛好t個(gè)不同密鑰分區(qū)的情形。首先,從n個(gè)密鑰分區(qū)中任取t個(gè)的方法有種。其次,記Nc個(gè)妥協(xié)節(jié)點(diǎn)組成的集合為B1,選取出來(lái)的t個(gè)密鑰分區(qū)的集合為B2。那么,集合B1中的每個(gè)節(jié)點(diǎn)各從集合B2中任取1個(gè)密鑰分區(qū),使得B2中每個(gè)密鑰分區(qū)都至少被取到1次,其方法數(shù)量有
最后,Nc個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)各從n個(gè)密鑰分區(qū)中任選 1個(gè)的方法總數(shù)為 nNc。故攻擊者至少獲得t個(gè)擁有不同密鑰分區(qū)節(jié)點(diǎn)的概率為PS。得證。
定理2 攻擊者在隨機(jī)俘獲網(wǎng)絡(luò)中的Nc個(gè)節(jié)點(diǎn)后(Nc≥t),獲得至少 t個(gè)擁有不同密鑰分區(qū),且都位于某個(gè)直徑為 2rs的圓形區(qū)域中的妥協(xié)節(jié)點(diǎn)的概率為
證明 先考慮剛好獲得 t個(gè)擁有不同密鑰分區(qū),且都位于某個(gè)直徑為2rs的區(qū)域中(假設(shè)為區(qū)域A)妥協(xié)節(jié)點(diǎn)的情形。由于每個(gè)節(jié)點(diǎn)以概率分布在A中,則A中剛好有t個(gè)節(jié)點(diǎn)的概率為。接下來(lái),這t個(gè)節(jié)點(diǎn)被分配了不同密鑰分區(qū)的概率為因此,攻擊者剛好獲得t個(gè)擁有不同密鑰分區(qū),且都位于區(qū)域A中的妥協(xié)節(jié)點(diǎn)的概率為pd= pb×pc。
同理可求出剛好獲得t +1,t+2,…,Nc個(gè)擁有不同密鑰分區(qū),且都位于區(qū)域A中的妥協(xié)節(jié)點(diǎn)的概率。因此,至少獲得t個(gè)擁有不同密鑰分區(qū),且都位于某個(gè)直徑為 2rs區(qū)域中的妥協(xié)節(jié)點(diǎn)的概率為pG。得證。
圖4給出了當(dāng)t=5,rs/ra=1/2,n=15時(shí),pS和pG的理論分析曲線和仿真實(shí)驗(yàn)結(jié)果,其中仿真結(jié)果是在相同參數(shù)條件下隨機(jī)測(cè)試10 000次的平均值。如圖4所示,攻擊者在俘獲少量節(jié)點(diǎn)后即可以以較高概率攻破SEF,而攻擊者需要俘獲較多的節(jié)點(diǎn)才能攻破GFFS,例如當(dāng)Nc=10時(shí),攻擊者有99.2%的概率可以攻破 SEF,而攻破 GFFS的概率僅為3%。這是因?yàn)?SEF沒(méi)有考慮節(jié)點(diǎn)密鑰與地理區(qū)域之間的關(guān)聯(lián)關(guān)系,攻擊者只要隨機(jī)從網(wǎng)絡(luò)中俘獲 t個(gè)密鑰分區(qū)便可攻破SEF;而GFFS通過(guò)引入地理位置信息可以將妥協(xié)節(jié)點(diǎn)的破壞性限制在本地,攻擊者必須俘獲t個(gè)擁有不同密鑰分區(qū),且同處于某個(gè)直徑為2rs的圓形區(qū)域內(nèi)的節(jié)點(diǎn)才能攻破GFFS。理論分析和仿真實(shí)驗(yàn)結(jié)果都說(shuō)明,GFFS的妥協(xié)容忍能力遠(yuǎn)強(qiáng)于SEF。
圖4 pS、pG的理論值與仿真結(jié)果
GFFS消耗的能量主要來(lái)自4個(gè)方面:①各個(gè)節(jié)點(diǎn)在初始化階段分發(fā)c個(gè)地理位置數(shù)據(jù)分組的開(kāi)銷(xiāo);②CoS與其他檢測(cè)節(jié)點(diǎn)在產(chǎn)生數(shù)據(jù)分組時(shí)的通信開(kāi)銷(xiāo);③中間節(jié)點(diǎn)進(jìn)行MAC驗(yàn)證時(shí)的計(jì)算開(kāi)銷(xiāo);④中間節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)分組的通信開(kāi)銷(xiāo)。
在初始化過(guò)程中,各個(gè)傳感器節(jié)點(diǎn)分發(fā)的數(shù)據(jù)分組很短(僅包括節(jié)點(diǎn)ID、節(jié)點(diǎn)位置和密鑰分區(qū)索引),且分發(fā)時(shí)間較短;在生成數(shù)據(jù)分組的過(guò)程中,CoS和其他檢測(cè)節(jié)點(diǎn)之間傳輸?shù)臄?shù)據(jù)分組長(zhǎng)度也很短(僅包括MAC、節(jié)點(diǎn)號(hào)和地理位置各1個(gè)),且傳輸距離僅為1跳,這2種能耗與完整數(shù)據(jù)分組在網(wǎng)絡(luò)中傳輸?shù)哪芎南啾瓤梢院雎圆挥?jì)。另外,文獻(xiàn)[3]指出,MAC計(jì)算所消耗的能量比傳輸數(shù)據(jù)分組的能量低了幾個(gè)數(shù)量級(jí),故在此也忽略不計(jì)。因此在這里只考慮轉(zhuǎn)發(fā)數(shù)據(jù)分組所消耗的能量。
和SEF相比,GFFS給每個(gè)數(shù)據(jù)分組增加了t個(gè)節(jié)點(diǎn)號(hào)及t個(gè)地理位置。令I(lǐng)r,In,Ik以及Iu分別表示不采用安全機(jī)制時(shí)的純數(shù)據(jù)分組長(zhǎng)度、節(jié)點(diǎn)號(hào)長(zhǎng)度、地理位置長(zhǎng)度以及 MAC的長(zhǎng)度,則 GFFS和SEF中數(shù)據(jù)分組長(zhǎng)度分別可表示為Ir0=Ir+Ik+(In+Ik+Iu)t,Ir1=Ir+(In+Iu)t。例如,當(dāng) Ir=24byte,In=10bit,Ik=10bit,Iu=64bit時(shí),GFFS數(shù)據(jù)分組和 SEF數(shù)據(jù)分組的長(zhǎng)度分別為77.8byte和70byte。這些額外的負(fù)荷會(huì)增大數(shù)據(jù)分組傳輸?shù)哪芎?,但考慮到GFFS具備防范協(xié)同攻擊的能力,這樣的額外開(kāi)銷(xiāo)是可以承受的。此外,若攻擊者利用來(lái)自不同地理區(qū)域的妥協(xié)節(jié)點(diǎn)協(xié)同偽造假分組并注入網(wǎng)絡(luò)中,則GFFS可以通過(guò)盡快將假分組過(guò)濾而比SEF節(jié)省能量,本文將在仿真實(shí)驗(yàn)部分對(duì)此進(jìn)行驗(yàn)證。
GFFS中每個(gè)傳感器節(jié)點(diǎn)需要存儲(chǔ)一個(gè)密鑰分區(qū)中的k個(gè)密鑰以及c個(gè)節(jié)點(diǎn)位置。假設(shè)每個(gè)密鑰和節(jié)點(diǎn)位置的長(zhǎng)度分別為64bit和10bit,則存儲(chǔ)5個(gè)密鑰和60個(gè)節(jié)點(diǎn)位置約需耗費(fèi)115byte的存儲(chǔ)空間。當(dāng)前主流節(jié)點(diǎn)(如UCB研制的MICA2節(jié)點(diǎn))配置3KB以上的SRAM和128KB以上的ROM[2],顯然能滿(mǎn)足需求。此外,可以采用布隆過(guò)濾器[12](Bloom filters)將節(jié)點(diǎn)地理位置映射成字符串,以降低節(jié)點(diǎn)存儲(chǔ)開(kāi)銷(xiāo)。
全局密鑰池參數(shù)(包括全局密鑰池大小N、每個(gè)節(jié)點(diǎn)存儲(chǔ)的密鑰數(shù)量k和密鑰分區(qū)數(shù)量n)對(duì)過(guò)濾概率的影響在 SEF[3]中已詳細(xì)分析,主要對(duì)參數(shù) t(每個(gè)合法數(shù)據(jù)分組攜帶的MAC和地理位置數(shù)量),參數(shù)c(每個(gè)節(jié)點(diǎn)存儲(chǔ)的地理位置數(shù)量)以及參數(shù)Nc(攻擊者俘獲的妥協(xié)節(jié)點(diǎn)數(shù)量)的取值進(jìn)行分析。
t的取值是安全性和能量消耗之間的折中。數(shù)據(jù)分組攜帶的MAC和地理位置越多,攻擊者需要俘獲更多的節(jié)點(diǎn)才能成功偽造出安全機(jī)制無(wú)法過(guò)濾的假分組,從而加大了攻擊難度,增強(qiáng)了安全性。但是,這樣也增大了數(shù)據(jù)分組的長(zhǎng)度,從而導(dǎo)致在傳輸過(guò)程中消耗更多的能量。此外,t的大小還受限于節(jié)點(diǎn)允許的最大數(shù)據(jù)分組長(zhǎng)度。例如,一些低端節(jié)點(diǎn)支持的最大數(shù)據(jù)分組長(zhǎng)度僅為36bit,因此t不能太大[3]。
c的取值也是安全性和存儲(chǔ)開(kāi)銷(xiāo)之間的折中。節(jié)點(diǎn)預(yù)存儲(chǔ)的地理位置數(shù)量越多,則中間節(jié)點(diǎn)能夠以更大的概率對(duì)假分組中的地理位置進(jìn)行檢測(cè),從而增大了過(guò)濾假分組的概率。但c / Na不能太大,否則攻擊者在俘獲少量節(jié)點(diǎn)后即可獲取網(wǎng)絡(luò)中所有節(jié)點(diǎn)的地理位置。此外,在實(shí)際應(yīng)用中,c的取值還受限于節(jié)點(diǎn)存儲(chǔ)能力。例如,假設(shè)一個(gè)地理位置的長(zhǎng)度為 10bit,存儲(chǔ) 100個(gè)驗(yàn)證密鑰就需要1KB,占用了傳感器節(jié)點(diǎn)較大的存儲(chǔ)空間。
攻擊者俘獲的妥協(xié)節(jié)點(diǎn)數(shù)量Nc越大,則攻擊者可以以較大的概率獲取一些相鄰節(jié)點(diǎn)的秘密信息,從而在偽造假分組時(shí)所需捏造的假 MAC和假地理位置數(shù)量也越少,相應(yīng)地降低了假分組被中間節(jié)點(diǎn)識(shí)別的概率。當(dāng)Nc足夠大時(shí),由于獲取的秘密信息足夠多,攻擊者可以偽造出GFFS無(wú)法過(guò)濾的假分組。
為了進(jìn)一步驗(yàn)證GFFS的性能,本文和SEF[3]一樣,利用C++語(yǔ)言建立了模擬仿真平臺(tái)。仿真實(shí)驗(yàn)中采用的 GFFS數(shù)據(jù)分組大小為 77.8byte,SEF數(shù)據(jù)分組大小為 70byte,節(jié)點(diǎn)發(fā)送和接收 1個(gè)77.8byte數(shù)據(jù)分組的功耗分別為 6.6×10-3J,1.3×10-3J,發(fā)送和接收一個(gè)70byte數(shù)據(jù)分組的功耗分別為6×10-3J,1.2×10-3J[3]。仿真環(huán)境如下:在1個(gè)圓形網(wǎng)絡(luò)區(qū)域中,1個(gè)靜態(tài)源節(jié)點(diǎn)和1個(gè)靜態(tài)sink節(jié)點(diǎn)分別位于圓心和圓周上,其他節(jié)點(diǎn)隨機(jī)分布在圓形區(qū)域中。其他仿真參數(shù)的設(shè)置見(jiàn)表 1。限于篇幅,僅給出了在c=0,20,40的情況下,GFFS和SEF在妥協(xié)容忍、過(guò)濾概率以及能耗方面的實(shí)驗(yàn)數(shù)據(jù)。取10次仿真實(shí)驗(yàn)的平均值作為實(shí)驗(yàn)結(jié)果。
表1 仿真參數(shù)的設(shè)置
為有效評(píng)價(jià)相關(guān)機(jī)制的假分組過(guò)濾能力,本文提出利用單跳可過(guò)濾數(shù)據(jù)分組的累積值進(jìn)行性能評(píng)價(jià),如式(5)所示,其中,h為傳輸跳數(shù),Nh為第h跳過(guò)濾的假分組個(gè)數(shù)。若機(jī)制的過(guò)濾性能越好,則假分組在網(wǎng)絡(luò)中傳輸?shù)奶鴶?shù)越少,相應(yīng)地f (0≤f ≤100)越大。反之,f =0則說(shuō)明由于太多的節(jié)點(diǎn)被妥協(xié),攻擊者偽造的假分組無(wú)法被安全機(jī)制過(guò)濾。
圖5給出了f隨妥協(xié)節(jié)點(diǎn)數(shù)量Nc和每個(gè)節(jié)點(diǎn)存儲(chǔ)的地理位置數(shù)量c的變化情況。從圖5中可以得出如下幾點(diǎn):①c越大時(shí),GFFS的過(guò)濾能力越強(qiáng)。以Nc=80為例,當(dāng)c=20時(shí),f僅為37,而當(dāng)c =40時(shí),f為47。因?yàn)閏越大時(shí),節(jié)點(diǎn)存儲(chǔ)的地理位置數(shù)量越多,中間節(jié)點(diǎn)對(duì)假分組中包含的假地理位置進(jìn)行驗(yàn)證的概率也越高,故GFFS的過(guò)濾能力也越強(qiáng)。②當(dāng)c =0或Nc≥130時(shí),GFFS的過(guò)濾能力和SEF相同,而在其他情況下,GFFS的過(guò)濾能力強(qiáng)于SEF。因?yàn)楫?dāng)c =0時(shí),中間節(jié)點(diǎn)不存儲(chǔ)其他節(jié)點(diǎn)的地理位置,此時(shí)GFFS和SEF都無(wú)法對(duì)地理位置進(jìn)行驗(yàn)證,因此過(guò)濾能力相同;當(dāng)Nc≥130時(shí),此時(shí)攻擊者俘獲了足夠多的秘密信息,從而可偽造出GFFS和SEF都無(wú)法過(guò)濾的假分組;當(dāng)c>0且Nc<130時(shí),SEF僅能對(duì)假分組中的MAC進(jìn)行驗(yàn)證,而GFFS則能同時(shí)對(duì) MAC和地理位置進(jìn)行驗(yàn)證,故 GFFS的過(guò)濾能力強(qiáng)于 SEF。③GFFS能容忍的妥協(xié)節(jié)點(diǎn)數(shù)量為130個(gè),遠(yuǎn)多于SEF能容忍的12個(gè)。這是因?yàn)?SEF無(wú)法防范來(lái)自不同地理區(qū)域的妥協(xié)節(jié)點(diǎn)的協(xié)同攻擊,故攻擊者在俘獲少量節(jié)點(diǎn)后即可攻破SEF;而 GFFS能通過(guò)地理位置驗(yàn)證防范來(lái)自不同地理區(qū)域的妥協(xié)節(jié)點(diǎn)的協(xié)同攻擊,故攻擊者攻破GFFS需要俘獲大量節(jié)點(diǎn)。
圖5 過(guò)濾概率
圖6所示為源節(jié)點(diǎn)產(chǎn)生的100個(gè)假數(shù)據(jù)分組在GFFS和SEF中的傳輸能耗對(duì)比情況。從圖6中可以看出,只有在c =0,且Nc<12的情況下,GFFS的能耗比SEF稍大,而其他時(shí)候GFFS的能耗都小于SEF。這是因?yàn)楫?dāng)c=0,且Nc<12時(shí),GFFS的過(guò)濾能力和 SEF一致,而 GFFS的數(shù)據(jù)分組比 SEF數(shù)據(jù)分組長(zhǎng),因此GFFS能耗比SEF大;在其他情況下,盡管GFFS數(shù)據(jù)分組長(zhǎng)度大于SEF,但GFFS能通過(guò)盡早將假數(shù)據(jù)分組過(guò)濾掉而達(dá)到比 SEF更節(jié)省能量的目的。
圖6 能量消耗
本文在深入分析當(dāng)前方案無(wú)法對(duì)傳感器網(wǎng)絡(luò)中不同區(qū)域的妥協(xié)節(jié)點(diǎn)協(xié)同偽造的虛假數(shù)據(jù)進(jìn)行檢測(cè)和識(shí)別的原因后,提出一種基于地理位置的過(guò)濾方案 GFFS。將節(jié)點(diǎn)位置信息預(yù)分發(fā)給中間節(jié)點(diǎn)存儲(chǔ),由中間節(jié)點(diǎn)在轉(zhuǎn)發(fā)過(guò)程中同時(shí)對(duì)數(shù)據(jù)分組中所包含的MAC和檢測(cè)節(jié)點(diǎn)位置信息進(jìn)行驗(yàn)證,從而將不同區(qū)域的妥協(xié)節(jié)點(diǎn)協(xié)同偽造的虛假數(shù)據(jù)過(guò)濾掉。理論分析及仿真實(shí)驗(yàn)表明,GFFS可以有效地防止協(xié)同攻擊,并具備較好的妥協(xié)容忍能力和較低的能量開(kāi)銷(xiāo)。然而,獲取節(jié)點(diǎn)絕對(duì)位置信息增大了傳感器節(jié)點(diǎn)的開(kāi)銷(xiāo),因此,研究利用鄰居節(jié)點(diǎn)相對(duì)位置信息防止來(lái)自不同地理區(qū)域的妥協(xié)節(jié)點(diǎn)的協(xié)同攻擊將成為進(jìn)一步的工作。
[1] 任豐原, 黃海寧, 林闖. 無(wú)線傳感器網(wǎng)絡(luò)[J]. 軟件學(xué)報(bào), 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ú)線傳感器網(wǎng)絡(luò)密鑰管理的方案和協(xié)議[J].軟件學(xué)報(bào), 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.