李明,熊盛武,鄭曉亮
(武漢理工大學湖北武漢430070)
近年來,隨著微機電系統、無線通信、信息網絡與集成電路等技術的迅速發展,新興的無線傳感器網絡應運而生。無線傳感器網絡是由大量分布式傳感節點組成的面向任務型自組織網絡。由于擁有廣泛的應用前景,無線傳感器網絡得到了迅速發展,廣泛應用于國防軍事、工業控制、環境監測、交通管理等領域。雖然無線傳感器網絡有許多優點,但由于很多傳感器網絡有可能被部署在敵方區域,而且由于它的無線通信特性,很容易遭到攻擊,如何加強它的抗攻擊能力,提高安全性就顯得極為重要[1]。一般來說,無線傳感器節點擁有有限的資源,比如計算能力、存儲空間和能量等,這導致了非對稱密碼算法難以在其上被使用,所以無線傳感器網絡普遍使用基于對稱密碼的密鑰管理算法來保證其安全。通過無線傳感器網絡的特性以及可能面臨的攻擊,綜合已有的多種算法,在分簇結構無線傳感器網絡基礎上提出一種新的密鑰管理方案,并給出了這種方案的性能分析與仿真結果,結果顯示提高了算法的安全性能。
分簇無線傳感器網絡[2]是現在使用比較廣泛的網絡結構,分簇無線傳感器網絡拓撲結構如圖1所示。

