李明,熊盛武,鄭曉亮
(武漢理工大學(xué)湖北武漢430070)
近年來,隨著微機電系統(tǒng)、無線通信、信息網(wǎng)絡(luò)與集成電路等技術(shù)的迅速發(fā)展,新興的無線傳感器網(wǎng)絡(luò)應(yīng)運而生。無線傳感器網(wǎng)絡(luò)是由大量分布式傳感節(jié)點組成的面向任務(wù)型自組織網(wǎng)絡(luò)。由于擁有廣泛的應(yīng)用前景,無線傳感器網(wǎng)絡(luò)得到了迅速發(fā)展,廣泛應(yīng)用于國防軍事、工業(yè)控制、環(huán)境監(jiān)測、交通管理等領(lǐng)域。雖然無線傳感器網(wǎng)絡(luò)有許多優(yōu)點,但由于很多傳感器網(wǎng)絡(luò)有可能被部署在敵方區(qū)域,而且由于它的無線通信特性,很容易遭到攻擊,如何加強它的抗攻擊能力,提高安全性就顯得極為重要[1]。一般來說,無線傳感器節(jié)點擁有有限的資源,比如計算能力、存儲空間和能量等,這導(dǎo)致了非對稱密碼算法難以在其上被使用,所以無線傳感器網(wǎng)絡(luò)普遍使用基于對稱密碼的密鑰管理算法來保證其安全。通過無線傳感器網(wǎng)絡(luò)的特性以及可能面臨的攻擊,綜合已有的多種算法,在分簇結(jié)構(gòu)無線傳感器網(wǎng)絡(luò)基礎(chǔ)上提出一種新的密鑰管理方案,并給出了這種方案的性能分析與仿真結(jié)果,結(jié)果顯示提高了算法的安全性能。
分簇無線傳感器網(wǎng)絡(luò)[2]是現(xiàn)在使用比較廣泛的網(wǎng)絡(luò)結(jié)構(gòu),分簇無線傳感器網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示。
圖1 分簇結(jié)構(gòu)的無線傳感器網(wǎng)絡(luò)拓撲結(jié)構(gòu)Fig.1Clustering structure of wireless sensor network topology
將基于該結(jié)構(gòu)進行密鑰管理。該網(wǎng)絡(luò)結(jié)構(gòu)是由基站、簇頭與簇內(nèi)節(jié)點3種類型的節(jié)點構(gòu)成。其中基站的主要功能是數(shù)據(jù)匯總,對網(wǎng)絡(luò)中的傳感器節(jié)點發(fā)送命令,基站具有無限能量、高計算能力以及充足的存儲空間。簇頭節(jié)點主要是將本簇內(nèi)成員收集到的信息進行簡單的數(shù)據(jù)融合并發(fā)送到基站,同時下達基站對本簇成員的命令,簇頭節(jié)點是具有特殊功能的傳感器節(jié)點,其能量、計算能力和存儲空間都很有限。簇內(nèi)節(jié)點負責感知周圍環(huán)境,將采集到的數(shù)據(jù)傳送到簇頭節(jié)點。
KPD概率密鑰共享算法[3]首先創(chuàng)建一個密鑰池,密鑰池里包含了密鑰及其所對應(yīng)的ID,然后為每個節(jié)點隨機從密鑰池里分配一定數(shù)目的密鑰,當節(jié)點被投放后,每個節(jié)點會廣播它所擁有的密鑰ID來發(fā)現(xiàn)互相之間共享的密鑰,任意兩個共享密鑰的節(jié)點都可以建立安全信道,任意節(jié)點通過安全信道來通信。由不同的密鑰池大小P和每個節(jié)點所存儲的密鑰數(shù)k,這個算法能獲得不同的連通性和抗攻擊性。假設(shè)任意兩個通信節(jié)點能建立安全鏈接的概率用p1表示,則p1=了提高算法的抗攻擊性,可在此基礎(chǔ)上約定共享q個密鑰才能建立鏈接,即q-composite方案[4]。
分簇算法是將傳感器節(jié)點分成很多簇,簇內(nèi)節(jié)點和簇間節(jié)點擁有不同的密鑰共享概率。每個簇都擁有一個單獨的密鑰池,而且同一簇內(nèi)的節(jié)點有很多概率被投放到同一片區(qū)域,這樣每個節(jié)點有很大概率同相鄰節(jié)點共享密鑰。如果兩個簇在投放點上是鄰居的話,其相應(yīng)的密鑰池也被看成是相鄰的,而且這些密鑰池有如下性質(zhì)[5]:
1)兩個垂直或者平行的相鄰密鑰池共享α|Sc|個密鑰,0≤α≤0.25。
2)兩個斜相鄰密鑰池共享β|Sc|個密鑰,0≤β≤0.25,4α+4β=1。3)兩個不相鄰的密鑰池不共享密鑰。
其中|Sc|為密鑰池的大小,根據(jù)上述性質(zhì),在節(jié)點被投放后,每個節(jié)點有一定概率與同簇及相鄰簇的節(jié)點共享密鑰。
該方案[6]采用將節(jié)點身份與節(jié)點密鑰、密鑰標識3者相結(jié)合的思想完成密鑰的預(yù)分配階段和共享密鑰發(fā)現(xiàn)階段來提高抵抗被俘獲攻擊的能力。
假設(shè)網(wǎng)絡(luò)中放置n個傳感器節(jié)點,符號表示如下:id:每個傳感器節(jié)點的唯一標識,其中id=1,2,…n;Sid:標識為id的傳感器節(jié)點;
P:密鑰分配中心產(chǎn)生的密鑰池;
m:每個傳感器節(jié)點的密鑰個數(shù),m個密鑰構(gòu)成節(jié)點的密鑰環(huán);
IDid:節(jié)點Sid所有m個密鑰組成的標識集合;
1)密鑰預(yù)分配階段
①給每個傳感器節(jié)點分配唯一的id,基站密鑰中心生成大量的密鑰組成一個密鑰池P,每個接入網(wǎng)絡(luò)的節(jié)點選出m個不同的密鑰構(gòu)成該節(jié)點的密鑰環(huán),并給出每個密鑰的標識ID,i=1,2,…m;
②利用Hash函數(shù)建立節(jié)點身份與密鑰標識之間的關(guān)系。對于節(jié)點Sid來說,輸入節(jié)點id以及第i個密鑰的標識IDiid,將Hash函數(shù)的輸出作為第i個密鑰新的標識,重復(fù)執(zhí)行m次得到該節(jié)點一個新的密鑰標識集合,通過這一步使得密鑰中心產(chǎn)生的密鑰標識與所配置的節(jié)點身份聯(lián)系了起來,將重新得到的密鑰和密鑰標識集載入節(jié)點的內(nèi)存中。
③按照與②中相同的規(guī)則,將基站的身份id與每個節(jié)點的密鑰建立聯(lián)系,得出基站與每個節(jié)點的共享密鑰。到此,節(jié)點密鑰的預(yù)分配已經(jīng)完成,每個節(jié)點都分配了各自的密鑰環(huán),并且完成了節(jié)點與基站的密鑰協(xié)商。
2)共享密鑰發(fā)現(xiàn)階段
每個傳感器節(jié)點廣播自己的身份標識id,對于節(jié)點i的其中一個鄰居節(jié)點j,將j的身份作為輸入求出該節(jié)點所對應(yīng)的密鑰標識集合IDj。然后將IDj與自己的密鑰標識集合比較,如果存在相同的密鑰標識,那么就以該密鑰標識對應(yīng)的密鑰作為這兩個節(jié)點之間的共享密鑰。
3)路徑密鑰建立階段
如果兩個節(jié)點沒有發(fā)現(xiàn)共享密鑰,那么需要第3個節(jié)點作為中間節(jié)點,分別與第3個節(jié)點建立安全的鏈接協(xié)商路徑密鑰,這個過程與上述兩個階段相同。
在上述算法中,每個節(jié)點都存儲一定數(shù)目的密鑰,不同的節(jié)點可能會共享密鑰,當節(jié)點被攻破時,它所存儲的密鑰將被泄露,所有其它使用這些密鑰進行的通信都將不再安全。我們可以把一部分存儲的密鑰替換為包含某種中間信息的特殊信息,這些特殊信息也可以建立安全鏈接,而且泄露后不會對其它鏈接產(chǎn)生任何不利后果,這樣可以有效地提高安全性,同時對連通度沒有太大影響。
首先為每個簇創(chuàng)建一個容量為P的密鑰池,簇內(nèi)每個節(jié)點從密鑰池里隨機選擇m個密鑰,并從這串密鑰中隨機選u個密鑰,將它們替換成特殊信息。特殊信息EK可計算如下,EKk=k(H(K′⊕IDk))其中IDk為密鑰k所對應(yīng)的ID,⊕為二進制異或,H0為哈希操作,k0為使用密鑰k進行的加密操作,節(jié)點會存儲一個各自不同的密鑰K′。由于K′對每個節(jié)點都不同,一旦某個節(jié)點被俘獲,它所擁有的K′不能被用于解密其它節(jié)點間的加密通信。當節(jié)點把某個密鑰k替換成對應(yīng)的EK后,只需存儲EK而不再存儲對應(yīng)的k以節(jié)省存儲空間,因為算法中它不需要靠k來對EK進行解密操作,每個節(jié)點通過K′,ID和H求出EK解密后的值,即H(K′⊕IDk),這個值被作為建立通信的密鑰,而另外一個節(jié)點只需擁有k,就可以通過解密EK來獲取這個通信密鑰,從而建立安全鏈接。
在通信密鑰建立過程中,每個節(jié)點都需要發(fā)現(xiàn)周圍能和其密鑰相匹配的節(jié)點。如果兩個節(jié)點擁有相同的密鑰,或者一個節(jié)點擁有密鑰,另一個節(jié)點擁有由該密鑰運算得到的EK,都可以認為兩個節(jié)點擁有相匹配的密鑰。在密鑰發(fā)現(xiàn)過程中,每個節(jié)點將自己的密鑰ID列表進行廣播,這些ID對應(yīng)自己擁有的密鑰以及EK。當廣播完成后,擁有匹配密鑰的節(jié)點就可以建立安全鏈接了。這可以由2種方式達成,第1種,如果雙方都擁有密鑰k,他們可以使用k作為通信密鑰來建立安全鏈接。第2種,如果一方擁有密鑰k,另一方擁有對應(yīng)的EK,那么它們也能建立安全鏈接,所使用的密鑰雙方可以按如下步驟計算,對于擁有EK的一方,它計算如下kreal=H(K′⊕IDk)。對于擁有k的一方,它首先接受另一方傳輸過來的EK,然后計算kreal=Dk(EKk),其中Dk()為使用k來進行的解密操作。當雙方都擁有了相同的密鑰K′后,可以用它來加密通信。由于每個節(jié)點的K′都不一樣,每個密鑰的ID也不相同,所以每個K′只在兩個節(jié)點之間共享,即使它被泄露了也不會影響其它節(jié)點間的通信。哈希函數(shù)H用于保護密鑰信息,如果攻擊者已經(jīng)獲取了密鑰k,以及某個節(jié)點對應(yīng)密鑰k的EK,攻擊者也無法解密EK來獲取這個節(jié)點的K′信息,這樣也就無法計算出這個節(jié)點跟另外節(jié)點通信所使用的kreal。
1)連通性連通性代表網(wǎng)絡(luò)安全連通的能力。即節(jié)點在可通訊的范圍內(nèi),建立安全鏈接的概率。
2)抗攻擊性抗攻擊性指網(wǎng)絡(luò)在某些節(jié)點被攻破的情況下仍能保持通信安全的能力。
4.2.1 抗攻擊性
當傳感器網(wǎng)絡(luò)節(jié)點選擇替換特殊信息的u個密鑰占節(jié)點密鑰m的比例r不同時,將會產(chǎn)生不同的安全性。在算法中給定一個t,它能在網(wǎng)絡(luò)部署之前計算出來,r的取值在t的兩邊可以采取兩種不同的密鑰串選擇方法,來使安全性能得到最優(yōu)化。如果P代表密鑰的容量大小,m代表傳感器節(jié)點能容納的密鑰數(shù)目,n代表無線傳感器網(wǎng)絡(luò)所有節(jié)點的數(shù)目,則m(1-r)n<=p表示整個無線傳感器網(wǎng)絡(luò)中被直接存儲的密鑰數(shù)目小于密鑰池大小。如果讓每個節(jié)點都存儲不一樣的密鑰,一旦這些節(jié)點被攻破,它們所泄露的密鑰對其它節(jié)點的鏈接不會造成任何威脅,這樣整個網(wǎng)絡(luò)的抗攻擊性一直會保持最大值1。當r等于t時上述不等式取等在算法中,一個節(jié)點會存儲直接密鑰以及另一些密鑰的間接信息,數(shù)目分別是m(1-r)以及mr。如果它被攻破了,m(1-r)個密鑰將被泄露,而以及密鑰間接信息對攻擊者而言沒有任何價值。當S個節(jié)點被攻破時仍能保持安全的概率可計算如由上述分析可知,當0≤r<t時被攻破的節(jié)點數(shù)目越多那已建立的安全鏈接越不安全,當t≤r≤1時被攻破的節(jié)點不會對其它的鏈接產(chǎn)生影響,此時安全性能達到最大值。
4.2.2 連通性
如果P表示密鑰池的大小,兩個節(jié)點分別存儲K1和K2個密鑰,不存儲特殊信息,那么這兩個節(jié)點能建立安全鏈接點存儲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時,任意兩個節(jié)點都不會共享密鑰,它們依靠間接密鑰信息來建立鏈接,連通性為pn=1-(1-p(P,mr,m(1-r)))2。
4.2.3 r對性能的影響
r為可變參數(shù),不同的值會導(dǎo)致不同的安全性。一般來說,給定P和m,增加r會導(dǎo)致更好的抗攻擊性,但會降低連通性。由于連通性和抗攻擊性在我們改變r后都會發(fā)生改變,因此可以通過固定某一個性能指標值來觀察另一個性能指標的變化來判斷綜合性能的變化情況。此處固定m,通過調(diào)節(jié)P來使連通性保持同一個值。當0≤r<t時,r與安全性能的關(guān)系如圖2所示。其中連通性取值0.4,每個節(jié)點存儲能力為200。從圖2中我們知道與KPD算法相比,算法改善了安全性能。
圖2 抗攻擊性(0≤r<t)Fig.2Performance of anti-attack(0≤r<t)
當t≤r<1時節(jié)點被攻破并不會泄露任何密鑰,網(wǎng)絡(luò)的抗攻擊性能為最好。圖3為與KPD算法的性能比較結(jié)果,其中網(wǎng)絡(luò)規(guī)模分簇規(guī)模為500個節(jié)點,m為100,P為500,r為0.99,連通性為0.4。
圖3 抗攻擊性(t≤r<1)Fig.3Performance of anti-attack(t≤r<1)
由上述性能分析知,算法較其它算法在安全性上有所提高。不同的網(wǎng)絡(luò)規(guī)模,密鑰存儲數(shù),密鑰池大小,r等參數(shù)均會導(dǎo)致不同的安全性能,可以根據(jù)實際情況選擇適當?shù)膮?shù)。
本文提出了一個基于分簇的有效無線傳感器網(wǎng)絡(luò)密鑰管理方案。在不降低連通性的同時提高了安全性。在未來,可以探索采用怎樣的分簇算法以及分簇的大小來提高性能,同時也可以研究11這個算法與其它算法一起使用的適用性,從而開發(fā)出一個基于這個算法的分組框架算法。
[1]王睿,韓芳溪,張曉麗.無線傳感器網(wǎng)絡(luò)密鑰預(yù)分配與動態(tài)分配策略[J].計算機工程與應(yīng)用,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]章靜,許力,黃榕寧.自組網(wǎng)中可信的分簇策略[C]//第二屆可信計算與信息安全學(xué)術(shù)會議論文文集,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]楊庚,王江濤,程宏兵,等.基于身份加密的無線傳感器網(wǎng)絡(luò)密鑰分配方法[J].電子學(xué)報,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.