曹曉梅,沈何陽
(1.南京郵電大學(xué)無線網(wǎng)絡(luò)聯(lián)合實驗室,南京210003;2.南京郵電大學(xué)信息安全,南京210003)
無線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Network)是由部署在監(jiān)測區(qū)域內(nèi)大量的微型傳感器節(jié)點組成,通過無線通信方式形成的一個多跳的自組織的網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中的感知對象的信息,并發(fā)送給觀察者[1]。WSN被廣泛應(yīng)用于軍事、環(huán)境監(jiān)測和預(yù)報、健康護(hù)理、智能家居、建筑物狀態(tài)監(jiān)控以及城市交通等領(lǐng)域。由于WSN節(jié)點通常被部署在無人監(jiān)管的環(huán)境中,很容易受到惡意攻擊,尤其當(dāng)WSN被應(yīng)用于軍事、經(jīng)濟(jì)等存在敵我博弈的場景中時,安全問題尤為重要。數(shù)據(jù)融合技術(shù)是WSN的重要支撐技術(shù),避免了大量冗余信息的傳輸,但融合節(jié)點往往承載著重要的數(shù)據(jù)信息,如果融合節(jié)點遭到攻擊,那么得到的信息可能無效,甚至有害[2]。因此,實現(xiàn)數(shù)據(jù)融合過程中的數(shù)據(jù)安全,同時減少節(jié)點的能量損耗,是數(shù)據(jù)融合要研究的重點。
Joao Girao等人最先提出了一種適用于WSN的基于同態(tài)加密的數(shù)據(jù)融合方案—CDA[3],該方案利用同態(tài)加密算法實現(xiàn)端到端的數(shù)據(jù)傳送,提供了較高的數(shù)據(jù)保密性。研究者在此基礎(chǔ)上提出了多種基于同態(tài)加密的算法方案[4-5],這些文中所提出的算法都是相對較成熟的,并且能提供較高的可靠性。但是,同態(tài)加密給節(jié)點的計算帶來了很大的開銷,因而,增加了網(wǎng)絡(luò)的開銷。Cam等人提出了基于模式碼的數(shù)據(jù)融合協(xié)議ESPDA[6],該方案采用基于模式碼的比較實現(xiàn)數(shù)據(jù)的融合,有效的降低了網(wǎng)絡(luò)開銷,同時由于融合階段傳送的模式碼,實現(xiàn)了數(shù)據(jù)的機(jī)密性。OSDA[7],SRDA[8],COER[9]等協(xié)議都旨在減少網(wǎng)絡(luò)的開銷,但是入手點卻不盡相同,前者通過傳送無實際物理意義的模式碼代替原始數(shù)據(jù),SRDA則通過傳送比較差值來減少數(shù)據(jù)的冗余,而COER則是利用網(wǎng)絡(luò)編碼來減少網(wǎng)絡(luò)能耗。另外,現(xiàn)有的基于完整性的數(shù)據(jù)融合協(xié)議,如:Secure DAV[10]以及蔣君杰等提出的基于多貼近度的可靠性融合方案[11],它們的計算存儲量要求大,帶來了很大的系統(tǒng)開銷,并且節(jié)點的復(fù)制能力差,可能導(dǎo)致DOS攻擊。
綜上,李建明等人提出了一種可擴(kuò)展性好的安全數(shù)據(jù)融合協(xié)議SSDAA[12]。該方案采用逐步認(rèn)證μTESLA密鑰,在匯聚階段采用傳送模式碼形式,有效的保證了機(jī)密性,認(rèn)證也不必等到匯聚完成,而是采用的兩跳延遲認(rèn)證,減少了時延,該方案最大的優(yōu)點是采用公鑰認(rèn)證,利用兩跳延遲來公布認(rèn)證密鑰,以達(dá)到認(rèn)證的有效性。但是該方案當(dāng)遇到節(jié)點被捕獲時,尤其是中間節(jié)點被捕獲,在認(rèn)證階段只能發(fā)現(xiàn)敵人發(fā)送了虛假數(shù)據(jù),但該協(xié)議并不清楚具體被捕獲的是孩子還是孫子節(jié)點,尤其是同時捕獲孩子和孫子節(jié)點,敵人就可以任意的修改以孩子節(jié)點為根的子樹,這種情況下,只能丟棄以孩子節(jié)點為根的整個子樹,許多有用的信息將會丟失。Miloud Bagga等人在2009年提出了一種安全高效的協(xié)議SEDAN[13],該協(xié)議針對上述的問題,有了很好的解答,協(xié)議中每個節(jié)點保存4個密鑰,分別是與父親節(jié)點、祖父節(jié)點、孩子節(jié)點、孫子節(jié)點的共享密鑰。傳送的時候采用兩個消息鑒別碼,一旦某個節(jié)點被攻擊,節(jié)點可以準(zhǔn)確的知道是自己的孩子節(jié)點還是孫子節(jié)點被妥協(xié),并且只丟棄相應(yīng)的被攻擊了的節(jié)點。另外,相較于SSDAA協(xié)議的認(rèn)證方案,由于采用的不同于TESLA的密鑰分配,能耗比較小。但是沒有考慮整個網(wǎng)絡(luò)的能量均衡等因素,仍有不足之處。
針對上述的不足,本文提出的SPDAA方案采用基于兩跳的認(rèn)證技術(shù),可避免節(jié)點因盲目拒絕而造成重要數(shù)據(jù)丟失,并且密鑰的分配能耗小,同時優(yōu)化節(jié)點處的選擇,可以均衡全網(wǎng)的能耗,延長網(wǎng)絡(luò)生命周期。
本文針對無線傳感器網(wǎng)絡(luò)在應(yīng)用中的需求和目前安全數(shù)據(jù)融合協(xié)議存在的問題,提出了一種安全數(shù)據(jù)融合方案SPDAA。假設(shè)網(wǎng)絡(luò)環(huán)境相對穩(wěn)定,并且節(jié)點的分布較為密集,節(jié)點的位置較固定。下面用圖1來描述SPDAA協(xié)議在一輪會話中的過程。
圖1 SPDAA的流程圖
如圖1所示,SPDAA方案的步驟如下:
步驟1 感應(yīng)節(jié)點采集數(shù)據(jù),利用差值比較算法選擇是否參加本輪的會話,執(zhí)行模式生成算法,生成模式碼PC并向上層節(jié)點發(fā)送,節(jié)點在發(fā)送模式碼的同時,把自己的剩余能量和初始能量的百分比一起發(fā)送給上層節(jié)點,以便上層節(jié)點根據(jù)能量選擇通信節(jié)點,以均衡網(wǎng)絡(luò)能量;
步驟2 各級的中間融合節(jié)點在接受到數(shù)據(jù)后,對其中的模式碼做比較,并根據(jù)模式生成算法,確定冗余集合。中間節(jié)點在接受融合模式碼的同時,可以對消息中包含的兩個MAC值(一跳消息認(rèn)證碼(OHM),兩跳消息認(rèn)證碼(THM)。)進(jìn)行認(rèn)證,根據(jù)認(rèn)證的結(jié)果來確定是否接受還是拒絕匯聚結(jié)果;
步驟3 若是接受消息,則依據(jù)融合節(jié)點處融合算法將數(shù)據(jù)融合后向上層節(jié)點匯聚,直到基站,然后基站反饋被選中的節(jié)點。若是被拒絕,則發(fā)出警告,表明其孩子或者孫子節(jié)點已經(jīng)被攻擊;
步驟4 被選中的節(jié)點根據(jù)一定的加密算法安全的發(fā)送原始感應(yīng)數(shù)據(jù)。一輪會話結(jié)束。
傳感器網(wǎng)絡(luò)是一個周期性的感應(yīng)過程,其他周期重復(fù)上面的步驟。
我們假設(shè)網(wǎng)絡(luò)環(huán)境相對安全,運(yùn)用一種新型的密鑰分布方案SEDAN,該方案中每個節(jié)點分別保存兩跳內(nèi)的會話密鑰,每個節(jié)點保存四個密鑰,分別是與孩子、孫子、父親、祖父之間的共享密鑰。
設(shè)j為節(jié)點i的父節(jié)點,k為i的祖父節(jié)點;l為i的孩子節(jié)點,m為i的孫子節(jié)點,并且有融合函數(shù)f(d1,d2,d3,d4,d5)=f(d1,(d2,d3,d4),d5)成立,以下是各種符號的簡介:
A→B:節(jié)點A發(fā)送消息給節(jié)點B。
Ki,j:節(jié)點i與節(jié)點j之間的密鑰對。
IDi:節(jié)點i的唯一地址身份標(biāo)識符。
Er/Em:節(jié)點剩余能量和初始能量之間的百分比。
PCi:節(jié)點i的模式碼。
MAC(K,M):用密鑰K加密的消息認(rèn)證碼。
F(PC1,PC2):中間節(jié)點融合函數(shù)。
每個節(jié)點在確定其部署位置之后,分別保存上述的四個密鑰即與其孫子,孩子,父親,祖父之間的密鑰對。這個密鑰只建立一次,建立后不更換。圖2是一個簡化的傳感器層次網(wǎng)絡(luò)模型:假設(shè)只有葉子節(jié)點A、B、C、D感應(yīng)數(shù)據(jù)。
圖2 節(jié)點層次簡化圖
在SPDAA算法中,節(jié)點的傳送數(shù)據(jù)模式如下:
步驟1 節(jié)點A向其父親節(jié)點E發(fā)送數(shù)據(jù):
A→E:IDA,NA,PCA,Era/Ema,
上述數(shù)據(jù)結(jié)構(gòu)為節(jié)點A發(fā)送給其父節(jié)點的數(shù)據(jù),其中包括節(jié)點A的ID,隨機(jī)數(shù)據(jù)nonce,節(jié)點生成的模式碼,剩余能量與初始能量的百分比,以及兩個消息認(rèn)證碼。其中第一個是用節(jié)點A與其父節(jié)點E之間共享密鑰加密的消息認(rèn)證碼,被稱作一跳消息認(rèn)證碼——One Hop MAC(OHM)。第二個消息認(rèn)證碼是用與其祖父節(jié)點G之間共享密鑰加密的消息認(rèn)證碼,被稱作兩跳消息認(rèn)證碼——Two Hop MAC(THM)。這兩個消息認(rèn)證碼實現(xiàn)父節(jié)點、祖父節(jié)點分別認(rèn)證消息來源。
步驟2 節(jié)點B類似的發(fā)送消息給中間節(jié)點E,E根據(jù)與孩子節(jié)點A,B之間共享的密鑰,來認(rèn)證是否是A,B節(jié)點發(fā)來的消息(詳解見認(rèn)證算法描述),然后,節(jié)點E根據(jù)融合算法融合其接收到的數(shù)據(jù)。并發(fā)送如下消息給其上層節(jié)點:
這樣節(jié)點G利用THM就可以根據(jù)E發(fā)來的消息,直接認(rèn)證A,B節(jié)點發(fā)來的源數(shù)據(jù),同時利用OHM來認(rèn)節(jié)點E是否有篡改融合數(shù)據(jù)。
節(jié)點F的數(shù)據(jù)處理過程類似于節(jié)點E。
步驟3 同理,節(jié)點G認(rèn)證通過后,向基站發(fā)送數(shù)據(jù),基站可以通過驗證THM來證實節(jié)點G是否有篡改數(shù)據(jù)。
這樣基站收到來自G以及其他的分支的消息之后,根據(jù)模式碼計算其融合值,并確定最終的被選節(jié)點的集合,然后反饋被選節(jié)點給網(wǎng)絡(luò)。被選節(jié)點再根據(jù)一定的加密算法,安全的傳送原始感應(yīng)數(shù)據(jù)給基站,而中間節(jié)點不需要對接受到的消息進(jìn)行解密,直接向上轉(zhuǎn)發(fā)。
還是利用圖2來描述,當(dāng)節(jié)點G接受到節(jié)點E發(fā)來的消息后,它可以根據(jù)E發(fā)來的消息,分別認(rèn)證其孩子節(jié)點,以及孫子節(jié)點。以確認(rèn)其子孫節(jié)點是否篡改消息:
首先,利用KG,A來計算MAC,并將結(jié)果與E發(fā)過來的 MAC(KA,G,PCA‖NA)作對比,如果相等,則認(rèn)證了節(jié)點A。同理利用KG,B驗證節(jié)點B。其次,利用KG,E來計算G的一跳OHM值,并將結(jié)果與E發(fā)過來的 MAC(KE,G,NE‖f(PCA,PCB)),若相等,則說明節(jié)點E沒有篡改消息。
同理,類似的可以驗證F。一旦認(rèn)證不通過,節(jié)點可以清楚的知道是其孩子節(jié)點,還是孫子節(jié)點被妥協(xié)了,并且可以清楚的知道具體是哪一個節(jié)點被俘,一旦監(jiān)測出異常,就會全網(wǎng)通知該節(jié)點已經(jīng)被捕獲,并且自動的刪除與該節(jié)點之間的共享密鑰。若是中間節(jié)點被俘,如F,在刪除了F之后,節(jié)點由于跟其孫子節(jié)點有共享密鑰,這樣不影響整個網(wǎng)絡(luò)的連通性,可擴(kuò)展性比較好。
SSDAA以及SPDAA協(xié)議都是實施在TinyOS環(huán)境下的,以下所有的仿真都是通過 TOSSIM(TinyOS mote simulator)仿真工具實現(xiàn)的。TOSSIM是無線傳感器網(wǎng)絡(luò)常用的一種仿真工具,它能直接從TinyOS應(yīng)用的組建表編譯仿真程序。最后我們通過MATlab繪制仿真圖形。
由于SPDAA協(xié)議采用的是基于兩跳的認(rèn)證方案。由上述認(rèn)證過程的分析可知,SPDAA協(xié)議可以有效的防止假冒攻擊,減少甚至避免因針對攻擊時的盲目拒絕而導(dǎo)致重要數(shù)據(jù)的丟失。
圖3顯示了由于盲目拒絕而導(dǎo)致的數(shù)據(jù)丟失和攻擊者位置與基站距離之間的變化關(guān)系,有圖可見,SPDAA方案所采用的加密算法在處理盲目拒絕時相比于SSDAA方案有明顯的優(yōu)勢,數(shù)據(jù)的丟失率較小。在SSDAA中由于認(rèn)證算法采用的是延遲公布認(rèn)證密鑰的方法,在遇到節(jié)點被攻擊妥協(xié)的情況下,節(jié)點并不能具體指出是哪個子節(jié)點受到攻擊,只能檢測出B或者A節(jié)點被妥協(xié)了,因而,采取的是丟棄以B節(jié)點為根的整個子樹節(jié)點,這樣數(shù)據(jù)的丟失比較多,甚至可以注意到,數(shù)據(jù)的丟失率是100%。而SPDAA方案使用的兩跳密鑰對共享方案,中間節(jié)點分別與孩子孫子節(jié)點之間共享密鑰對,一旦某個節(jié)點被捕獲,中間節(jié)點可以準(zhǔn)確的判斷被捕獲的節(jié)點,并移除被捕獲的節(jié)點,而不是采取丟失子樹。相較與協(xié)議SSDAA而言,由于越靠近基站,節(jié)點融合的信息越多,當(dāng)攻擊者的位置越靠近基站時,該協(xié)議的優(yōu)勢可以越加凸顯,從而減少有效數(shù)據(jù)的丟失。
圖3 入侵者位置與數(shù)據(jù)丟失率的關(guān)系圖
本文提出的SPDAA協(xié)議在在感知節(jié)點處設(shè)置了差值比較算法,對減少網(wǎng)絡(luò)數(shù)據(jù)的冗余度有很顯著的功效。還是利用圖2做比較,其中A、B、C、D節(jié)點中,若是節(jié)點A和C分別計算到的差值都是小于閾值的,那么它們就直接進(jìn)入休眠狀態(tài)。只有節(jié)點C和D參加本輪的會話。當(dāng)網(wǎng)絡(luò)的規(guī)模比較大的時候,優(yōu)勢就很明顯,所以該方案在節(jié)點分布密集的網(wǎng)絡(luò)環(huán)境下很有優(yōu)勢。最重要的是可以減少上層節(jié)點的通信量。
SPDAA協(xié)議同時還考慮了節(jié)點的剩余能量的情況,圖4顯示了沒有考慮節(jié)點能量因素的協(xié)議和SPDAA協(xié)議中的網(wǎng)絡(luò)節(jié)點的衰竭率的比較。由于SPDAA協(xié)議中提出了一個節(jié)點剩余能量和初始能量百分比的因子Er/Em,例如在基站進(jìn)行選擇的時候,A和C具有相同的模式碼,基站選擇的時候,通過比較每個節(jié)點參加會話的頻率的大小,來確定本輪會話選哪個節(jié)點,盡量減少節(jié)點頻繁發(fā)送消息而導(dǎo)致能量衰竭的情況,有效地延長了整個網(wǎng)絡(luò)的生命周期。
圖4 網(wǎng)絡(luò)的會話輪數(shù)和節(jié)點衰竭比較
本文提出了一種無線傳感器網(wǎng)絡(luò)的安全數(shù)據(jù)融合協(xié)議SPDAA。與SSDAA協(xié)議類似,融合操作都是基于無物理意義的模式碼,從而保證融合過程中的數(shù)據(jù)保密。SSDAA協(xié)議在解決節(jié)點攻擊問題時往往采用盲目拒絕方式,造成大量有效數(shù)據(jù)丟失。相比較而言,SPDAA協(xié)議采用的是基于兩跳的加密認(rèn)證算法,與SSDAA采用的延遲公布密鑰的認(rèn)證算法相比較,在解決節(jié)點攻擊問題方面更有優(yōu)勢。另外,SPDAA協(xié)議在節(jié)能方面提出了兩點改進(jìn),可以有效的減少節(jié)點的衰竭度,延長網(wǎng)絡(luò)的生命周期。同時該協(xié)議采用的基于密鑰對的加密認(rèn)證,不同于SSDAA采用的μTESLA密鑰鏈。在密鑰的管理上相對簡單,能耗小。
[1]孫利民,李建中.無線傳感器網(wǎng)絡(luò)[M].清華大學(xué)出版社,2005:3-5.
[2]羅蔚,胡向東.無線傳感器網(wǎng)絡(luò)中一種高效的安全數(shù)據(jù)融合協(xié)議[J].重慶郵電大學(xué)學(xué)報,2009,21(1):110-114.
[3]Girao J,WesthoffD,SchneiderM.CDA:Concealed Data Aggregation for Reverse Multicast Traffic in WSN[C]//ACM Workshop on Wireless Security.2005.
[4]Poornima A S,Amberker B B.SEEDA:Secere end-to-end Data Aggregation in Wireless Sensor Networks[C]//IEEE Tran on Wireless and Optical Communications Networks(WOCN),2010:1-5.
[5]Liu Xinzhi.The Data Fusion of Wireless Sensor Network[J].Cmputer and Modernization,2010,177(5):151-159.
[6]Cam H,Ozdemir S,Nair P.ESPDA:Energy Efficient and Secure Pattern Based Data Aggregation for Wireless Sensor Network[C]//IEEE Society Press,2003,732-736.
[7]Qin Xiaoliang,Wei Qinfang.Optimal and Senure Comparison Based Datda Aggregation Protocol for WSN[J].Journal of Chongqing University of Posts and Telecommunications,2011,23(6):753-757.
[8]Sanli H O,Ozdemir S,Hasan Cam.SRDA:Secure Reference-Based Data Aggregation Protocol for WSN[C]//Processing of the IEEE VTC Fall Conference.2004.
[9]田賢忠,朱金鳳,陳群,等.無線網(wǎng)絡(luò)中基于編碼感知的能量優(yōu)化路由算法[J].傳感技術(shù)學(xué)報,2012,25(9):1304-1310.
[10]Mahimakar A,Secure T R.DAV:A Secure Data Sggregation and Verification Protol for Sensor Networks[C]//Proceeding of the IEEE Global Telecommunications Conference,2004.
[11]蔣君杰,戴菲菲,彭力,等.基于擴(kuò)維貼近度的多傳感器一致可靠性融合方法[J].傳感技術(shù)學(xué)報,2012,25(9):1312-1315.
[12]張建明,廖建勇,周四望,等.傳感器網(wǎng)絡(luò)中可擴(kuò)展性好的數(shù)據(jù)匯聚與認(rèn)證協(xié)議[J].計算機(jī)工程與應(yīng)用,2006,20:108-113.
[13]Bagga M,Lasla N.SEDAN:Secure and Efficient Protol Data Aggregation in WSN[C]//University of Science and Technology Houari Boumediene,LSI lab,2009.