范 容,平玲娣,傅建慶,潘雪增
(浙江大學計算機科學與技術學院 杭州310027)
無線傳感器網絡(wireless sensor network,WSN)由大量微小傳感器節點組成,節點之間采用多跳、無線射頻或光波等方式通信,相互協作共同完成諸如數據采集、目標跟蹤和指定區域監控等任務[1]。在無線傳感器網絡中,一般通過兩種方法來收集感知數據:通過傳感器節點實時地感知環境變量,采集數據并轉發到匯聚節點(sink node)進行存儲;傳感器節點在獲取感知數據后并不立即轉發給匯聚節點,而是存儲在本地節點或者本地的數據中心節點上。第二種方法被廣泛應用于無人值守的無線傳感器網絡(unattended wireless sensor network,UWSN)[2]。這是由于在UWSN應用中,傳感器節點大多被部署在惡劣環境中,例如冰川、深海、火山口等區域,人類接近這樣的區域比較困難,且節點間通信困難,部署用于存儲感知數據的匯聚節點也是十分困難的事情。再者,在某些場景下用戶關心信息的摘要,包括歷史信息的概要或者經過處理后的數據結果,需要感知數據的摘要信息而不是實時數據,這樣感知數據不需要立即發送到中央節點或用戶終端,而是長時間保存在傳感器節點上[3],例如過去兩周內的平均濕度,過去兩個月內河水中含氧量的變化或者過去半年內土壤中化學物質的濃度[4]。這些感知數據通過基站定期獲取或用戶自行提取,可避免感知數據的實時傳送,降低通信消耗,延長節點生命周期。
目前對于無人值守無線傳感器網絡的研究已經取得了諸多成果[2~7]。例如在參考文獻[2,4,6]中,傳感器節點并不實時發送感知數據,而是存儲在節點上直到用戶來讀取;參考文獻[3]提出了一種基于秘密共享技術的數據存儲策略,提高了數據存活率,降低了通信消耗;參考文獻[5]運用傳感器的日志信息進行分析,來獲取感知數據的歷史趨勢;參考文獻[7]提出了一種基于數據關聯性的存儲方法,將相關性質相同的數據以一定命名規則進行命名,并存儲在特定節點上。
由于傳感器節點所擁有的資源有限,設計一種安全、高效的感知數據存儲方案面臨諸多挑戰,需要在設計方案中平衡安全、效率、可行性等方面因素。并且由于傳感器節點長期暴露在外,很容易受到各種攻擊,例如將傳感器節點熔化、腐蝕或者擠壓破碎等物理攻擊,網絡攻擊者所實施的俘獲節點、篡改數據等復雜網絡攻擊。總體來說,一個安全、高效的感知數據存儲方案需要滿足以下3點設計要求。
· 安全性:在存儲期間,非授權用戶或者攻擊者都無法讀取已經存儲在節點上的數據,能抵御節點妥協攻擊。
· 完整性:在存儲期間,任一節點可檢查其共享數據,以保證數據的完整性,防止被攻擊者修改。
· 可靠性:在發生數據丟失時,能在一定程度上保證原始感知數據的恢復。
為了滿足以上設計要求,我們研究了基于門限的秘密共享機制,并運用哈希鏈技術來提高節點感知數據的安全性與可靠性,還提出了一種基于正交向量的動態完整性檢查機制來保障感知數據的完整性。本文的創新之處在于:研究基于門限的多重秘密共享機制,并運用此技術在數據加密過程中,較好地平衡了系統的安全性與可行性;提出一種基于正交向量的動態完整性檢查機制,減少了不必要的通信消耗與計算量,并能達到完整性保護的作用。
假設在監控區域部署了N個傳感器節點的無人值守無線傳感器網絡,這些節點持續地監控環境變量,并將感知數據存儲在節點上,直到節點接收到來自基站或用戶發送的數據請求,才把數據發送給基站或用戶。假設傳感器節點隨機布置在一個二維空間V=(G,E)中,其中,G為傳感器節點,E為通信鏈接。在空間V中如存在一對節點(a,b)∈E,表示節點a與節點b可直接通信,即節點b在節點a的無線通信覆蓋范圍內。此外,除了基站以外,還有一組授權用戶可以直接讀取節點上存儲的感知數據來獲得所需要的信息。
由于傳感器節點大多數承擔了特定的感知任務,假設節點完成每一輪感知任務所需要的存儲空間都一致,表示為 ρ=log2(dir),(r∈(0,R],i∈[0,I]),其中,R 是基站服務器兩次連續訪問節點間傳感器節點執行的感知任務輪數(round),I是每輪感知任務中感知操作的次數。一旦傳感器節點產生感知數據dir,dir就被加密存儲在節點上直到有基站服務器或者授權用戶來讀取。
雖然傳感器節點擁有有限的計算能力,但隨著技術的發展與進步,越來越多的研究表明,非對稱密鑰加密機制也適用于目前已有的節點[8]。此外,我們假設基礎的安全機制已經部署在網絡中,兩節點間的密鑰已經能夠直接在網絡通信中運用。
無人值守無線傳感器網絡存儲系統易遭受來自多方面的攻擊:①物理攻擊,傳感器節點易受到物理攻擊,比如粉碎、熔化、腐蝕,被攻擊者或環境有意或無意的攻擊破壞,這些攻擊導致存儲在節點中的數據完全損失;②網絡攻擊,本文中我們假設網絡攻擊者試圖獲取存儲在感知節點之上的數據。具體來說,網絡攻擊者首先俘獲部分節點,然后試圖破解數據的加密密鑰并解密數據,網絡攻擊者希望在不被發現的情況下,試圖修改已經存儲在節點上的數據。在此,我們假設網絡攻擊者所能俘獲的節點數量有限,并且假設參數I大于網絡攻擊者所能俘獲節點的最大數量。
本文所需要使用的命名規則見表1。

