郭江鴻,馬建峰
(西安電子科技大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710071)
無線傳感器網(wǎng)絡(luò) (WSN, wireless sensor network)由大量資源傳感器節(jié)點(diǎn)組成,彼此通過無線鏈路進(jìn)行通信,在戰(zhàn)場監(jiān)控、災(zāi)難拯救、目標(biāo)跟蹤、野生動(dòng)物保護(hù)等方面得到了廣泛應(yīng)用。無線傳感器網(wǎng)絡(luò)的一個(gè)主要功能是由節(jié)點(diǎn)對所處環(huán)境的某些物理參數(shù)進(jìn)行測量,并將結(jié)果送往遠(yuǎn)方的服務(wù)器(或基站)進(jìn)行進(jìn)一步處理。由于鄰近傳感器可能測得相同數(shù)據(jù),即傳感器測得的原始數(shù)據(jù)中有冗余信息,數(shù)據(jù)匯聚技術(shù)成為減少數(shù)據(jù)傳輸量的重要手段之一。
在一些惡意環(huán)境下,敵手可能通過節(jié)點(diǎn)妥協(xié)、偽造數(shù)據(jù)、偽造身份等手段發(fā)動(dòng)攻擊以降低數(shù)據(jù)的可用性,甚至通過惡意操作向網(wǎng)絡(luò)中注入大量虛假數(shù)據(jù),意圖發(fā)動(dòng)以消耗節(jié)點(diǎn)計(jì)算能耗及通信能耗,進(jìn)而減短傳感器網(wǎng)絡(luò)生存期的DoS攻擊。在此情況下,數(shù)據(jù)匯聚方案不僅要保證數(shù)據(jù)本身的機(jī)密性與完整性,而且要提供抵抗DoS攻擊的能力及數(shù)據(jù)源身份鑒別。在大部分現(xiàn)有的傳感器網(wǎng)絡(luò)數(shù)據(jù)匯聚方案中,數(shù)據(jù)多以明文傳送或由匯聚節(jié)點(diǎn)對加密數(shù)據(jù)進(jìn)行解密來完成數(shù)據(jù)匯聚,不能很好地保護(hù)數(shù)據(jù)的隱私性及安全性;同時(shí),大部分現(xiàn)有的數(shù)據(jù)匯聚方案主要考慮匯聚效率,過濾的信息過多,不利于基站對全網(wǎng)數(shù)據(jù)分布情況的統(tǒng)計(jì)分析。
Govindan等[1]提出的數(shù)據(jù)匯聚方法中,通過選擇優(yōu)化的經(jīng)驗(yàn)路徑進(jìn)行數(shù)據(jù)匯聚及網(wǎng)內(nèi)處理,有效地降低了傳感器網(wǎng)絡(luò)的傳輸能耗,但該方案并未考慮數(shù)據(jù)的安全性。Przydatek等[2]提出的一種安全的消息匯聚協(xié)議,但該方案主要考慮的是數(shù)據(jù)匯聚的安全性,數(shù)據(jù)依舊用明文傳輸,難以保證數(shù)據(jù)的隱私性;Wagner等[3]研究了傳感器網(wǎng)絡(luò)中對數(shù)據(jù)匯聚的攻擊行為,并提出了一個(gè)評價(jià)數(shù)據(jù)匯聚方案安全強(qiáng)度的理論框架,但數(shù)據(jù)的隱私性并未包含在內(nèi);Cam 等[4]提出了能量有效的基于模式碼安全數(shù)據(jù)匯聚協(xié)議(ESPDA)。節(jié)點(diǎn)建立與原始數(shù)據(jù)對應(yīng)的模式碼并將其發(fā)往簇頭,簇頭不需要對加密數(shù)據(jù)進(jìn)行解密,根據(jù)模式碼實(shí)現(xiàn)了數(shù)據(jù)匯聚。但是,該方案中每個(gè)節(jié)點(diǎn)都發(fā)送模式碼導(dǎo)致能耗不夠理想,同時(shí),沒有考慮到多跳轉(zhuǎn)發(fā)的數(shù)據(jù)認(rèn)證,可能導(dǎo)致主動(dòng)攻擊及DoS攻擊;Acharya等[5]提出的端到端的加密算法允許匯聚節(jié)點(diǎn)通過對密文的操作完成數(shù)據(jù)匯聚,保護(hù)了數(shù)據(jù)的隱私性。但該方法中指數(shù)級的計(jì)算復(fù)雜度導(dǎo)致過大的計(jì)算開銷,且該方案在唯密文攻擊下并不安全;Huang與 Tygar等[6]提出了安全的加密數(shù)據(jù)匯聚(SEDA, secure encrypted data aggregation)方案,該方案使用散列函數(shù)與異或操作在不對密文解密的情況下完成數(shù)據(jù)匯聚,保護(hù)了數(shù)據(jù)的隱私性且能耗較優(yōu)。但該方案存在以下問題:1)要求匯聚節(jié)點(diǎn)預(yù)裝入(N-1)對密鑰異或值,N為網(wǎng)絡(luò)中節(jié)點(diǎn)總數(shù),網(wǎng)絡(luò)的可擴(kuò)展性差,2)沒有提供數(shù)據(jù)認(rèn)證,不能抵抗主動(dòng)攻擊及 DoS攻擊等惡意行為,安全性差。同時(shí),以上方案的匯聚結(jié)果并不能使基站了解各種數(shù)據(jù)在全網(wǎng)的分布情況,不利于整體的統(tǒng)計(jì)分析。
針對以上問題,本文提出了一種安全透明的傳感器網(wǎng)絡(luò)數(shù)據(jù)匯聚(STDA, secure and transparent data aggregation)方案,匯聚節(jié)點(diǎn)在不對密文解密的情況下通過低能耗的散列與異或運(yùn)算完成數(shù)據(jù)匯聚,保護(hù)了數(shù)據(jù)的隱私性,且解決了SEDA方案中簇頭存儲(chǔ)開銷過大的問題,提高了網(wǎng)絡(luò)的可擴(kuò)展性;通過附加MAC有效抵抗主動(dòng)攻擊、妥協(xié)攻擊及DoS攻擊等多種惡意行為,提供了高的安全性;同時(shí),本文方案僅對數(shù)據(jù)進(jìn)行匯聚,而具有相同數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)不被過濾,基站可通過匯聚結(jié)果了解全網(wǎng)的數(shù)據(jù)分布狀況。
Cam等[4]提出的ESPDA方案簡介如下。
1) 基站為每個(gè)節(jié)點(diǎn)Ni預(yù)裝入ID、與基站的配對密鑰ki以及公共密鑰k。
2) 對應(yīng)每次數(shù)據(jù)收集,基站選取數(shù)據(jù)收集密鑰kb,廣播Ek[kb],每個(gè)節(jié)點(diǎn)Ni用k解密消息并計(jì)算K=kb⊕ki作為本次加密密鑰。
3) 對應(yīng)每次數(shù)據(jù)收集,簇頭選取隨機(jī)種子S,簇內(nèi)廣播Ek[S],節(jié)點(diǎn)Ni解密得到S,并根據(jù)S計(jì)算模式碼序列,序列中每個(gè)模式碼對應(yīng)一個(gè)取值范圍;Ni發(fā)送與自己測量數(shù)據(jù)對應(yīng)的模式碼到簇頭。
4) 簇頭對模式碼進(jìn)行比較及匯聚,根據(jù)匯聚結(jié)果要求部分簇內(nèi)節(jié)點(diǎn)發(fā)送數(shù)據(jù)。
5) 節(jié)點(diǎn)發(fā)送<ID,t, EK[Data], MAC(K, Data)>到基站,t為時(shí)戳。基站根據(jù)ID計(jì)算K=kb⊕ki并完成數(shù)據(jù)解密及MAC驗(yàn)證。
Huang等[6]提出SEDA方案簡介如下。
1) 基站為每個(gè)節(jié)點(diǎn) Ni建立與基站的配對密鑰ki,選取單向函數(shù) f()且 f(x⊕y)=f(x)⊕f(y),Ni預(yù)裝入ID、ki及f()。
2) 設(shè)網(wǎng)絡(luò)中節(jié)點(diǎn)總數(shù)為 N,ID 分別為 N1,N2,…,NN,與基站的配對密鑰分別為k1,k2,…,kN,基站計(jì)算密鑰序列 L=<k1⊕k2,k2⊕k3,…,kN-1⊕kN>并將之預(yù)裝入所有簇頭節(jié)點(diǎn)。
3)對應(yīng)每次數(shù)據(jù)收集,節(jié)點(diǎn)Ni生成不同的隨機(jī)數(shù) ri,發(fā)送<Ni,mi⊕ ri⊕ f(ri)||ki⊕ ri>到簇頭。mi為原始數(shù)據(jù)。
4)對于不同節(jié)點(diǎn)Ni與Nj的消息,簇頭先通過密鑰序列L得到ki⊕kj,進(jìn)而得到ri⊕rj,再計(jì)算如下:V=mi⊕ ri⊕ f(ri) ⊕ mj⊕ rj⊕ f(rj)⊕ (ri⊕ rj)⊕ f(ri⊕ rj)= mi⊕mjV=0,則mi=mj,簇頭保留其中一個(gè),另一個(gè)被視為冗余數(shù)據(jù)丟棄。數(shù)據(jù)匯聚完成后,簇頭將匯聚結(jié)果發(fā)往上游匯聚節(jié)點(diǎn),直到基站接收到最終匯聚結(jié)果。
5) 基站使用與Ni的配對密鑰ki解密ki⊕ri,再利用ri解密消息得到mi。
STDA方案采用與CAM及Huang方案相同的網(wǎng)絡(luò)結(jié)構(gòu)——分簇傳感器網(wǎng)絡(luò),并作如下假設(shè):
1) 節(jié)點(diǎn)間可通過合適的密鑰協(xié)議建立配對密鑰;
2) 簇頭具有較高的安全性;
3) 已建立相應(yīng)數(shù)據(jù)匯聚樹,基站為根節(jié)點(diǎn)。
因本文主要關(guān)注數(shù)據(jù)匯聚,且現(xiàn)已有諸多文獻(xiàn)對建立配對密鑰、構(gòu)建匯聚樹等問題進(jìn)行研究并取得了系列成果,所以做出上述假設(shè)而不對其進(jìn)行具體討論。
為便于分析,本文采用一個(gè)理想的分簇傳感器網(wǎng)絡(luò)模型,如圖1所示。
圖1 理想的分簇傳感器網(wǎng)絡(luò)模型
圖1 中,BS為基站,網(wǎng)絡(luò)共分為19個(gè)簇,每個(gè)簇用一個(gè)正六邊形表示,設(shè)正六邊形邊長為40m,簇頭位于正六邊形中央,BS為中央簇頭。傳感器節(jié)點(diǎn)通信半徑為40m,每個(gè)簇內(nèi)平均有n個(gè)節(jié)點(diǎn)。進(jìn)行數(shù)據(jù)匯聚所使用的匯聚樹如圖2所示。
圖2 數(shù)據(jù)匯聚樹
本文假設(shè)攻擊者模型為Dolev-Yao模型,攻擊者可以控制整個(gè)通信網(wǎng)絡(luò),除了可以竊聽、截獲所有經(jīng)過網(wǎng)絡(luò)的消息外,還具備以下知識(shí)和能力。
1) 熟悉加解、解密、散列(hash)等密碼運(yùn)算,擁有自己的加密密鑰和解密密鑰。
2) 熟悉網(wǎng)絡(luò)中各節(jié)點(diǎn)的ID。
3) 具有密碼分析的知識(shí)和能力。
4) 可以發(fā)動(dòng)以下攻擊:
① 由于臨近的傳感器節(jié)點(diǎn)可能得到相同的數(shù)據(jù)且敵手可以得到節(jié)點(diǎn)發(fā)送的密文信息,因此假設(shè)敵手可發(fā)動(dòng)已知明文/密文攻擊;
② 一般說來,傳感器節(jié)點(diǎn)妥協(xié)難以避免,敵手可發(fā)起妥協(xié)攻擊在物理上俘虜節(jié)點(diǎn),獲取其秘密信息;
③ 敵手可以重放以前的合法消息或假冒身份向匯聚節(jié)點(diǎn)發(fā)送虛假消息發(fā)動(dòng)主動(dòng)攻擊;
④ 敵手可以向網(wǎng)絡(luò)中注入大量虛假數(shù)據(jù)發(fā)起DoS攻擊。
STDA方案主要由系統(tǒng)初始化、消息加密、數(shù)據(jù)匯聚、基站解密等部分組成。
設(shè)網(wǎng)絡(luò)共有N個(gè)節(jié)點(diǎn),ID分別為:N1,N2,…,NN,部署前,基站(等同可信第三方)選取N個(gè)l bit的隨機(jī)密鑰S1,S2,…,SN,l為安全參數(shù)。同時(shí)選取2個(gè)單向函數(shù)f( ),g( ),具有下列性質(zhì)
對任意的 i∈[1, N],服務(wù)器將 Si,Ni,f(),g(),c以及密鑰材料預(yù)裝入節(jié)點(diǎn)Ni。其中,Si為節(jié)點(diǎn)Ni與基站的配對密鑰,c為序號(hào),初始為1。
傳感器部署后,節(jié)點(diǎn)通過分簇算法(如ACE算法[7]等)建立分簇網(wǎng)絡(luò),并完成節(jié)點(diǎn)間的配對密鑰建立。當(dāng)收到基站數(shù)據(jù)請求或到達(dá)周期性數(shù)據(jù)采集時(shí)間后,Ni采集數(shù)據(jù)并構(gòu)造消息(I):
其中,Ni為節(jié)點(diǎn) ID;mi為 Ni采集的數(shù)據(jù);ri為 Ni生成的隨機(jī)數(shù)(每次使用不同的隨機(jī)數(shù)掩蓋數(shù)據(jù));c為序號(hào);fl()表示取f()的前l(fā) bit。MAC為消息認(rèn)證碼,計(jì)算如下
其中,ki為節(jié)點(diǎn) Ni與簇頭 Ai的配對密鑰,gl()表示取g()的前l(fā) bit。Ni發(fā)送消息(I)到簇頭Ai,同時(shí)更新c為c+1。
Ai維持一張用于數(shù)據(jù)匯聚的鄰居信息表,如表1所示。
表1 鄰居信息
表1中的c’初始為0,Ni為簇內(nèi)節(jié)點(diǎn)。
Ai接收到Ni的消息后,進(jìn)行如下驗(yàn)證。
1) 新鮮性驗(yàn)證:通過序號(hào)c檢查消息新鮮性,若消息中的序號(hào)與Ai自身的序號(hào)一致則轉(zhuǎn)2),否則丟棄。
2) 檢查鄰居信息表中對應(yīng)的c’,若c-c’=1則通過驗(yàn)證并轉(zhuǎn)3),否則丟棄。
3) 數(shù)據(jù)源身份認(rèn)證及消息完整性驗(yàn)證:Ai按照式(2)計(jì)算 MAC,與消息中 MAC一致則接受該消息并更新鄰居信息表中與 Ni對應(yīng)的 c’為 c’+1;因敵手在未捕獲節(jié)點(diǎn)的情況下,無法獲取節(jié)點(diǎn)與簇頭的配對密鑰,因此MAC驗(yàn)證可同時(shí)進(jìn)行數(shù)據(jù)源身份認(rèn)證和消息完整性驗(yàn)證。
4) 數(shù)據(jù)匯聚:對于來自 Ni及 Nj的消息 Mi、Mj,簇頭計(jì)算如下
顯然,若 V≠fl(0),則 mi≠mj,Mi及 Mj都被保留;若V= fl(0),則mi=mj的概率為1-1/2l, 當(dāng)l足夠大時(shí),可認(rèn)為mi=mj,Ai保留Mi或Mj中的一個(gè),并暫存消息Mi如格式(II)。
其中,IDList為與Ni具有相同數(shù)據(jù)的節(jié)點(diǎn)ID列表。Ai在不對數(shù)據(jù)解密的情況下完成了數(shù)據(jù)匯聚,保證了數(shù)據(jù)的隱私性。
設(shè)MAi為Ai對Ai所在簇的簇內(nèi)數(shù)據(jù)及下游匯聚節(jié)點(diǎn)所發(fā)送匯聚數(shù)據(jù)的匯聚結(jié)果,KAi為 Ai與上游匯聚節(jié)點(diǎn)Aj的配對密鑰,則Ai構(gòu)造消息(III)發(fā)往上游匯聚節(jié)點(diǎn)Aj后更新自身的序號(hào)c為c+1。
Aj收到消息(III)后,先通過c及MAC驗(yàn)證檢查發(fā)送方身份、消息完整性及消息新鮮性,然后與其他下游匯聚節(jié)點(diǎn)的匯聚結(jié)果及所在簇的簇內(nèi)數(shù)據(jù)進(jìn)行比較,得到進(jìn)一步的匯聚結(jié)果并構(gòu)造消息如格式(III),發(fā)往Aj的上游匯聚節(jié)點(diǎn)Ak。此過程一直持續(xù)到最上游的匯聚節(jié)點(diǎn)將結(jié)果發(fā)送到基站。
基站收到匯聚結(jié)果后,先進(jìn)行相應(yīng)的MAC驗(yàn)證,然后對來自 Ni的數(shù)據(jù),基站用與 Ni的配對密鑰Si計(jì)算mi:
完成數(shù)據(jù)解密后,基站可對數(shù)據(jù)進(jìn)行進(jìn)一步分析與處理。
安全性分析主要針對2.3節(jié)定義的攻擊者模型下本文方案的安全性分析,并與ESPDA及SEDA方案作比較。
本文以明文/密文攻擊下各方案的密鑰安全性衡量其抗明文/密文攻擊的能力。
1)STDA方案中共有3類密鑰:Ni與基站的配對密鑰Si;Ni與Ai的配對密鑰ki;Ni進(jìn)行數(shù)據(jù)加密的密鑰ri。各密鑰在明文/密文攻擊下的安全性如下:
ki只存在于MAC中,敵手在未捕獲Ni時(shí),意圖通過MAC獲得ki的難度等同于單向函數(shù)求逆,因此ki在明文/密文攻擊下是安全的。
ri為選取的隨機(jī)數(shù),每次數(shù)據(jù)加密使用不同的隨機(jī)數(shù)生成f(ri)。敵手從密文中獲取的與ri有關(guān)的信息有:mi⊕f(ri)、f(f(ri))和 si⊕ri。
敵手發(fā)動(dòng)密文攻擊時(shí),從 f(f(ri))中獲取 f(ri)及從f(ri)中獲取ri的難度都等同于單向函數(shù)求逆;敵手在未知 si的情況下企圖從 si⊕ri中成功猜測 ri的概率p=2-l。當(dāng)安全參數(shù)l足夠大時(shí),p是一個(gè)可以忽略的量;敵手發(fā)起明文攻擊時(shí),可從 mi⊕f(ri)中獲取 f(ri),但從 f(ri)中獲取 ri的難度等同于單向函數(shù)求逆;由于Ni每次使用不同的隨機(jī)數(shù),當(dāng)前獲取的f(ri)無助于敵手獲取下次掩蓋數(shù)據(jù)的f(ri’);在未知ki的情況下,即使f(ri)暴露,敵手構(gòu)造正確的MAC依然是困難的。因此,f(ri)暴露不會(huì)對密鑰安全性造成實(shí)質(zhì)性危害。ri在明文/密文攻擊下是安全的。
Si是 Ni與基站的配對密鑰,Si⊕ri可看作一個(gè)一次一密方案,其中,每個(gè)明文分組都是Si,每次使用不同的隨機(jī)密鑰加密。對于一次一密方案,不論明文有何統(tǒng)計(jì)規(guī)律,都是信息論安全的。因此在敵手未捕獲Ni時(shí),無法從消息中獲取Si,Si在明文/密文攻擊下是安全的。
因此,STDA方案是明文/密文攻擊安全的。
2) ESPDA方案中,每個(gè)節(jié)點(diǎn)Ni預(yù)裝入與基站的共享密鑰 Ki及全網(wǎng)統(tǒng)一的用于解密基站廣播及簇頭廣播的密鑰 k。每次數(shù)據(jù)收集前,基站廣播用k加密本次數(shù)據(jù)收集的密鑰,簇頭在簇內(nèi)廣播用 k加密的用于生產(chǎn)模式碼的隨機(jī)種子,加密算法采用Blowfish[8]。在節(jié)點(diǎn)安全的條件下,密鑰在明文/密文攻擊下是安全的。
3) SEDA方案中基站為每個(gè)節(jié)點(diǎn)分配與基站共享的密鑰ki,節(jié)點(diǎn)使用隨機(jī)數(shù)ri進(jìn)行數(shù)據(jù)掩蓋,該方案在隨機(jī)預(yù)言機(jī)模型下證明了ki與ri是IND-CPA及IND-CCA安全的。
一般來說,傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)妥協(xié)難以避免,因此設(shè)網(wǎng)絡(luò)中有多個(gè)傳感器節(jié)點(diǎn)妥協(xié),敵手可獲得妥協(xié)節(jié)點(diǎn)的所有秘密信息。本文以未妥協(xié)節(jié)點(diǎn)的密鑰安全性衡量各方案的抗妥協(xié)攻擊能力。
1) 對于 STDA方案,各節(jié)點(diǎn)與基站的配對密鑰是由基站生成的隨機(jī)數(shù),因此從被妥協(xié)節(jié)點(diǎn)無法獲取未妥協(xié)節(jié)點(diǎn)與基站的密鑰;節(jié)點(diǎn)與簇頭的配對密鑰的抗妥協(xié)攻擊能力依賴于所用的配對密鑰建立方案;ri是節(jié)點(diǎn)用于掩蓋數(shù)據(jù)的隨機(jī)數(shù),各個(gè)節(jié)點(diǎn)生成的隨機(jī)數(shù)是相互獨(dú)立的,顯然,不論敵手捕獲多少節(jié)點(diǎn),均無法得到未妥協(xié)節(jié)點(diǎn)的ri。
即使簇頭Ai被妥協(xié),敵手可得到的信息僅有簇頭與基站及簇頭與簇內(nèi)節(jié)點(diǎn)的配對密鑰。對于任一未妥協(xié)節(jié)點(diǎn) Ni,若 Ni以Ai為簇頭,則 Si及ri是安全的且 Ai被妥協(xié)并不暴露 Ni與其他鄰居節(jié)點(diǎn)的配對密鑰;若Ni所在簇的簇頭安全,則Si、ki以及ri都是安全的。
2) 對于ESPDA方案,每個(gè)節(jié)點(diǎn)預(yù)裝入2個(gè)密鑰:與基站的配對密鑰Ki和全網(wǎng)共享密鑰k,因每個(gè)節(jié)點(diǎn)的 Ki由基站隨機(jī)生成,敵手無法從妥協(xié)節(jié)點(diǎn)獲得未妥協(xié)節(jié)點(diǎn)與基站的配對密鑰;但k為全網(wǎng)共享密鑰,單點(diǎn)妥協(xié)就會(huì)暴露k。敵手可利用k假冒基站或簇頭發(fā)布虛假消息,對安全通信構(gòu)成極大威脅。
3) 對于 SEDA方案,在簇頭安全的前提下,敵手無法從妥協(xié)節(jié)點(diǎn)獲取未妥協(xié)節(jié)點(diǎn)與基站的配對密鑰及掩蓋數(shù)據(jù)的隨機(jī)數(shù)。但只要一個(gè)簇頭妥協(xié),敵手只需捕獲任一非簇頭節(jié)點(diǎn),就可從簇頭的密鑰序列L中獲得所有節(jié)點(diǎn)與基站的配對密鑰,對網(wǎng)絡(luò)的安全通信造成極大危害。
1) 對于 STDA方案,簇頭每次將匯聚數(shù)據(jù)發(fā)往上游匯聚節(jié)點(diǎn)后,將更新自身的序號(hào),通過簡單的序號(hào)比較可過濾重放消息;敵手假冒節(jié)點(diǎn)Ni向簇頭發(fā)送包含正確序號(hào)的虛假消息,在不知道Ni與簇頭配對密鑰的情況下,敵手可以偽造正確MAC的概率是一個(gè)可忽略的量,簇頭通過散列計(jì)算可將該消息過濾;即使敵手妥協(xié)了部分節(jié)點(diǎn),可偽造多個(gè)含有正確的c及MAC的虛假消息。當(dāng)任一虛假消息被簇頭 Ai接受后,Ai將更新鄰居信息表中與 Ni對應(yīng)的序號(hào)c’為c,后續(xù)序號(hào)為c的虛假消息無法通過數(shù)據(jù)匯聚的第2步驗(yàn)證而被丟棄,即使敵手使用序號(hào)c+1,也因無法通過數(shù)據(jù)匯聚的第1步驗(yàn)證而被丟棄。因此,在一次數(shù)據(jù)收集中,即使Ni被妥協(xié)并發(fā)送多個(gè)虛假消息,也只能有一個(gè)虛假消息被簇頭接受,其他虛假消息將由簇頭通過序號(hào)比較或散列計(jì)算過濾,STDA方案可以以較低的能耗有效抵抗敵手發(fā)動(dòng)的主動(dòng)攻擊。
2) 對于ESPDA方案,Cam等僅指出在節(jié)點(diǎn)向基站傳送加密數(shù)據(jù)時(shí)使用 MAC,未說明基站廣播Ek[kb]及簇內(nèi)廣播Ek[S]是否附加MAC。若廣播中沒有MAC,即使網(wǎng)絡(luò)中沒有節(jié)點(diǎn)妥協(xié),節(jié)點(diǎn)解密敵手可以利用發(fā)布的虛假消息得到kb’或S’,但并不知道該消息是否來自基站或簇頭。如抗妥協(xié)攻擊中所述,傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)妥協(xié)難以避免,這意味著對于ESPDA方案,全網(wǎng)共享密鑰k的暴露難以避免,敵手可利用k發(fā)布虛假消息干擾基站對匯聚結(jié)果的判斷。ESPDA方案抗主動(dòng)攻擊能力差主要源自廣播消息缺乏MAC及全網(wǎng)共享密鑰在妥協(xié)攻擊下的脆弱性。
3) 對于 SEDA方案,節(jié)點(diǎn)向簇頭發(fā)送的消息中既沒有新鮮性參數(shù),不能抵抗重放攻擊;也沒有對消息附加 MAC,不能抵抗主動(dòng)攻擊。例如敵手假冒 Ni發(fā)送消息<Ni,A||B>,A、B為敵手偽造的與合法消息對應(yīng)部分等長的隨機(jī)數(shù)據(jù),則A、B可以表示為
不論簇頭或基站均無法判斷這個(gè)消息的發(fā)送方身份是敵手還是 Ni。SEDA方案在主動(dòng)攻擊下安全性差。
敵手假冒身份發(fā)動(dòng)DoS攻擊,意圖大幅度增加節(jié)點(diǎn)的計(jì)算能耗或通信能耗,減少傳感器網(wǎng)絡(luò)生命周期。
1) 對于本文方案,如抗主動(dòng)攻擊部分所述,在Ni安全情況下,敵手假冒Ni發(fā)送的消息無法通過簇頭的 MAC認(rèn)證(散列計(jì)算)而被過濾,不會(huì)帶來大的通信開銷及計(jì)算開銷;即使Ni被妥協(xié)并發(fā)送多個(gè)消息,在一次數(shù)據(jù)收集過程中只有一個(gè)消息被簇頭接受,其他消息將被簇頭通過序號(hào)比較或MAC認(rèn)證過濾掉,不會(huì)帶來大的通信開銷,STDA方案可有效抵抗DoS攻擊。
2) 對于ESPDA方案及SEDA方案,兩者都不能很好地抵抗主動(dòng)攻擊,敵手可偽造基站廣播或簇頭廣播使網(wǎng)內(nèi)節(jié)點(diǎn)收集并發(fā)送數(shù)據(jù),極大地增加節(jié)點(diǎn)的數(shù)據(jù)傳輸量,降低傳感器網(wǎng)絡(luò)的生命期,ESPDA及SEDA方案的抗DoS攻擊能力較差。
由密鑰安全性分析可知,敵手沒有對節(jié)點(diǎn) Ni進(jìn)行物理捕獲的情況下,獲取Si、ki及ri的概率等同于對密鑰的隨機(jī)猜測。敵手測試一個(gè)密鑰最少需經(jīng)過一次散列求值,設(shè) f()與 g()的運(yùn)算量等同SHA-1,SHA-1運(yùn)算一次約需在信息單元間進(jìn)行約1 740個(gè)基本運(yùn)算,即使配置專用的FPGA芯片,仍需約 80個(gè)時(shí)鐘周期。設(shè)安全參數(shù) l為密鑰長度(bit),敵手使用m臺(tái)4GHz且配有FPGA的PC對密鑰空間窮舉搜索所需時(shí)間T約為
則窮舉64bit密鑰空間所需時(shí)間T如圖3所示。
圖3 窮舉64bit密鑰空間所需時(shí)間
由圖3可知,即使敵手使用5 000臺(tái)4GHz且配有FPGA的PC,仍需2.34年完成對64bit密鑰空間的窮舉。敵手增加用于攻擊的設(shè)備數(shù)目可縮短需要的窮舉時(shí)間,但將大幅度增加攻擊成本。一般的傳感器(如 MICA2)使用電池供電,其生命期約為1~2年,因此本文選擇安全參數(shù)為64bit。
綜上所述,3種方案的安全性如表2所示。
表2 安全性比較
本小節(jié)分析STDA方案的存儲(chǔ)開銷、計(jì)算開銷及通信開銷,并與ESPDA方案及SEDA方案作比較。
1) 存儲(chǔ)開銷分析
設(shè)節(jié)點(diǎn) ID長度為 2byte,密鑰長度為 8byte,序號(hào)為2byte,單向函數(shù)存儲(chǔ)開銷為m1,密鑰材料存儲(chǔ)開銷為m2。
在本文方案中,每個(gè)節(jié)點(diǎn)需預(yù)裝入 ID、與基站的配對密鑰、初始序號(hào)、密鑰材料及單向函數(shù)f()、g()。
在ESPDA方案中,每個(gè)節(jié)點(diǎn)需預(yù)裝入ID、與基站的配對密鑰、全網(wǎng)共享密鑰。設(shè)ESPDA方案使用單向函數(shù)h()進(jìn)行MAC計(jì)算,則各節(jié)點(diǎn)還需裝入h()。
在SEDA方案中,每個(gè)節(jié)點(diǎn)需預(yù)裝入ID、與基站的配對密鑰及單向函數(shù)f(),另外,每個(gè)簇頭需預(yù)裝密鑰序列 L,L大小等同于(N-1)個(gè)密鑰所需的空間,N為網(wǎng)絡(luò)中節(jié)點(diǎn)總數(shù)。顯然,當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),密鑰序列L所需的存儲(chǔ)開銷是傳感器節(jié)點(diǎn)無法承受的。
3種方案的存儲(chǔ)開銷如表3所示。
表3 存儲(chǔ)開銷比較
要指出的是建立鄰居節(jié)點(diǎn)間的配對密鑰是節(jié)點(diǎn)間通信安全的基礎(chǔ),雖然在ESPDA及SEDA方案中并未明確指出節(jié)點(diǎn)需預(yù)裝建立配對密鑰所需的密鑰材料,但這部分內(nèi)容在傳感器網(wǎng)絡(luò)安全通信協(xié)議中是不可或缺的,特別在多跳轉(zhuǎn)發(fā)時(shí),需依靠鄰居節(jié)點(diǎn)間的配對密鑰來提供單跳通信的安全。所以,本文方案的存儲(chǔ)開銷是傳感器節(jié)點(diǎn)可以接受的。
2) 計(jì)算開銷分析
ESPDA方案對數(shù)據(jù)進(jìn)行了分區(qū),每個(gè)數(shù)據(jù)區(qū)間對應(yīng)一個(gè)模式碼,顯然,ESPDA方案通過降低數(shù)據(jù)精度來增加冗余數(shù)據(jù),從而達(dá)到提高匯聚效率的目地。不同的數(shù)據(jù)精度要求及各節(jié)點(diǎn)數(shù)據(jù)達(dá)到簇頭的順序?qū)⒂绊懘仡^在匯聚過程中對數(shù)據(jù)的比較次數(shù)。為公平起見,設(shè)3種方案中要求的數(shù)據(jù)精度相同且各節(jié)點(diǎn)的數(shù)據(jù)到達(dá)簇頭的順序相同,即一次簇內(nèi)數(shù)據(jù)匯聚過程中,簇頭進(jìn)行數(shù)據(jù)比較的次數(shù)相同,為h次。設(shè)簇內(nèi)平均節(jié)點(diǎn)數(shù)為 n,本文以一次數(shù)據(jù)匯聚中簇內(nèi)普通節(jié)點(diǎn)及簇頭的計(jì)算復(fù)雜度衡量各方案的計(jì)算開銷。3種方案的計(jì)算復(fù)雜度如表4所示。
表4 計(jì)算復(fù)雜度
表中ESPDA方案所需的d次散列計(jì)算用來產(chǎn)生與d個(gè)數(shù)據(jù)區(qū)間對應(yīng)的模式碼,若節(jié)點(diǎn)需進(jìn)行數(shù)據(jù)發(fā)送則需多一次散列計(jì)算得到MAC;SEDA方案中的q為根據(jù)密鑰序列計(jì)算ki⊕kj所需的平均異或操作次數(shù)。
設(shè)測量數(shù)據(jù)范圍為 5~94;ESPDA方案將數(shù)據(jù)區(qū)間劃分為[5,14],[15,24],…,[85,94]并生成9個(gè)對應(yīng)的模式碼;SEDA方案及STDA方案可通過對測量結(jié)果進(jìn)行簡單的四舍五入得到與 ESPDA方案相同的數(shù)據(jù)量。設(shè)[15,24]為正常數(shù)據(jù)區(qū)間,其他區(qū)間為異常數(shù)據(jù)區(qū)間;異常數(shù)據(jù)率W為測量結(jié)果不在正常區(qū)間的節(jié)點(diǎn)數(shù)所占比例;異常數(shù)據(jù)在b個(gè)異常數(shù)據(jù)區(qū)間內(nèi)隨機(jī)均勻分布;則各方案中簇頭進(jìn)行簇內(nèi)數(shù)據(jù)匯聚所需的比較次數(shù)h如圖 4所示,簇頭的計(jì)算能耗如圖5所示。
顯然,增加b、W或簇內(nèi)節(jié)點(diǎn)數(shù),都增大了簇內(nèi)的異常數(shù)據(jù)量,從而增加了簇頭的數(shù)據(jù)比較次數(shù)。
設(shè)3種方案中所采用的單向函數(shù)或MAC計(jì)算與 SHA-1具有相同的計(jì)算開銷,原始數(shù)據(jù)長度8byte。據(jù)Gura等[9]的研究,MICA2傳感器上(8bit,ATmega128L,8MHz,電壓 3V,活動(dòng)電流 8mAh)[10],SHA-1的能耗約 5.9μJ×L,L為輸入長度(byte)。據(jù)Cam 等[4]的研究,在 SmartDust (8bit,4MHz)上Blowfish輸出32byte密文耗時(shí)約為2 444ms,則估算在MICA2上平均輸出1byte密文耗時(shí)約為:2 444/(32×2)=38ms,能耗約為:0.038s×3V×8mAh =0.9mJ。在忽略異或操作能耗的情況下,一次數(shù)據(jù)匯聚中Ni的計(jì)算能耗如表5所示。
圖4 一次匯聚中簇頭進(jìn)行的簇內(nèi)數(shù)據(jù)比較次數(shù)
表5 Ni的計(jì)算能耗
其中,ESPDA方案的 3部分能耗分別為:2個(gè)Blowfish解密及1個(gè)Blowfish加密、生成模式碼的9個(gè)散列計(jì)算、MAC計(jì)算;STDA方案的2部分能耗分別為:生成 f(ri)、f(f(ri))的 2個(gè)散列計(jì)算、對34byte數(shù)據(jù)(如3.2節(jié)中式(2)所示)計(jì)算MAC。
從圖5及表4可知,SEDA方案中簇頭在一次匯聚中僅需h次散列運(yùn)算,能耗較優(yōu);STDA方案比SEDA方案多出h次散列及n次MAC計(jì)算,簇頭的計(jì)算能耗高于SEDA方案,但散列及MAC的計(jì)算能耗相對較低,STDA方案的計(jì)算開銷是傳感器節(jié)點(diǎn)可接受的;ESPDA方案的計(jì)算開銷主要來自Blowfish算法的加解密運(yùn)算。顯然,隨著簇內(nèi)節(jié)點(diǎn)數(shù)、異常數(shù)據(jù)率以及異常區(qū)間數(shù)目的增加,SEDA方案及STDA方案的計(jì)算開銷將達(dá)到并超過ESPDA方案,但在一般情況下(如文中所設(shè)簇內(nèi)節(jié)點(diǎn) 40、異常區(qū)間小于 6、異常數(shù)據(jù)率不大于 0.6),三者的計(jì)算開銷總體上屬于同一層次(單位為 mj)。如在n=30,b=3,異常數(shù)據(jù)率為0.3時(shí),ESPDA、STDA及 SEDA這 3種方案中簇頭的計(jì)算開銷分別為14.82mj、8.4mj及2.42mj。STDA方案的綜合計(jì)算能耗高于SEDA方案,但低于ESPDA方案。
圖5 簇頭進(jìn)行一次數(shù)據(jù)匯聚的能耗
3) 通信開銷分析
3種方案都使用分簇傳感器網(wǎng)絡(luò),其中,ESPDA方案只有一層匯聚節(jié)點(diǎn),異常數(shù)據(jù)經(jīng)多跳轉(zhuǎn)發(fā)單播到基站;SEDA及STDA方案為多層匯聚方案,匯聚結(jié)果通過匯聚樹到基站。本文在2.2節(jié)的網(wǎng)絡(luò)模型(圖1)中比較各方案的通信開銷,對應(yīng)的匯聚樹如圖2所示。
本文使用NS2對3種方案在2.2節(jié)中網(wǎng)絡(luò)環(huán)境下的通信開銷進(jìn)行模擬。SEDA與STDA方案使用圖5的匯聚樹將匯聚結(jié)果傳送到基站,父親節(jié)點(diǎn)與孩子節(jié)點(diǎn)通過網(wǎng)關(guān)節(jié)點(diǎn)2 hop通信。ESPDA方案未說明使用何種路由協(xié)議將消息單播到基站,文中以圖5的數(shù)據(jù)匯聚樹作為ESPDA方案的路由方案。設(shè)3種方案均采用802.15.4標(biāo)準(zhǔn)對消息進(jìn)行封裝,該標(biāo)準(zhǔn)允許最多102 byte的可變載荷,總長度最大為 128byte。對于 3種方案,一次數(shù)據(jù)匯聚中總的數(shù)據(jù)分組發(fā)送次數(shù)如圖6所示。
圖6 一次數(shù)據(jù)匯聚中的數(shù)據(jù)分組發(fā)送次數(shù)
圖6 中,ESPDA方案的數(shù)據(jù)分組傳輸量最大,因?yàn)?ESPDA方案只采用了一層匯聚,由簇頭指定的節(jié)點(diǎn)通過單播將數(shù)據(jù)發(fā)到基站。STDA方案的數(shù)據(jù)分組傳輸量略大于SEDA方案,原因有2方面,首先,簇頭發(fā)送的匯聚結(jié)果中包含了與數(shù)據(jù)對應(yīng)的節(jié)點(diǎn) ID列表,當(dāng)該列表較大時(shí),需要多個(gè)數(shù)據(jù)分組才能完成匯聚結(jié)果的發(fā)送;其次,STDA方案的消息長度大于SEDA方案的消息長度,對于相同數(shù)量的數(shù)據(jù),STDA方案中的匯聚節(jié)點(diǎn)可能需要更多的數(shù)據(jù)分組進(jìn)行封裝。SEDA方案的數(shù)據(jù)分組傳輸量最小。據(jù)Gura等[9]的研究,MICA2節(jié)點(diǎn)發(fā)送與接收一個(gè)字節(jié)的能耗分別為 59.2μJ、28.6μJ。各方案中一次數(shù)據(jù)匯聚所需的發(fā)送能耗如圖7所示。
圖7 傳輸能耗比較
由圖7可知,SEDA方案的傳輸能耗較小,ESPDA方案次之,STDA方案的傳輸能耗最大。如在n=30,b=5時(shí),SEDA、ESPDA、STDA方案進(jìn)行一次數(shù)據(jù)匯聚的綜合傳輸能耗分別為1.83J、2.6J及2.82J,SEDA及ESPDA方案的傳輸能耗約為STDA方案的 64.9%、92.2%。ESPDA方案的傳輸能耗大于SEDA方案的主要原因在于 ESPDA方案采用一層匯聚導(dǎo)致數(shù)據(jù)分組發(fā)送量較多;STDA方案的傳輸能耗大的主要原因在于2方面:1)STDA方案的消息長度大于SEDA方案及ESPDA方案的消息長度,導(dǎo)致較大的傳輸開銷。但附加MAC提供了更高的安全性,且STDA方案解決了SEDA方案中簇頭存儲(chǔ)開銷過大的問題,提供了更好的可擴(kuò)展性;2)簇頭僅對數(shù)據(jù)進(jìn)行匯聚,而保留了具有相同數(shù)據(jù)的ID,從而增加了消息長度及數(shù)據(jù)分組發(fā)送量。但保留 ID列表解決了傳統(tǒng)的數(shù)據(jù)匯聚方案中數(shù)據(jù)丟失問題,有利于基站了解全網(wǎng)的數(shù)據(jù)分布。
數(shù)據(jù)匯聚是減少傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)傳輸?shù)闹匾夹g(shù)手段。由于無線鏈路的開放性,惡意環(huán)境下無線傳感器網(wǎng)絡(luò)的安全性顯得尤為重要,如在戰(zhàn)場監(jiān)控中,戰(zhàn)場信息需要加密傳輸。由于敵手可以捕獲節(jié)點(diǎn)并注入需要的代碼使這些節(jié)點(diǎn)完成敵手需要的操作,因此加密信息在到達(dá)遠(yuǎn)端服務(wù)器前應(yīng)盡量避免解密操作以提供高安全性,即需要充分考慮數(shù)據(jù)隱私保護(hù)。數(shù)據(jù)匯聚方案應(yīng)綜合考慮匯聚效率、數(shù)據(jù)的安全性、隱私性等多方面因素。
本文提出的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)匯聚方案在不對加密數(shù)據(jù)解密的情況下完成數(shù)據(jù)匯聚,且比現(xiàn)有的提供數(shù)據(jù)隱私保護(hù)的數(shù)據(jù)匯聚方案具有更高的安全性;同時(shí),本文方案的數(shù)據(jù)匯聚結(jié)果可為基站提供各個(gè)數(shù)據(jù)在全網(wǎng)的分布情況,更有利于惡意環(huán)境下的信息收集。
為提供高的安全性與全網(wǎng)數(shù)據(jù)分布信息,本文方案中的消息中附加了較多內(nèi)容(如MAC與節(jié)點(diǎn)ID列表),消息長度大于相關(guān)方案,因此通信能耗略高。如何在提高安全性的基礎(chǔ)上盡量減少通信能耗將是下一步的工作目標(biāo)。
[1] INTANAGONWIWAT C, GOVINDAN R, ESTRIN D, et al. Directed diffusion for wireless sensor networking[J]. IEEE/ ACM Transactions on Networking, 2003, 11(1):2-16.
[2] BARTOSZ P, DAWN S, ADRIAN P. SIA:secure information aggregation in sensor networks[A]. Proceedings of ACM SenSys Conference[C]. Los Angeles, USA, 2003. 255-265.
[3] WAGNER D. Resilient aggregation in sensor networks[A]. Proceedings of the 2nd ACM Workshop on Security of Ad Hoc and Sensor Networks[C]. Washington, DC, USA, 2004.78-87.
[4] CAM H, OZDEMIR S. Energy-efficient security protocol for wireless sensor networks[A]. Proceedings of IEEE VTC Fall 2003 Conference[C]. New York, USA, 2003. 2981-2984.
[5] ACHARYA M, GIRAO J. Secure comparison of encrypted data in wireless sensor networks[A]. 3rd International Symposium on Modeling and Optimization in Mobile, Ad Hoc, and Wireless Networks[C].Trentino, Italy, 2005.47-53.
[6] HUANG S I, SHIUHPYNG S, TYGAR J D. Secure encrypted-data aggregation for wireless sensor network[J]. Springer Wireless Networks, 2010, 5(16):915-927.
[7] CHAN H, PERRIG A. ACE: an emergent algorithm for highly uniform cluster formation[J]. LNCS, 2004,2(2920):154-171.
[8] SCHNEIER B. Fast software encryption[A]. Cambridge Security Workshop Proceedings[C]. Springer-Verlag, 1994.191-204.
[9] WANDER A, GURA N, EBERLE H, et al. Energy analysis of public-key cryptography on small wireless devices[A]. Proc of Per- Com’05[C].Kauai Island, Hawaii, USA, 2005.324-328.
[10] MICA. datasheet[EB/OL]. http://www.xbow.com/Pro-ducts/ Product_pdf_files/Wireless_pdf/MICA2_Datasheet.pdf/, 2006.