張雙杰,魏琴芳,秦曉良
(重慶郵電大學(xué)通信與信息工程學(xué)院,重慶 400065)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)由部署在監(jiān)測(cè)區(qū)域內(nèi)大量的廉價(jià)微型傳感器節(jié)點(diǎn)組成。節(jié)點(diǎn)資源十分有限,主要體現(xiàn)在電池能量、處理能力、存儲(chǔ)容量和通信帶寬等幾個(gè)方面[1]。
由于WSN的資源約束和帶寬限制,減少基站和節(jié)點(diǎn)間的通信開銷,能夠顯著地提高能效和帶寬利用率。數(shù)據(jù)融合是將多份數(shù)據(jù)或信息進(jìn)行處理,組合出更有效、更符合用戶需求的數(shù)據(jù)過程,它能夠顯著地提高能效和帶寬利用率,減少基站和節(jié)點(diǎn)間的通信開銷。然而數(shù)據(jù)融合并沒有考慮數(shù)據(jù)的機(jī)密性和完整性,安全問題依然存在。如何在保證傳感器節(jié)點(diǎn)能源高效性的同時(shí)確保其傳輸數(shù)據(jù)的機(jī)密性和完整性,于是安全的數(shù)據(jù)融合技術(shù)應(yīng)運(yùn)而生,并迅速成為無線傳感器網(wǎng)絡(luò)中頗受關(guān)注的研究領(lǐng)域[2]。
為了防止在融合過程中節(jié)點(diǎn)被捕獲的攻擊,保證融合結(jié)果的機(jī)密性和完整性,研究者已經(jīng)提出多種方案來保證數(shù)據(jù)融合的安全。同態(tài)加密機(jī)制由于其獨(dú)特的優(yōu)勢(shì),已經(jīng)成為安全數(shù)據(jù)融合領(lǐng)域的研究熱點(diǎn)。CDA[3]算法將DFPH[4]同態(tài)加密算法引入到WSN的數(shù)據(jù)融合領(lǐng)域。它首先將加密數(shù)據(jù)隨機(jī)分割成t份,然后每份數(shù)據(jù)mi分別乘以密鑰ki,最后將t份密文一起匯總上傳。數(shù)據(jù)融合節(jié)點(diǎn)在接到子節(jié)點(diǎn)上傳的數(shù)據(jù)后直接將每一份密文進(jìn)行模加法即可得到融合結(jié)果的密文,它無法知道融合數(shù)據(jù)的明文信息。該算法容易遭受選擇明文攻擊,且普通葉節(jié)點(diǎn)的傳輸開銷較大,網(wǎng)絡(luò)的負(fù)載增加明顯。
文獻(xiàn)[5]中,作者提出了一種基于流密鑰的CMT同態(tài)加密算法,它直接采用移位密碼進(jìn)行加密,其加密解密方法簡(jiǎn)單,但算法存在很突出的問題,即為了成功解密,需要發(fā)送所有參與融合節(jié)點(diǎn)的ID,會(huì)造成很大的開銷。作者指出,即使只有10%的節(jié)點(diǎn)沒有響應(yīng),方案的總開銷也會(huì)增加2倍以上,而且網(wǎng)絡(luò)開銷分布極不均勻。
文獻(xiàn)[6]提出一種復(fù)合運(yùn)算的方法來增加同態(tài)算法的安全性,它先將數(shù)據(jù)通過與基站共享的同態(tài)密鑰進(jìn)行加密,然后再將密文使用與父節(jié)點(diǎn)共享的對(duì)稱密鑰加密傳送。算法使用成對(duì)的融合數(shù)據(jù)來進(jìn)行數(shù)據(jù)完整性檢測(cè),并且通過認(rèn)證過程檢測(cè)惡意節(jié)點(diǎn)及其偽造的數(shù)據(jù),但其加密解密開銷較大。
文獻(xiàn)[7]中作者對(duì) DFPH,CMT,ECEG[8]這3 種同態(tài)加密算法進(jìn)行了比較,指出基于流密鑰的CMT同態(tài)加密機(jī)制是最有發(fā)展前景的同態(tài)加密機(jī)制之一。因此,筆者提出一種安全數(shù)據(jù)融合機(jī)制,使用輕量級(jí)CMT加密機(jī)制來減少加密所帶來的計(jì)算開銷,并使用成對(duì)融合數(shù)據(jù)來檢測(cè)融合結(jié)果的完整性,同時(shí)設(shè)計(jì)認(rèn)證過程來檢測(cè)惡意節(jié)點(diǎn)。下面對(duì)算法進(jìn)行描述。
由于傳感器節(jié)點(diǎn)易受攻擊,節(jié)點(diǎn)被捕獲或惡意節(jié)點(diǎn)的加入,通過傳送虛假數(shù)據(jù)或篡改數(shù)據(jù)融合結(jié)果來進(jìn)行惡意攻擊。不安全的數(shù)據(jù)融合結(jié)果對(duì)于基站和查詢用戶來說都是沒有意義的,并導(dǎo)致用戶做出錯(cuò)誤的決定。因此,如何進(jìn)行安全數(shù)據(jù)融合,在數(shù)據(jù)傳輸過程中保證數(shù)據(jù)的機(jī)密性和完整性,并同時(shí)檢測(cè)出惡意節(jié)點(diǎn)和排除惡意數(shù)據(jù),成為研究的關(guān)鍵。
假設(shè)1個(gè)分簇的WSN(如圖1所示),包含大量資源有限的傳感器節(jié)點(diǎn)?;?Base Station,BS)足夠安全且不能夠被俘獲,簇頭具有比普通傳感器節(jié)點(diǎn)更好的性能,即具有高能量電池、大的內(nèi)存、強(qiáng)大的計(jì)算和數(shù)據(jù)處理能力。研究表明如果使用高性能的簇頭,傳感器網(wǎng)絡(luò)的生存性會(huì)大大提高[9]。
圖1 無線傳感器網(wǎng)絡(luò)模型
同態(tài)加密技術(shù)允許對(duì)融合結(jié)果直接進(jìn)行運(yùn)算。考慮到加密和解密操作,同態(tài)加密非常適合于無線傳感器網(wǎng)絡(luò),它具有如下性質(zhì)式中:Enc(a)表示用同態(tài)加密密鑰對(duì)明文a進(jìn)行加密;⊕、⊕指分別對(duì)密文進(jìn)行某種運(yùn)算。
CMT算法由于其易于執(zhí)行的特點(diǎn),非常適合于資源受限的WSN。唯一的不足是為了成功解密,必須發(fā)送所有響應(yīng)節(jié)點(diǎn)的ID。本文將其應(yīng)用于分簇網(wǎng)絡(luò),故簇頭發(fā)送的ID數(shù)目最多為簇內(nèi)節(jié)點(diǎn)數(shù)的一半。算法需要每個(gè)節(jié)點(diǎn)i和基站共享密鑰種子Ki及偽隨機(jī)序列生成器。下面簡(jiǎn)單介紹CMT算法。
參數(shù)取大整數(shù)M。加密過程為:1)明文m∈[0,M-1];2)隨機(jī)生成流密鑰k∈[0,M -1];3)密文c=Enc(m,k,M)=(m+k)modM 。
解密過程中:m=Dec(c,k,M)=(c - k)modM 。
融合過程中:對(duì) c1=Enc(m1,k1,M),c2=Enc(m2,k2,M),則 c12=c1+c2=Enc(m1+m2,k1+k2,M),解密時(shí)有 Dec(c1+c2,k1+k2,M)=m1+m2。其中 mod 表示取模運(yùn)算;Enc(m,k,M)指使用CMT算法加密明文m;Dec(c,k,M)指對(duì)密文c進(jìn)行解密。顯然,CMT機(jī)制具有加法同態(tài)的性質(zhì)。
假設(shè)傳感器節(jié)點(diǎn)采集部署區(qū)域的溫度,融合函數(shù)為AVERAGE。簇頭只進(jìn)行融合并發(fā)送融合數(shù)據(jù)到基站,并不進(jìn)行數(shù)據(jù)采集。使用文獻(xiàn)[10]中提出密鑰預(yù)分布機(jī)制來進(jìn)行簇頭和簇內(nèi)節(jié)點(diǎn)對(duì)稱密鑰的建立。
每個(gè)節(jié)點(diǎn)預(yù)分配3種不同的密鑰:1)節(jié)點(diǎn)和基站之間的同態(tài)加密密鑰Enc;2)簇頭和簇內(nèi)節(jié)點(diǎn)共享的對(duì)稱密鑰 ksi,sj;3)節(jié)點(diǎn)和基站共享的對(duì)稱密鑰ksi。
本文使用如下的標(biāo)記以便于描述:M表示節(jié)點(diǎn)和基站共享的大整數(shù);IDsi表示節(jié)點(diǎn)si的ID,在WSN中是獨(dú)一無二的;s={s1,s2,…,sn}指?jìng)鞲衅鞴?jié)點(diǎn)集合;msi表示節(jié)點(diǎn)si感應(yīng)到的信息;Enc(m)為使用CMT算法加密消息m;Ksi為節(jié)點(diǎn)si與基站共享的密鑰種子,用于產(chǎn)生偽隨機(jī)序列;ksi,sj(m)代表用簇頭和簇內(nèi)節(jié)點(diǎn)共享的對(duì)稱密鑰ksi,sj對(duì)消息m進(jìn)行加密;ksi為節(jié)點(diǎn)si與基站共享的對(duì)稱密鑰ksi;MAC(ksi,msi)指節(jié)點(diǎn)si使用對(duì)稱密鑰ksi對(duì)消息msi生成消息認(rèn)證碼(Message Authentication Code,MAC)。
2.3.1 廣播查詢階段
基站廣播數(shù)據(jù)查詢信息,使用已存在的輕量級(jí)廣播認(rèn)證機(jī)制如μTESLA來進(jìn)行廣播認(rèn)證。
2.3.2 數(shù)據(jù)融合階段
當(dāng)簇內(nèi)節(jié)點(diǎn)收到基站的查詢請(qǐng)求,便將自己的數(shù)據(jù)加密后發(fā)送至簇頭。如圖1所示,若節(jié)點(diǎn)X響應(yīng)基站查詢,則將其感應(yīng)數(shù)據(jù)mX做如下處理:1)使用同態(tài)加密密鑰加密mX得到Enc(mX);2)使用與簇頭B共享的對(duì)稱密鑰kX,B加密mX得到kX,B(mX);3)使用與基站共享的對(duì)稱密鑰kX對(duì)數(shù)據(jù)mX生成消息認(rèn)證碼MAC(kX,mX);4)然后發(fā)送至B:X → B:IDX,Enc(mX),kX,B(mX),MAC(kX,mX)。當(dāng)簇頭B接收到其所有響應(yīng)的簇內(nèi)節(jié)點(diǎn)的消息后,B進(jìn)行如下操作:1)將Enc(mX),Enc(mY)等進(jìn)行融合得 Enc(data'B);2)將 kX,B(mX),kY,B(mY)等密文解密,并進(jìn)行融合得到dataB;3)將所有響應(yīng)節(jié)點(diǎn)發(fā)送到MAC存儲(chǔ);4)使用與基站共享的對(duì)稱密鑰kB,BS對(duì)dataB加密生成kB,BS(dataB);5)使用與基站共享的對(duì)稱密鑰kB對(duì)數(shù)據(jù)dataB生成消息認(rèn)證碼MAC(kB,dataB);6)發(fā)送至基站 B → BS:listB,Enc(data'B),kB,BS(dataB),MAC(kB,dataB)。其中l(wèi)istB包含本簇內(nèi)所有參與融合節(jié)點(diǎn)的ID。
當(dāng)基站收到簇頭的融合數(shù)據(jù)后,將其進(jìn)行融合。然后用對(duì)應(yīng)的密鑰解密得到成對(duì)的融合數(shù)據(jù)data'和data。前者為簇內(nèi)節(jié)點(diǎn)進(jìn)行同態(tài)加密,簇頭對(duì)其密文直接融合所得的結(jié)果,融合結(jié)果對(duì)簇頭保密;后者為簇頭對(duì)接收到的簇內(nèi)節(jié)點(diǎn)的響應(yīng)信息解密后進(jìn)行融合所得的結(jié)果,數(shù)據(jù)對(duì)簇頭可見。
基站首先通過相等檢查(Equality Test,ET)判定data'是否等于data,若相等,則基站認(rèn)為此融合數(shù)據(jù)是有效的,沒有被篡改或偽造;若不相等,則基站進(jìn)行認(rèn)證過程。
2.3.3 認(rèn)證過程
當(dāng)基站發(fā)現(xiàn)data'≠data時(shí),它將參與融合的簇頭節(jié)點(diǎn)加入到一個(gè)集合Q中,即Q中包含需要檢測(cè)的節(jié)點(diǎn)?;疽竺總€(gè)簇頭si∈Q重新發(fā)送它們的數(shù)據(jù)si→BS:listsi,Enc(data'si),ksi,BS(datasi),MAC(ksi,datasi),基站用對(duì)應(yīng)的密鑰解密后得到關(guān)于si的成對(duì)融合數(shù)據(jù)data'si和datasi
?;臼紫扔?datasi計(jì)算得出MAC(ksi,datasi)CALC。如果MAC(ksi,datasi)CALC= MAC(ksi,datasi),則基站認(rèn)為si承認(rèn)自己先前發(fā)送的融合數(shù)據(jù)。如果si承認(rèn)自己先前發(fā)送的數(shù)據(jù)包并且ET檢查通過(data'si
=datasi),則基站認(rèn)為si通過認(rèn)證檢查并將其從Q中移除。如果si不承認(rèn)自己先前發(fā)送的融合數(shù)據(jù),即 MAC(ksi,datasi)CALC≠ MAC(ksi,datasi)或者其 ET 檢查失敗(data'si≠datasi),則將si加入可疑節(jié)點(diǎn)列表listL,同時(shí)將si的所有參與融合的簇內(nèi)節(jié)點(diǎn)listsi都加入到Q中進(jìn)行進(jìn)一步證實(shí)。
當(dāng)Q中的所有節(jié)點(diǎn)均處理后,listL中包含的所有節(jié)點(diǎn)或者否認(rèn)自己發(fā)送的數(shù)據(jù),或者ET檢查失敗。listL中所有否認(rèn)自己發(fā)送數(shù)據(jù)的節(jié)點(diǎn)均被認(rèn)為是惡意節(jié)點(diǎn);其余節(jié)點(diǎn)均承認(rèn)自己發(fā)送的數(shù)據(jù),但是因?yàn)樗拇貎?nèi)節(jié)點(diǎn)(對(duì)于簇頭)或者自己(對(duì)于簇內(nèi)節(jié)點(diǎn))被捕獲,使其ET檢查失敗,通過進(jìn)一步的檢查來消除listL中的正常節(jié)點(diǎn)。
算法1為基站認(rèn)證算法,相關(guān)的代碼為:
消極攻擊指敵人只對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行監(jiān)聽,包括密文分析和已知明文攻擊。主要目標(biāo)是敵人通過簡(jiǎn)單的監(jiān)聽不能獲得任何信息,由于提出的算法對(duì)數(shù)據(jù)進(jìn)行加密傳輸,能夠有效地防止這種攻擊,唯一的不足是不能保證融合數(shù)據(jù)在簇頭的機(jī)密性。
指敵人能夠擾亂通信,比如捕獲、毀壞、篡改或者重發(fā)數(shù)據(jù)包等,以欺騙用戶接收非法值,這種類型的攻擊對(duì)于安全數(shù)據(jù)融合來說是最危險(xiǎn)的。
3.2.1 重放攻擊
重放攻擊指惡意節(jié)點(diǎn)重發(fā)先前發(fā)送過的數(shù)據(jù)包。由于采用CMT流密鑰進(jìn)行加密,對(duì)每個(gè)信息使用新的密鑰,若敵人重放數(shù)據(jù)包,則無法通過ET檢查,故提出的算法能夠有效地防止重放攻擊。
3.2.2 偽造數(shù)據(jù)包攻擊
偽造數(shù)據(jù)包攻擊指攻擊者通過偽造數(shù)據(jù)包來試圖欺騙基站和其他節(jié)點(diǎn)。由于每個(gè)節(jié)點(diǎn)和簇頭以及基站共享密鑰,若攻擊者無法獲得密鑰信息,不可能偽造正確的數(shù)據(jù)包被基站接收。
3.2.3 篡改攻擊
篡改攻擊指惡意中繼節(jié)點(diǎn)篡改融合結(jié)果。在方案中,由于成對(duì)數(shù)據(jù)中的一個(gè)數(shù)據(jù)對(duì)簇頭來說不可見,若簇頭篡改融合結(jié)果,這種攻擊會(huì)被ET檢查輕易發(fā)現(xiàn)。
3.2.4 節(jié)點(diǎn)捕獲攻擊
敵人通過捕獲節(jié)點(diǎn)來冒充正常節(jié)點(diǎn)發(fā)送非法數(shù)據(jù)。如果節(jié)點(diǎn)發(fā)送兩個(gè)不同的數(shù)據(jù),可以通過所設(shè)計(jì)的機(jī)制檢測(cè)出來;若其插入的是正常范圍的數(shù)據(jù),則對(duì)融合結(jié)果沒有影響。
使用小規(guī)模WSN來對(duì)提出的安全數(shù)據(jù)融合算法進(jìn)行仿真。假設(shè)有99個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)(9個(gè)高性能簇頭節(jié)點(diǎn),每簇內(nèi)10個(gè)普通節(jié)點(diǎn)),隨機(jī)選擇20個(gè)普通節(jié)點(diǎn)為惡意節(jié)點(diǎn)。惡意節(jié)點(diǎn)發(fā)起的惡意攻擊為加密發(fā)送兩個(gè)不同的數(shù)據(jù),即使用同態(tài)加密發(fā)送的數(shù)據(jù)和對(duì)稱加密發(fā)送的數(shù)據(jù)不同。簇頭收到后進(jìn)行融合并將其發(fā)送至基站?;臼盏綌?shù)據(jù)后,若ET檢查失敗,則進(jìn)行認(rèn)證。
假設(shè)基站廣播查詢后,隨機(jī)選擇20個(gè)節(jié)點(diǎn)響應(yīng)基站查詢并發(fā)送感應(yīng)信息。仿真20輪,結(jié)果如圖2所示。
圖2 檢測(cè)的惡意節(jié)點(diǎn)數(shù)目與真實(shí)數(shù)目的對(duì)比
由圖2可知,隨著仿真輪數(shù)的增加,所提算法能夠有效地檢測(cè)出惡意節(jié)點(diǎn),從而排除其發(fā)送的惡意虛假數(shù)據(jù)。
假設(shè)節(jié)點(diǎn)所監(jiān)測(cè)的環(huán)境溫度為21~30℃之間的任一值。惡意節(jié)點(diǎn)發(fā)送的加密數(shù)據(jù)一個(gè)為正常數(shù)據(jù),另一個(gè)為41~50℃之間的任一值(其目的是使用戶接受錯(cuò)誤的融合值,并做出錯(cuò)誤的決定)?;緳z測(cè)出惡意節(jié)點(diǎn)后,將惡意節(jié)點(diǎn)發(fā)送的惡意數(shù)據(jù)排除后進(jìn)行數(shù)據(jù)融合。仿真進(jìn)行20輪,結(jié)果如圖3所示。
可見,在排除了惡意數(shù)據(jù)后的融合值和真實(shí)數(shù)據(jù)之間的誤差很小,可以忽略不計(jì),保證融合結(jié)果的真實(shí)性,便于用戶做出正確決策。
圖3 3種融合值之間的比較
能源效率和通信安全是WSN中的兩大工作重點(diǎn)。而加密傳送和數(shù)據(jù)融合本身就是一對(duì)矛盾[11]。本文提出了一種有效的安全數(shù)據(jù)融合方案,在保證數(shù)據(jù)機(jī)密性的同時(shí)實(shí)現(xiàn)對(duì)融合結(jié)果的完整性檢測(cè)。通過認(rèn)證過程來排除惡意節(jié)點(diǎn)和惡意數(shù)據(jù)來保證融合結(jié)果的準(zhǔn)確性。仿真結(jié)果表明即使存在部分偽造數(shù)據(jù)攻擊的情況,也能實(shí)現(xiàn)安全的數(shù)據(jù)融合,并同時(shí)檢測(cè)出惡意節(jié)點(diǎn)。
[1]孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[2]劉鑫芝.無線傳感器網(wǎng)絡(luò)安全數(shù)據(jù)融合的研究[J].計(jì)算機(jī)與現(xiàn)代化,2010(5):151-155.
[3] GIRAO J,WESTHOFF D,SCHNEIDER M.CDA:concealed data aggregation for reverse multicast traffic in wireless sensor networks[C]//Proc.ICC 2005.Seoul:IEEE Press,2005:3044-3049.
[4] DOMINGO F J.A provably secure additive and multiplicative privacy homomorphism[C]//Proc.5th International Conference on Information Security(ISC 2002).Sao Paulo:ISC,2002:471-483.
[5] CASTELLUCCIA C,MYKLENTN E,TSUDIK G.Efficient aggregation of encrypted data in wireless sensor networks[C]//Proc.Second Annual International Conference on MobiQuitous 2005.San Diego:IEEE Computer Society,2005:109–117.
[6] MLAIH E,ALY S A.Secure hop-by-hop aggregation of end-to-end concealed data in wireless sensor networks[C]//Proc.the INFOCOM 2008.Phoenix:IEEE Press,2008:1-6.
[7] PETER S,PIOTROWSKI S,LANGENDOERFER R.On concealed data aggregation for WSNs[C]//Proc.CCNC 2007.Las Vegas:IEEE Press,2007:192-196.
[8] MYKLETUN E,GIRAO J,WESTHOFF D.Public key based cryptoschemes for data concealment in wireless sensor networks[C]//Proc.IEEE International Conference on Communications(ICC2006).Istanbul:IEEE Press,2006:2288-2295.
[9] AZARDERAKHSH R,REYHANI M A,ABID Z E.A key management scheme for cluster basedwireless sensor networks[C]//Proc.EUC 2008.Shanghai:IEEE Press,2008:222-227.
[10] DAS A K,SENGUPTA I.An effective group-based key establishment scheme for large-scale wireless sensor networks using bivariate polynomials[C]//Proc.COMSWARE 2008.Bangalore:IEEE Press,2008:9-16.
[11]羅蔚,胡向東.無線傳感器網(wǎng)絡(luò)中一種高效的安全數(shù)據(jù)融合協(xié)議[J].重慶郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2009,21(1):110-114.