圖1 分簇結構的無線傳感器網絡拓撲結構Fig.1Clustering structure of wireless sensor network topology
將基于該結構進行密鑰管理。該網絡結構是由基站、簇頭與簇內節點3種類型的節點構成。其中基站的主要功能是數據匯總,對網絡中的傳感器節點發送命令,基站具有無限能量、高計算能力以及充足的存儲空間。簇頭節點主要是將本簇內成員收集到的信息進行簡單的數據融合并發送到基站,同時下達基站對本簇成員的命令,簇頭節點是具有特殊功能的傳感器節點,其能量、計算能力和存儲空間都很有限。簇內節點負責感知周圍環境,將采集到的數據傳送到簇頭節點。
KPD概率密鑰共享算法[3]首先創建一個密鑰池,密鑰池里包含了密鑰及其所對應的ID,然后為每個節點隨機從密鑰池里分配一定數目的密鑰,當節點被投放后,每個節點會廣播它所擁有的密鑰ID來發現互相之間共享的密鑰,任意兩個共享密鑰的節點都可以建立安全信道,任意節點通過安全信道來通信。由不同的密鑰池大小P和每個節點所存儲的密鑰數k,這個算法能獲得不同的連通性和抗攻擊性。假設任意兩個通信節點能建立安全鏈接的概率用p1表示,則p1=了提高算法的抗攻擊性,可在此基礎上約定共享q個密鑰才能建立鏈接,即q-composite方案[4]。
分簇算法是將傳感器節點分成很多簇,簇內節點和簇間節點擁有不同的密鑰共享概率。每個簇都擁有一個單獨的密鑰池,而且同一簇內的節點有很多概率被投放到同一片區域,這樣每個節點有很大概率同相鄰節點共享密鑰。如果兩個簇在投放點上是鄰居的話,其相應的密鑰池也被看成是相鄰的,而且這些密鑰池有如下性質[5]:
1)兩個垂直或者平行的相鄰密鑰池共享α|Sc|個密鑰,0≤α≤0.25。
2)兩個斜相鄰密鑰池共享β|Sc|個密鑰,0≤β≤0.25,4α+4β=1。3)兩個不相鄰的密鑰池不共享密鑰。
其中|Sc|為密鑰池的大小,根據上述性質,在節點被投放后,每個節點有一定概率與同簇及相鄰簇的節點共享密鑰。
該方案[6]采用將節點身份與節點密鑰、密鑰標識3者相結合的思想完成密鑰的預分配階段和共享密鑰發現階段來提高抵抗被俘獲攻擊的能力。
假設網絡中放置n個傳感器節點,符號表示如下:id:每個傳感器節點的唯一標識,其中id=1,2,…n;Sid:標識為id的傳感器節點;
P:密鑰分配中心產生的密鑰池;
m:每個傳感器節點的密鑰個數,m個密鑰構成節點的密鑰環;
IDid:節點Sid所有m個密鑰組成的標識集合;
1)密鑰預分配階段
①給每個傳感器節點分配唯一的id,基站密鑰中心生成大量的密鑰組成一個密鑰池P,每個接入網絡的節點選出m個不同的密鑰構成該節點的密鑰環,并給出每個密鑰的標識ID,i=1,2,…m;
②利用Hash函數建立節點身份與密鑰標識之間的關系。對于節點Sid來說,輸入節點id以及第i個密鑰的標識IDiid,將Hash函數的輸出作為第i個密鑰新的標識,重復執行m次得到該節點一個新的密鑰標識集合,通過這一步使得密鑰中心產生的密鑰標識與所配置的節點身份聯系了起來,將重新得到的密鑰和密鑰標識集載入節點的內存中。
③按照與②中相同的規則,將基站的身份id與每個節點的密鑰建立聯系,得出基站與每個節點的共享密鑰。到此,節點密鑰的預分配已經完成,每個節點都分配了各自的密鑰環,并且完成了節點與基站的密鑰協商。
2)共享密鑰發現階段
每個傳感器節點廣播自己的身份標識id,對于節點i的其中一個鄰居節點j,將j的身份作為輸入求出該節點所對應的密鑰標識集合IDj。然后將IDj與自己的密鑰標識集合比較,如果存在相同的密鑰標識,那么就以該密鑰標識對應的密鑰作為這兩個節點之間的共享密鑰。
3)路徑密鑰建立階段
如果兩個節點沒有發現共享密鑰,那么需要第3個節點作為中間節點,分別與第3個節點建立安全的鏈接協商路徑密鑰,這個過程與上述兩個階段相同。
在上述算法中,每個節點都存儲一定數目的密鑰,不同的節點可能會共享密鑰,當節點被攻破時,它所存儲的密鑰將被泄露,所有其它使用這些密鑰進行的通信都將不再安全。我們可以把一部分存儲的密鑰替換為包含某種中間信息的特殊信息,這些特殊信息也可以建立安全鏈接,而且泄露后不會對其它鏈接產生任何不利后果,這樣可以有效地提高安全性,同時對連通度沒有太大影響。
首先為每個簇創建一個容量為P的密鑰池,簇內每個節點從密鑰池里隨機選擇m個密鑰,并從這串密鑰中隨機選u個密鑰,將它們替換成特殊信息。特殊信息EK可計算如下,EKk=k(H(K′⊕IDk))其中IDk為密鑰k所對應的ID,⊕為二進制異或,H0為哈希操作,k0為使用密鑰k進行的加密操作,節點會存儲一個各自不同的密鑰K′。由于K′對每個節點都不同,一旦某個節點被俘獲,它所擁有的K′不能被用于解密其它節點間的加密通信。當節點把某個密鑰k替換成對應的EK后,只需存儲EK而不再存儲對應的k以節省存儲空間,因為算法中它不需要靠k來對EK進行解密操作,每個節點通過K′,ID和H求出EK解密后的值,即H(K′⊕IDk),這個值被作為建立通信的密鑰,而另外一個節點只需擁有k,就可以通過解密EK來獲取這個通信密鑰,從而建立安全鏈接。
在通信密鑰建立過程中,每個節點都需要發現周圍能和其密鑰相匹配的節點。如果兩個節點擁有相同的密鑰,或者一個節點擁有密鑰,另一個節點擁有由該密鑰運算得到的EK,都可以認為兩個節點擁有相匹配的密鑰。在密鑰發現過程中,每個節點將自己的密鑰ID列表進行廣播,這些ID對應自己擁有的密鑰以及EK。當廣播完成后,擁有匹配密鑰的節點就可以建立安全鏈接了。這可以由2種方式達成,第1種,如果雙方都擁有密鑰k,他們可以使用k作為通信密鑰來建立安全鏈接。第2種,如果一方擁有密鑰k,另一方擁有對應的EK,那么它們也能建立安全鏈接,所使用的密鑰雙方可以按如下步驟計算,對于擁有EK的一方,它計算如下kreal=H(K′⊕IDk)。對于擁有k的一方,它首先接受另一方傳輸過來的EK,然后計算kreal=Dk(EKk),其中Dk()為使用k來進行的解密操作。當雙方都擁有了相同的密鑰K′后,可以用它來加密通信。由于每個節點的K′都不一樣,每個密鑰的ID也不相同,所以每個K′只在兩個節點之間共享,即使它被泄露了也不會影響其它節點間的通信。哈希函數H用于保護密鑰信息,如果攻擊者已經獲取了密鑰k,以及某個節點對應密鑰k的EK,攻擊者也無法解密EK來獲取這個節點的K′信息,這樣也就無法計算出這個節點跟另外節點通信所使用的kreal。
1)連通性連通性代表網絡安全連通的能力。即節點在可通訊的范圍內,建立安全鏈接的概率。
2)抗攻擊性抗攻擊性指網絡在某些節點被攻破的情況下仍能保持通信安全的能力。
4.2.1 抗攻擊性
當傳感器網絡節點選擇替換特殊信息的u個密鑰占節點密鑰m的比例r不同時,將會產生不同的安全性。在算法中給定一個t,它能在網絡部署之前計算出來,r的取值在t的兩邊可以采取兩種不同的密鑰串選擇方法,來使安全性能得到最優化。如果P代表密鑰的容量大小,m代表傳感器節點能容納的密鑰數目,n代表無線傳感器網絡所有節點的數目,則m(1-r)n<=p表示整個無線傳感器網絡中被直接存儲的密鑰數目小于密鑰池大小。如果讓每個節點都存儲不一樣的密鑰,一旦這些節點被攻破,它們所泄露的密鑰對其它節點的鏈接不會造成任何威脅,這樣整個網絡的抗攻擊性一直會保持最大值1。當r等于t時上述不等式取等在算法中,一個節點會存儲直接密鑰以及另一些密鑰的間接信息,數目分別是m(1-r)以及mr。如果它被攻破了,m(1-r)個密鑰將被泄露,而以及密鑰間接信息對攻擊者而言沒有任何價值。當S個節點被攻破時仍能保持安全的概率可計算如由上述分析可知,當0≤r<t時被攻破的節點數目越多那已建立的安全鏈接越不安全,當t≤r≤1時被攻破的節點不會對其它的鏈接產生影響,此時安全性能達到最大值。
4.2.2 連通性
如果P表示密鑰池的大小,兩個節點分別存儲K1和K2個密鑰,不存儲特殊信息,那么這兩個節點能建立安全鏈接點存儲m(1-r)個密鑰以及mr個間接密鑰信息。首先,讓A從容量為P的密鑰池中隨機選擇m(1-r)個密鑰,然后讓B從剩下的密鑰池中隨機選擇m(1-r)個密鑰,最后讓A,B分別從剩下密鑰池中選擇mr個密鑰,并將他們替換成EK。當0≤r<t時,A存儲的m(1-r)個密鑰與B的密鑰及特殊信息沒有匹配的概率為:p1=1-p(P,m,m(1-r)),A存儲的特殊信息與B也無匹配的概率為:p2=1-p(P-m(1-r),mr,m(1-r)),這樣A與B能建立安全鏈接的概率為pn=1-(1-p1)(1-p2)。當t≤r<1時,任意兩個節點都不會共享密鑰,它們依靠間接密鑰信息來建立鏈接,連通性為pn=1-(1-p(P,mr,m(1-r)))2。
4.2.3 r對性能的影響
r為可變參數,不同的值會導致不同的安全性。一般來說,給定P和m,增加r會導致更好的抗攻擊性,但會降低連通性。由于連通性和抗攻擊性在我們改變r后都會發生改變,因此可以通過固定某一個性能指標值來觀察另一個性能指標的變化來判斷綜合性能的變化情況。此處固定m,通過調節P來使連通性保持同一個值。當0≤r<t時,r與安全性能的關系如圖2所示。其中連通性取值0.4,每個節點存儲能力為200。從圖2中我們知道與KPD算法相比,算法改善了安全性能。