表1 命名與參數
在此章節中,我們將提出一種基于秘密共享機制、安全、高效的分布式數據存儲與恢復方案。為了確保感知數據的安全性,傳感器節點必須加密已經獲取的感知數據并存儲在節點的閃存上,這樣只有授權用戶或者基站服務器才能解密并獲取感知數據。此外,由于傳感器節點缺乏物理保護,容易遭受節點妥協攻擊,系統的可靠性需要保證當部分節點失效后數據仍然可以恢復。為了達到以上目的,盡可能設計出輕量級的存儲方案以減少額外的能量消耗,我們引入了基于門限的秘密共享方案、哈希鏈以及基于向量正交的動態完整性檢查機制。
在系統初始化階段,網絡擁有者將選擇一個安全的哈希函數h(.),例如SHA-1。在部署節點前,網絡擁有者將哈希函數h(.)和參數R、I一起預置到節點中。當節點部署到檢測區域后,節點自行將輪數計數變量r和感知數據變量i分別置為1和0。
為了增強感知數據的安全性,我們在方案中將首先產生包含基站服務器在內的授權用戶組的密鑰,節點可使用此密鑰加密之后的數據。在這里,假設已存在一個安全、可靠的密鑰中心(trusted key center,TKC),可為整個網絡的用戶與服務器產生與分發密鑰。首先,TKC選擇如下公共參數。
· p:大素數,并且 2511
· w=(p-1)/2,并且 2510 · q:可整除 w-1,并且 2159 然后,每一個授權用戶在TKC進行注冊并選擇一個公開值xi∈[n+1,q]為其公鑰以及相應的秘密值yi∈[1,q-1]作為私鑰,TKC為每一個用戶保證公鑰的惟一性,并且公布每一個用戶的公鑰信息。在團體中n個用戶都注冊完成后,i=1,2,…,n時可決定拉格朗日插值公式: 其中,f(xi)=yi[9],不同于參考文獻[9]中的方案,門限值t(也就是機密等級)在本方案中是一個恒定值(t=1)。然后TKC就為這組用戶產生私鑰與公鑰:TKC任意選擇整數g和 g′,分別滿足 g=h(p-1)/w=h2mod p>1 和 g′=h′(w-1)/qmod w>1,其中,0 在第r輪中,當傳感器節點IDs執行感知操作并產生感知數據后dir,完成以下步驟以加密存儲感知數據。 ·如果是新的一輪開始,傳感器節點選擇一個隨機數作為此輪的密鑰Kr,并且設置k0r=Kr。然后計算哈希值p0r=h(d0r||k0r),其中,d0r并不是具體的感知數據而是此輪感知數據的基本信息,例如原始節點的標識、輪編號和數據產生的時間戳等信息。接著節點將輪密鑰Kr用組密鑰GK進行加密Ea(Kr,GK): 其中,γ∈[1,w-1]并將輪密鑰Kr從內存中刪除。 ·傳感器節點將數據dir和哈希值pir=h(dir||kir)用當前的對稱密鑰kir進行加密E(dir||pir,kir),并將此加密數據進行存儲。 ·如圖1所示,完成存儲工作后,傳感器節點需要將當前的計數器i和加密密鑰進行更新,i=i+1,kir=pri-1=h(dri-1||kri-1)。最后刪除前一次的感知數據dri-1、哈希值pri-1和加密密鑰kri-1。 ·為了進行動態完整性檢查,傳感器節點還需要計算當前加密數據的哈希值h(E(dir||pir,kir)),并將其轉化為一個n維向量vir。如圖2所示,傳感器節點先將加密數據的哈希值按照比特位進行分割,例如采用SHA-1作為安全的哈希函數,其輸出為160 bit,以4 bit為一組進行分割,以形成一個40維的向量。最后,將這個n維向量加到向量和中: 在完成一輪的感知操作后,傳感器節點為了提高感知數據的存活率還需將已經加密存儲的感知數據進行分發、共享。本文提出了一種簡單、高效的數據共享機制,這個機制不僅提高了感知數據的存活率,優化了存儲效率,而且能為之后的數據動態完整性檢測與數據恢復提供實現基礎。完成以下步驟將數據在節點間進行共享。 · 傳感器節點IDs計算產生一非零正交向量Wsr滿足Vsr×Wsr=0,并將 Vsr從內存中刪除。 · 傳感器節點IDs已經預置了參數I,為完成一輪感知操作所能包含的感知數據項。傳感器節點選擇鄰近的I個節點作為其分布式存儲節點,并將其進行編號{1,2,3,…,I}。 · 傳感器節點IDs根據數據項的編號i發送給相應的節點{E(dir||pir,kir),Wsr,i}。本身保存加密后的輪密鑰以及加密后的感知數據基本信息E(d0r||p0r,k0r)。 顯而易見的是,由于共享數據是由數據密鑰進行加密的,而輪密鑰只有原始節點才具有,并且也已經使用用戶組密鑰GK加密,除授權用戶外任何人無法獲取感知數據,因此系統可達到較高的安全性。 一段時間后,任一共享數據擁有者(表示成為IDh)可發起對于特定原始節點某一輪次的感知數據進行動態完整性檢測,以檢查感知數據是否正確存儲在各個節點之上。 共享數據擁有者IDh廣播原始節點的標識和輪次以發起動態完整性檢測{Vr=vhr,r,μ,i},其中,vhr為存儲在其上的感知數據哈希值的n維向量,r為輪次,μ為原始節點的標識,i為其收到的感知數據編號。 · 當收到動態完整性檢測請求后,傳感器節點首先檢查是否存儲有此節點和輪次的感知數據。如果存在并且其存儲的數據編號 i′=(i+1)%I,則計算新的 n維向量值并加入到Vr中,更新消息中的編號i=i+1,并繼續發送{Vr,r,μ,i}。 ·當完整性檢測發起者IDh重新收到完整性檢測請求消息中的數據編號i與其存儲的編號一致時,表明所有節點都完成完整性的計算,即可計算Vr×Wr,如果結果等于0,那么表明感知數據已被正確地存儲在節點上,反之則已遭破壞。 從組密鑰產生階段可知,基站服務器或授權用戶已經預置了其公鑰yi與私鑰xi。當基站服務器或者授權用戶請求響應感知數據時,所有存儲相關數據的傳感器節點都將其存儲的數據上傳。由于感知數據分布在各個傳感器節點上,每一個節點返回各自存儲的感知數據,平衡了用戶讀取時的能量消耗。當節點收到新一輪完整的數據后,首先解密Kr: 然后可獲得k0r,并解密得到d0r,這樣即可依次計算kir=pri-1=h(dri-1||kri-1)并解密相應的感知數據,同時可通過pir檢查數據的完整性。 在本章節中,我們分析了所提方案的安全性,主要關注§2.2所提出的攻擊模型,并進一步分析了其他網絡攻擊。 (1)分布式數據存儲的安全性、可靠性分析 當無人值守的無線傳感器網絡部署在監控區域,完成系統初始化并開始執行感知任務后,攻擊者就開始俘獲節點并試圖破解存儲在節點上的感知數據,竊取數據或篡改數據,以達到其破壞網絡的目的。然而攻擊者破解已存儲的感知數據是非常困難的,首先任何之前使用過的數據密鑰都已經被刪除,并且由于哈希函數的單向性,即使獲取當前所使用的密鑰也無法計算出之前所使用的密鑰;其次,從數據恢復階段可知,只有授權用戶可通過解密Kr來得到k0r,并依次獲取kir以解密相應的感知數據,而本文采用基于門限的團體式秘密共享方案,這樣想破解Kr就必須面對離散對數問題。 (2)分布式數據存儲動態完整性保障分析 篡改共享數據:當攻擊者俘獲一些節點后,可能試圖在授權用戶讀取前,修改存儲在節點上的感知數據。由于共享數據塊是被數據密鑰kir加密,并且輪密鑰Kr由授權用戶組的組公鑰進行加密,攻擊者無法通過破解密鑰來篡改共享數據。再者,如果攻擊者直接修改共享數據塊,那么其哈希值也必然同時發生變化,這樣就無法通過基于正交向量的動態完整性檢測機制的檢查。 合謀攻擊(collusion attack):共享數據的擁有者可能合謀來修改感知數據,換句話說,也就是驗證者收到的向量可能被修改來滿足最后的正交特性。但這樣的攻擊在本文所提出的安全機制下無法實現,首先是因為每一個共享數據擁有者都必須參與到動態完整性檢測中來,并且每一個擁有者都可成為檢測的發起者。這樣如果要滿足最后的n維向量和Vr×Wr=0的話,那么就需要對I個傳感器節點上的共享數據塊都做修改。其次由攻擊模型可知,攻擊者只能俘獲一定量的傳感器節點,并且假設其數量小于參數I,所以攻擊者無法執行合謀攻擊。 在本節中,將前文提出的數據存儲方案在MicaZ[10]節點上進行實驗。MicaZ節點擁有8 MHz主頻CPU的ATmega128微處理器、128 kbyte的ROM和4 kbyte的RAM,并且MicaZ節點運行Tiny OS 2.x版本。此外我們選擇SHA-1為單向散列函數。以下將通過實驗表明本方案在存儲開銷、通信開銷和能量消耗方面的情況,并且可從中得出結論:所提出的分布式數據存儲方案滿足當前無線傳感器節點資源限制特點。 (1)存儲開銷 表2說明了原始感知數據節點和其他共享數據節點的存儲開銷,包括感知數據、密鑰、向量值的存儲空間。 表2 節點的存儲開銷 (2)通信開銷 我們測量了每一輪數據共享時所需要的通信開銷,見表3,可知整個方案運行期間通信量的大小。 表3 節點的通信開銷 (3)能量消耗 每一個節點的能量消耗可通過公式E=UIt計算得出,其中,U是電壓值,I是電流值,t是時間消耗。由于MicaZ節點采用兩節AA電池為其供電,那么U≈0.3 V,并且由MicaZ附帶的數據手冊可知其電流值大約為8 mA。表4中詳細列舉了節點在方案實施各個階段不同的能量消耗。 表4 節點的能量消耗 本文提出了一種無人值守的無線傳感器網絡環境中安全、高效的分布式數據存儲方案。此方案提供了動態完整性檢測機制,并利用基于門限的團體式秘密共享方法來確保數據的安全性與可靠性。此外,為了保證共享數據的完整性,我們提出了一種基于正交向量的動態完整性檢測機制,能夠高效、低能耗地完成數據完整性檢測工作。本方案的特點:只有授權用戶才能訪問節點上的感知數據;具有簡單、高效的完整性檢測機制。最后,通過實驗與分析可知,本方案已達到較高的安全等級,并滿足傳感器節點資源受限的特點。 1 Akyildiz F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:a survey.Computer Networks,2002(38):393~422 2 Pietro R D,Mancini L V,Soriente C,et al.Catch me (if you can):data survival in unattended sensor networks.In:Proc of IEEE PerCom’08,Piscataway, NJ, USA,Mar 2008 3 任偉,任毅,張慧等.無人值守無線傳感器網絡中一種安全高效的數據存活策略.計算機研究與發展,2009,46(12):2 093~2 100 4 Diao Y, Ganesan D, MathurG, etal.Rethinking data management for storage-centric sensor networks,http://www-db.cs.wisc.edu/cidr/cidr2007/index.Html,2007 5 DiaoY, Ganesan D, MathurG, etal.Rethinkingdata management for storage-centric sensor networks,http://www-db.cs.wisc.edu/cidr/cidr2007/index.Html,2007 6 Girao J, WesthoffD, Mykletun E, etal.Tinypeds:Tiny persistent encrypted data storage in asynchronous wireless sensor network.Ad Hoc Networks,2007,5(7):1 073~1 089 7 Ganesan D, Greenstein B, Perelyubskiy D, et al.Multi-resolution storage and search in sensor networks.ACM Trans on Storage,2005,1(3):277~315 8 Gunnar Gaubatz, Jens-Peter Kaps, Berk Sunar.Public key cryptography in sensor network—revisited.In:First European Workshop on Security in Ad-Hoc and Sensor Network(ESAS 2004),Heidelberg Germany,August 2004 9 Harn L,Lin H Y,Yang S.Threshold cryptosystem with multiple secret sharing policies.IEEE Proc Comput Digit Tech,1994,141(2):142~144 10 Crossbow Technology INC.Wireless sensor networks,http://www.xbow.com/Products/WirelessSensorNetworks.htm
3.3 感知數據存儲


3.4 數據共享


3.5 數據動態完整性檢測
3.6 數據恢復

4 分析與實驗
4.1 安全性分析
4.2 性能分析



5 結束語