圖2 抗攻擊性(0≤r<t)Fig.2Performance of anti-attack(0≤r<t)
當t≤r<1時節點被攻破并不會泄露任何密鑰,網絡的抗攻擊性能為最好。圖3為與KPD算法的性能比較結果,其中網絡規模分簇規模為500個節點,m為100,P為500,r為0.99,連通性為0.4。

圖3 抗攻擊性(t≤r<1)Fig.3Performance of anti-attack(t≤r<1)
由上述性能分析知,算法較其它算法在安全性上有所提高。不同的網絡規模,密鑰存儲數,密鑰池大小,r等參數均會導致不同的安全性能,可以根據實際情況選擇適當的參數。
本文提出了一個基于分簇的有效無線傳感器網絡密鑰管理方案。在不降低連通性的同時提高了安全性。在未來,可以探索采用怎樣的分簇算法以及分簇的大小來提高性能,同時也可以研究11這個算法與其它算法一起使用的適用性,從而開發出一個基于這個算法的分組框架算法。
[1]王睿,韓芳溪,張曉麗.無線傳感器網絡密鑰預分配與動態分配策略[J].計算機工程與應用,2006,43(3):120-122.WANG Rui,Han FANG-xi,ZHANG Xiao-li.Wireless sensor networkskeypre-distributionanddynamicallocation strategy[J].Computer Engineering and Application,2006,43(3):120-122.
[2]章靜,許力,黃榕寧.自組網中可信的分簇策略[C]//第二屆可信計算與信息安全學術會議論文文集,2006:1-5.
[3]Echenauer L,Gligor V D.A key management scheme for distributed sensor network[C]//Proc of the 9th ACM Conf on Computer and Communications Security,New York:ACM Press,2002:41-47.
[4]Chan H,Perrig A,Song D.Random key pre-distribution schemesforsensornetworks[C]//IEEESymposiumon Research in Security and Privacy,2003:197-213.
[5]Du W,Deng J,Han Y S,et al.A key management scheme for wireless sensor networks using deployment knowledge[C]//Proceedings of IEEE INFOCOM,Piscataway:IEEE Press,2004:586-597.
[6]楊庚,王江濤,程宏兵,等.基于身份加密的無線傳感器網絡密鑰分配方法[J].電子學報,2007,35(1):180-184.YANG Geng,WANG Jiang-tao,CHENG Hong-bing,et al.A key establish scheme for WSN based on IBE and Diffle-Hellman algorithms[J].Acta Eleclronics Sinica,2007,35(1):180-184.
[7]Xiao Y,Rayi V K,Sun B,et al.A survey of key management schemesinwirelesssensornetworks[J].Computer Communications,2007,30(11-12):2314-2341.