許 勇,劉 芬
安徽師范大學(xué) 數(shù)學(xué)計(jì)算機(jī)科學(xué)學(xué)院,安徽 蕪湖 241000
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)作為物聯(lián)網(wǎng)的重要組成部分,在環(huán)境監(jiān)測、醫(yī)療衛(wèi)生、智能家居、國防軍事等領(lǐng)域具有廣闊的應(yīng)用前景。根據(jù)感知能力、計(jì)算能力、通信能力和能量等的不同,WSNs可分為同構(gòu)傳感網(wǎng)和異構(gòu)傳感網(wǎng)(Heterogeneous Wireless Sensor Networks,HWSNs)兩種類型。早期對(duì)WSNs的研究,一般均集中于同構(gòu)傳感網(wǎng),節(jié)點(diǎn)類型相對(duì)比較單一。隨著WSNs應(yīng)用的不斷擴(kuò)展,出現(xiàn)了對(duì)異構(gòu)節(jié)點(diǎn)的組網(wǎng)需求,HWSNs隨之出現(xiàn)。HWSNs由多種不同類型的傳感器節(jié)點(diǎn)構(gòu)成,其節(jié)點(diǎn)的異構(gòu)性主要表現(xiàn)在節(jié)點(diǎn)計(jì)算能力、節(jié)點(diǎn)能量、鏈路和網(wǎng)絡(luò)協(xié)議等的多樣性和差異性,近年來得到了廣泛研究。
HWSNs中的節(jié)點(diǎn)通常部署于無人值守和極易受到威脅的環(huán)境,通過自組織方式采集、監(jiān)控管理區(qū)域的信息,并將感知數(shù)據(jù)在無線信道上通過多跳方式發(fā)送到基站。這種多跳的通信方式容易受到中間人(Man-in-Middle,MIM)攻擊。中間人截獲無線信道上的數(shù)據(jù),竊取或篡改通信內(nèi)容,極大影響了HWSNs的數(shù)據(jù)通信安全。因此研究和解決HWSNs中的MIM攻擊問題,對(duì)于HWSNs的大規(guī)模應(yīng)用具有重要意義。
與傳統(tǒng)網(wǎng)絡(luò)安全相似,HWSNs的安全性基于密鑰的安全保護(hù)上,如何設(shè)計(jì)和實(shí)現(xiàn)避免MIM攻擊的密鑰管理方案是其中的熱點(diǎn)。目前,WSNs中避免MIM攻擊的密鑰管理方案主要可分為兩類:一類是在ECC中隱藏基點(diǎn),另一類是通過使用數(shù)字簽名和公鑰證書對(duì)通信的參與方進(jìn)行認(rèn)證。
傳統(tǒng)的避免MIM攻擊的WSNs密鑰管理方案大多基于同構(gòu)傳感網(wǎng)。文獻(xiàn)[1]提出了兩種隱藏基點(diǎn)避免MIM攻擊的方案:第一種方案采用了認(rèn)證中心(CA),該方案容易實(shí)現(xiàn)且計(jì)算開銷較小,但當(dāng)CA的相關(guān)信息被捕獲時(shí),整個(gè)網(wǎng)絡(luò)的安全將受到威脅,不適用于部署在戶外的HWSNs,第二種方案對(duì)ECC密鑰互換算法(Elliptic Curve Diffie-Hellman,ECDH)進(jìn)行了改進(jìn),發(fā)送方和接收方選取不同的基點(diǎn),每一次報(bào)文交換必須重新計(jì)算公鑰和私鑰,計(jì)算開銷較大。文獻(xiàn)[2]通過多次握手過程達(dá)到隱藏基點(diǎn)的目的,進(jìn)而避免了MIM攻擊,共享密鑰在每一次會(huì)話結(jié)束后才需重新計(jì)算,減少了計(jì)算開銷,但不適用于能量分布不均勻的HWSNs。
對(duì)于HWSNs,文獻(xiàn)[3]提出的混合加密技術(shù)采用分段加密,基站與簇頭采用非對(duì)稱密鑰加密,簇內(nèi)部節(jié)點(diǎn)之間采用對(duì)稱密鑰加密,可避免MIM攻擊。但由于基站與每個(gè)簇頭之間都是非對(duì)稱密鑰加密,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,密鑰協(xié)商所需的計(jì)算、存儲(chǔ)和通信開銷都會(huì)隨之增大,因此網(wǎng)絡(luò)可擴(kuò)展性較差。文獻(xiàn)[4]基于證書密碼體制(Certificate-Based Cryptographic Primitives,CBC)提出一種使用ECC與對(duì)稱密鑰的混合密鑰管理方案來解決異構(gòu)節(jié)點(diǎn)之間的公鑰認(rèn)證問題,鏈路密鑰的開銷主要集中在FFD(Full-Functional Device)節(jié)點(diǎn),減輕了RFD(Reduced-Functional Device)節(jié)點(diǎn)的負(fù)擔(dān),可避免MIM攻擊,但無法在任意兩個(gè)同構(gòu)節(jié)點(diǎn)之間建立鏈路密鑰。文獻(xiàn)[5]對(duì)文獻(xiàn)[4]進(jìn)行了改進(jìn),允許任意兩個(gè)同構(gòu)節(jié)點(diǎn)之間建立鏈路密鑰,但計(jì)算和通信開銷過大,增加了節(jié)點(diǎn)和網(wǎng)絡(luò)的負(fù)載。文獻(xiàn)[6]提出一種基于身份密碼體制(IBC)的密鑰預(yù)分配方案,將BilinearPairing技術(shù)與地理信息相結(jié)合,該方案具有較好的安全性能,網(wǎng)絡(luò)中節(jié)點(diǎn)被捕獲時(shí)不會(huì)暴露其他節(jié)點(diǎn)的信息,但在節(jié)點(diǎn)中預(yù)分配的主密鑰暴露后,整個(gè)網(wǎng)絡(luò)的安全都會(huì)受到威脅,且節(jié)點(diǎn)位置固定,不適用于動(dòng)態(tài)HWSNs。
本文針對(duì)以上方案的不足提出一種混合密鑰管理方案NHKM。在NHKM方案中,基站與SINK節(jié)點(diǎn)之間采用基于ECC的非對(duì)稱密鑰管理方案,通過使用證書和不重?cái)?shù)簽名實(shí)現(xiàn)對(duì)節(jié)點(diǎn)公鑰的認(rèn)證;在普通傳感器節(jié)點(diǎn)與簇頭節(jié)點(diǎn),以及簇頭節(jié)點(diǎn)與SINK節(jié)點(diǎn)之間使用的是對(duì)稱密鑰管理方案,采用此種設(shè)計(jì)可避免MIM攻擊,在資源開銷、網(wǎng)絡(luò)連通性、可擴(kuò)展性和抗毀性上均有較好的表現(xiàn)。
NHKM方案在文獻(xiàn)[1-2]的基礎(chǔ)上,通過使用證書和不重?cái)?shù)簽名實(shí)現(xiàn)對(duì)SINK節(jié)點(diǎn)與基站之間公鑰的認(rèn)證;在文獻(xiàn)[3]的基礎(chǔ)上,在簇頭與基站之間加入SINK節(jié)點(diǎn),避免了簇頭與基站之間的大量非對(duì)稱加密處理,既保證了安全性,又增加了網(wǎng)絡(luò)的可擴(kuò)展性。
本文基于層次型傳感器網(wǎng)絡(luò)模型,由少量資源豐富的高資源節(jié)點(diǎn)和大量資源受限的普通傳感器節(jié)點(diǎn)組成。高資源節(jié)點(diǎn)作為SINK節(jié)點(diǎn),根據(jù)地理位置的遠(yuǎn)近,普通傳感器節(jié)點(diǎn)(SN)被劃分為許多簇(物理位置上鄰近的節(jié)點(diǎn)為一個(gè)簇),幾個(gè)相鄰簇和同一個(gè)SINK節(jié)點(diǎn)相連構(gòu)成一個(gè)域,SINK節(jié)點(diǎn)和基站(BS)采用無線連接。其中BS是一種功能強(qiáng)大的網(wǎng)絡(luò)設(shè)備,負(fù)責(zé)管理整個(gè)網(wǎng)絡(luò),SINK節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)收集和數(shù)據(jù)融合,SN節(jié)點(diǎn)負(fù)責(zé)采集監(jiān)測區(qū)域中的信息。一種網(wǎng)絡(luò)模型如圖1所示,網(wǎng)絡(luò)擁有2個(gè)SINK節(jié)點(diǎn),每個(gè)SINK節(jié)點(diǎn)連接3個(gè)簇,分別為(C1,C2,C3),(C4,C5,C6)。分簇算法采用文獻(xiàn)[7]中改進(jìn)的LEACH協(xié)議,在簇頭選舉過程中選取若干SN節(jié)點(diǎn)作為簇頭(CH)節(jié)點(diǎn),通過成簇過程形成簇架構(gòu),如圖2、圖3所示,且在同一個(gè)域中的簇頭連接到相同的SINK節(jié)點(diǎn)。
圖1 網(wǎng)絡(luò)模型示意圖
圖2 簇架構(gòu)
圖3 簇架構(gòu)
本文網(wǎng)絡(luò)模型中,SINK節(jié)點(diǎn)與BS是靜態(tài)的,部署后不再移動(dòng)。SN節(jié)點(diǎn)是可移動(dòng)節(jié)點(diǎn),適用于一些需要移動(dòng)作業(yè)的應(yīng)用環(huán)境,如監(jiān)測水的流速與水位時(shí),SN節(jié)點(diǎn)的位置會(huì)隨著水的流動(dòng)而不斷變化。SN的移動(dòng)模型分為三種類型,即簇內(nèi)移動(dòng)、簇間移動(dòng)和域間移動(dòng)。
(1)簇內(nèi)移動(dòng)
移動(dòng)場景如圖4所示,移動(dòng)節(jié)點(diǎn)只在本簇內(nèi)部移動(dòng)并保持與CH節(jié)點(diǎn)的連通性,不改變網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。
圖4 簇內(nèi)節(jié)點(diǎn)移動(dòng)
(2)簇間移動(dòng)
移動(dòng)場景如圖5所示,移動(dòng)節(jié)點(diǎn)移動(dòng)出本簇后,便無法接收本簇發(fā)出的控制信息。當(dāng)移動(dòng)節(jié)點(diǎn)接收到其他簇發(fā)出的連接請(qǐng)求時(shí),該節(jié)點(diǎn)將作為一個(gè)新節(jié)點(diǎn)連接到該簇。節(jié)點(diǎn)進(jìn)入新簇后將發(fā)送一個(gè)加入確認(rèn)(hello包)給該簇的CH節(jié)點(diǎn),CH節(jié)點(diǎn)經(jīng)過安全機(jī)制確認(rèn)后分配給該節(jié)點(diǎn)一個(gè)本簇的配置信息。
圖5 簇間節(jié)點(diǎn)移動(dòng)
(3)域間移動(dòng)
移動(dòng)場景如圖6所示,移動(dòng)節(jié)點(diǎn)從一個(gè)域移動(dòng)到另一個(gè)域,并加入新域中的簇。
圖6 域間節(jié)點(diǎn)移動(dòng)
根據(jù)網(wǎng)絡(luò)所需安全級(jí)別,選取相應(yīng)的橢圓曲線參數(shù)a、b和 p,確定一個(gè)唯一的橢圓曲線Ep(a,b):y2=x3+ax+b(mod p),x,y∈Fp,Fp是有限閾。對(duì)于一個(gè)擁有n個(gè)節(jié)點(diǎn)的HWSNs,p為質(zhì)數(shù)且滿足 p>n,a、b為滿足且小于 p的非負(fù)整數(shù)。
BS使用橢圓曲線加密(ECC)方法[8],為每一個(gè)SINK節(jié)點(diǎn)產(chǎn)生配對(duì)的公鑰和私鑰。在網(wǎng)絡(luò)部署前,BS將相應(yīng)節(jié)點(diǎn)的公鑰、私鑰通過安全接口預(yù)先載入節(jié)點(diǎn)中。
BS負(fù)責(zé)為每一個(gè)SINK節(jié)點(diǎn)產(chǎn)生唯一的證書,證書中包含節(jié)點(diǎn)公鑰、節(jié)點(diǎn)ID以及證書有效期等信息,在網(wǎng)絡(luò)部署前通過安全接口預(yù)先載入SINK節(jié)點(diǎn)中。
生成證書的算法簡單描述如下:
Algorithm generate Certificate(){
do{
SINK節(jié)點(diǎn)請(qǐng)求證書;
If它是有效節(jié)點(diǎn)then
BS生成此SINK節(jié)點(diǎn)的證書;
}while(sum(已獲得證書的SINK節(jié)點(diǎn))<sum(SINK節(jié)點(diǎn)));
}
節(jié)點(diǎn)獲得證書的算法簡單描述如下:
Algorithm get Certificate() {
SINK節(jié)點(diǎn)請(qǐng)求證書;
If它是有效節(jié)點(diǎn)then
BS授予證書給此SINK節(jié)點(diǎn);
}
本文采用文獻(xiàn)[9]提出的確定性不重?cái)?shù)產(chǎn)生器,算法如圖7所示。
圖7 不重?cái)?shù)產(chǎn)生器示意圖
不重?cái)?shù)序列{}εn可由 εn+1=λεnmod p獲得,式中三個(gè)參數(shù) λ、p、ε0都為整數(shù)且滿足 0<λ<p,0≤ε0<p。BS與SINK各自產(chǎn)生不重?cái)?shù)序列,用作公鑰認(rèn)證。
HWSNs易遭受MIM攻擊[10-11],采用傳統(tǒng)的密鑰互換算法ECDH,無法解決該問題。在MIM攻擊中,中間人通過冒充通信雙方的公鑰進(jìn)而達(dá)到竊取信息的目的,由此可見公鑰的認(rèn)證是一個(gè)非常重要的問題。在NHKM方案中,SINK節(jié)點(diǎn)與BS是高資源節(jié)點(diǎn),具有不受資源限制的特性,但雙方的通信是不安全的,故采用基于證書的公鑰認(rèn)證過程,如圖8所示。
圖8 公鑰認(rèn)證過程示意圖
公鑰認(rèn)證過程,采用的是雙向認(rèn)證方式。BS通過ECC方式為每一個(gè)SINK節(jié)點(diǎn)產(chǎn)生配對(duì)的公鑰和私鑰,并且產(chǎn)生唯一的證書。在網(wǎng)絡(luò)部署前,BS將相應(yīng)節(jié)點(diǎn)的公鑰、私鑰和證書通過安全接口預(yù)先載入節(jié)點(diǎn)中。網(wǎng)絡(luò)部署后,通過對(duì)不重?cái)?shù)(nonce)進(jìn)行簽名來鑒別通信雙方的身份。
SINK想與BS通信,將自己的證書用簇密鑰K(簇密鑰K滿足K∈Fp,K為網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)共享的密鑰)加密處理后發(fā)送給BS,BS收到來自SINK的證書后,對(duì)此證書用簇密鑰K進(jìn)行解密,并選擇一個(gè)不重?cái)?shù)RBS發(fā)送給SINK,SINK收到RBS后用自己的私鑰SKSINK對(duì)不重?cái)?shù)RBS進(jìn)行簽名發(fā)回給BS。BS用SINK的公鑰PKSINK核實(shí)簽名,如能得出自己原來發(fā)送的不重?cái)?shù)RBS,就核實(shí)了和自己通信的對(duì)方的確是SINK。同樣,BS將自己的證書用簇密鑰K進(jìn)行加密處理發(fā)送給此SINK,SINK收到BS的證書后,對(duì)此證書用簇密鑰K進(jìn)行解密,并選擇一個(gè)不重?cái)?shù)RSINK發(fā)送給BS,BS用自己的私鑰SKBS對(duì)不重?cái)?shù)RSINK進(jìn)行簽名發(fā)送給SINK。SINK用BS的公鑰PKBS核實(shí)簽名,如能得出自己原來發(fā)送的不重?cái)?shù)RSINK,便核實(shí)了與自己通信的對(duì)方的確是BS。公鑰認(rèn)證過程實(shí)現(xiàn)了節(jié)點(diǎn)公鑰與節(jié)點(diǎn)身份的綁定,較好地避免了MIM攻擊。
SINK節(jié)點(diǎn)與BS之間采用的是非對(duì)稱加密,會(huì)話密鑰建立過程如圖9所示。
圖9 SINK與BS之間會(huì)話密鑰的建立
通過公鑰認(rèn)證后,雙方分別獲得了對(duì)方的公鑰。SINK計(jì)算:
BS計(jì)算:
KBS-SINK=SKBSPKSINK=SKSINKSKBSP
KSINK-BS或KBS-SINK為SINK與BS進(jìn)行通信的會(huì)話密鑰。
SN節(jié)點(diǎn)與簇頭(CH)節(jié)點(diǎn),CH節(jié)點(diǎn)與SINK節(jié)點(diǎn)之間采用的是對(duì)稱加密,在橢圓曲線上選取若干點(diǎn)作為每個(gè)節(jié)點(diǎn)的種子密鑰。密鑰分配采用協(xié)商方式[12],過程如圖10、圖11所示。
圖10 SN與CH之間會(huì)話密鑰的建立
圖11 CH與SINK之間會(huì)話密鑰的建立
SN和CH之間會(huì)話密鑰的建立:
CH和SINK之間會(huì)話密鑰的建立:
其中“+”表示ECC中點(diǎn)的加法,(x,y)CH-SINK或者(x,y)SINK-CH表示SINK節(jié)點(diǎn)和CH節(jié)點(diǎn)之間的會(huì)話密鑰,(x,y)SN-CH或者(x,y)CH-SN表示CH節(jié)點(diǎn)和SN節(jié)點(diǎn)之間的會(huì)話密鑰,當(dāng)兩個(gè)節(jié)點(diǎn)進(jìn)行通信時(shí)用會(huì)話密鑰對(duì)消息進(jìn)行加密處理。簇密鑰K滿足K∈Fp,且(K,y(K))是橢圓曲線Ep(a,b)上一點(diǎn),K為網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)共享的密鑰,作用是在會(huì)話密鑰建立階段對(duì)消息進(jìn)行加密處理,在會(huì)話密鑰更新階段實(shí)現(xiàn)對(duì)密鑰的實(shí)時(shí)更新。K的分配使用了改進(jìn)的GKMP方案,其產(chǎn)生和更新過程如下:BS作為網(wǎng)絡(luò)管理者負(fù)責(zé)K的分發(fā)和更新操作,對(duì)于有N個(gè)SINK節(jié)點(diǎn)的HWSNs,BS擁有N+1個(gè)密鑰,其中有一個(gè)是K,另外N個(gè)是BS與各個(gè)SINK節(jié)點(diǎn)共享的私有密鑰KSINK-BS(用于加密BS與各SINK的個(gè)別通信)。
對(duì)稱密鑰管理方案相對(duì)于非對(duì)稱密鑰管理方案消耗的能量較低,但安全性能較差[13],為了保證前向和后向安全性,節(jié)點(diǎn)移動(dòng)時(shí)必須更新會(huì)話密鑰[14],以避免遭受MIM攻擊??赏ㄟ^更新簇密鑰K來實(shí)現(xiàn)SN節(jié)點(diǎn)與CH節(jié)點(diǎn),CH節(jié)點(diǎn)與SINK節(jié)點(diǎn)之間的密鑰更新。
當(dāng)節(jié)點(diǎn)在簇間移動(dòng)時(shí)(如3.2節(jié)圖5所示),在同一個(gè)域,簇C1內(nèi)的節(jié)點(diǎn)移動(dòng)到簇C2,BS更新本域內(nèi)的簇密鑰,實(shí)現(xiàn)域內(nèi)節(jié)點(diǎn)之間會(huì)話密鑰的更新。密鑰更新報(bào)文如下({}xk表示用密鑰k對(duì)x進(jìn)行加密):
當(dāng)節(jié)點(diǎn)在域間移動(dòng)時(shí)(如3.2節(jié)圖6所示),節(jié)點(diǎn)從一個(gè)域移動(dòng)到另一個(gè)域,BS更新兩個(gè)域中的簇密鑰,實(shí)現(xiàn)節(jié)點(diǎn)之間會(huì)話密鑰的更新。密鑰更新報(bào)文如下:
HWSNs中節(jié)點(diǎn)之間采用多跳方式進(jìn)行數(shù)據(jù)傳輸,如圖12所示。
圖12 節(jié)點(diǎn)通信過程
NHKM方案采用逐跳加密機(jī)制[15],過程如下:
(1)SN節(jié)點(diǎn)和CH節(jié)點(diǎn)之間的通信
SN節(jié)點(diǎn)將收集到的感知數(shù)據(jù)M進(jìn)行加密得到密文E(x,y)CH-SN(M),發(fā)送給CH節(jié)點(diǎn)。CH節(jié)點(diǎn)對(duì)收到的密文數(shù)據(jù)進(jìn)行解密得到明文M。CH節(jié)點(diǎn)收到本簇內(nèi)所有SN節(jié)點(diǎn)的數(shù)據(jù)為Mi||…||Mj。
(2)CH節(jié)點(diǎn)與SINK節(jié)點(diǎn)之間的通信
(3)SINK節(jié)點(diǎn)與BS之間的通信
NHKM方案的計(jì)算開銷主要是種子密鑰和簇密鑰的點(diǎn)加操作以及SINK節(jié)點(diǎn)與BS建立會(huì)話密鑰時(shí)點(diǎn)的數(shù)乘操作,適合于HWSNs節(jié)點(diǎn)計(jì)算能力有限的特點(diǎn)。通信開銷主要集中于會(huì)話密鑰建立階段握手過程的通信開銷以及密鑰更新階段節(jié)點(diǎn)的多播通信開銷,網(wǎng)絡(luò)中所有節(jié)點(diǎn)的通信開銷均為O(1)。存儲(chǔ)開銷主要是節(jié)點(diǎn)存儲(chǔ)密鑰的開銷,BS的存儲(chǔ)開銷為O(n),其余節(jié)點(diǎn)的存儲(chǔ)開銷均為O(1),且節(jié)點(diǎn)初始種子密鑰為橢圓曲線上一點(diǎn)(x,y),通過握手方式建立的會(huì)話密鑰仍然是橢圓曲線上一點(diǎn),降低了存儲(chǔ)開銷。SINK節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)收集和數(shù)據(jù)融合,是攻擊者攻擊的主要對(duì)象,通過SINK節(jié)點(diǎn)與BS之間的公鑰認(rèn)證較好地避免了MIM攻擊。NHKM方案是基于層次型傳感器網(wǎng)絡(luò)模型,具有較好的網(wǎng)絡(luò)可擴(kuò)展性。表1通過計(jì)算開銷、通信開銷、存儲(chǔ)開銷、安全性以及網(wǎng)絡(luò)的可擴(kuò)展性等性能指標(biāo)對(duì)NHKM方案與一些典型的密鑰管理方案進(jìn)行了對(duì)比分析,可看出NHKM方案具有較少的資源開銷,且安全性和可擴(kuò)展性較好。
本文采用NS-2進(jìn)行仿真,傳感器節(jié)點(diǎn)部署在1 000 m×1 000 m的網(wǎng)絡(luò)區(qū)域中,路由協(xié)議采用改進(jìn)的LEACH協(xié)議,MAC層協(xié)議為IEEE 802.15.4,仿真參數(shù)如表2所示。對(duì)q-Composite、ECDH、HKM在網(wǎng)絡(luò)連通性、資源開銷、網(wǎng)絡(luò)可擴(kuò)展性和抗毀性上進(jìn)行對(duì)比實(shí)驗(yàn)。
(1)網(wǎng)絡(luò)連通性
網(wǎng)絡(luò)連通性是指在隨機(jī)圖G(Q,p)中相鄰節(jié)點(diǎn)間建立安全鏈路的概率[16]。Q為全網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù),p為建立安全鏈路的概率值。如果每個(gè)節(jié)點(diǎn)與足夠的鄰居節(jié)點(diǎn)共享通信密鑰,則G(Q,p)可構(gòu)成全連通圖。
圖13反應(yīng)了在四種方案下,網(wǎng)絡(luò)連通性與鄰居節(jié)點(diǎn)數(shù)之間的關(guān)系。從圖中可以看出q-Composite方案的網(wǎng)絡(luò)連通性隨著鄰居節(jié)點(diǎn)數(shù)的增加呈現(xiàn)增長趨勢,而ECDH方案、HKM方案、NHKM方案的網(wǎng)絡(luò)連通性近似等于1。由此可見,q-Composite方案是一種基于概率的模型,并不能保證所有節(jié)點(diǎn)都能找到彼此的會(huì)話密鑰,因此連通性受到一定限制,其密鑰連通概率為:
表1 密鑰管理方案的性能比較
表2 仿真參數(shù)
圖13 網(wǎng)絡(luò)連通性
其中,S為密鑰池;m為選取的密鑰個(gè)數(shù);q為共享密鑰閾值。在密鑰路徑建立階段,有些節(jié)點(diǎn)通過共享密鑰發(fā)現(xiàn)階段發(fā)現(xiàn)和鄰居節(jié)點(diǎn)沒有共同的密鑰標(biāo)識(shí)符。這種情況下可利用該節(jié)點(diǎn)的其他鄰居節(jié)點(diǎn)來進(jìn)行密鑰路徑的建立,從而可以建立安全連接,因此隨著鄰居節(jié)點(diǎn)數(shù)的增加,網(wǎng)絡(luò)連通性增加。在NHKM方案中運(yùn)用了阿貝爾(Abel)加法群的性質(zhì),在會(huì)話密鑰建立階段通過握手方式,建立了SN節(jié)點(diǎn)與CH節(jié)點(diǎn)、CH節(jié)點(diǎn)與SINK節(jié)點(diǎn)、SINK節(jié)點(diǎn)與BS之間的會(huì)話密鑰,故網(wǎng)絡(luò)連通性近似等于1。
(2)資源開銷
網(wǎng)絡(luò)的資源開銷主要包括計(jì)算開銷、通信開銷和存儲(chǔ)開銷[17-18]。網(wǎng)絡(luò)中節(jié)點(diǎn)資源開銷過大會(huì)導(dǎo)致節(jié)點(diǎn)壽命縮短。
初始時(shí)網(wǎng)絡(luò)中有100個(gè)節(jié)點(diǎn),圖14反應(yīng)了在四種方案下,節(jié)點(diǎn)存活個(gè)數(shù)與仿真時(shí)間的關(guān)系。從圖中可以看出在0~320 s四種方案都沒有出現(xiàn)節(jié)點(diǎn)死亡。ECDH方案、q-Composite方案、HKM方案、NHKM方案出現(xiàn)第一個(gè)節(jié)點(diǎn)死亡的時(shí)間分別為320~330 s、330~340 s、350~360 s、420~430 s。結(jié)果表明NHKM方案出現(xiàn)第一個(gè)節(jié)點(diǎn)死亡的時(shí)間晚于其他方案,驗(yàn)證了該方案中節(jié)點(diǎn)的低資源開銷的特性。網(wǎng)絡(luò)能量耗盡的時(shí)間分別為450 s、470 s、500 s以后、500 s以后,且在500 s時(shí)NHKM方案與HKM方案存活節(jié)點(diǎn)個(gè)數(shù)的差值達(dá)到20%。可以看出NHKM方案相對(duì)于其他方案網(wǎng)絡(luò)壽命較長,驗(yàn)證了NHKM方案的資源開銷主要集中于高資源節(jié)點(diǎn),且在低資源節(jié)點(diǎn)之間實(shí)現(xiàn)了負(fù)載均衡。
圖14 節(jié)點(diǎn)存活個(gè)數(shù)
(3)網(wǎng)絡(luò)可擴(kuò)展性
HWSNs的節(jié)點(diǎn)規(guī)模少則十幾個(gè)或幾十個(gè),多則成千上萬。隨著規(guī)模的擴(kuò)大,密鑰協(xié)商所需的計(jì)算、存儲(chǔ)和通信開銷都會(huì)隨之增大,密鑰管理方案必須能夠適應(yīng)不同規(guī)模的HWSNs。
圖15反映了在不同網(wǎng)絡(luò)規(guī)模下,使用四種方案網(wǎng)絡(luò)中的總數(shù)據(jù)量。從仿真結(jié)果可以看出,NHKM方案相對(duì)于q-Composite方案、ECDH方案、HKM方案,當(dāng)網(wǎng)絡(luò)中有100個(gè)節(jié)點(diǎn)時(shí),同比增長率分別為336.79%、187.36%、87.63%;當(dāng)網(wǎng)絡(luò)中有200個(gè)節(jié)點(diǎn)時(shí),同比增長率分別為193.25%、104.04%、57.50%;當(dāng)網(wǎng)絡(luò)中有300個(gè)節(jié)點(diǎn)時(shí),同比增長率分別為90.38%、37.25%、25.52%;當(dāng)網(wǎng)絡(luò)中有400個(gè)節(jié)點(diǎn)時(shí),同比增長率分別為30.66%、19.30%、13.58%;當(dāng)網(wǎng)絡(luò)中有500個(gè)節(jié)點(diǎn)時(shí),同比增長率分別為42.83%、39.39%、29.95%。結(jié)果表明在不同的網(wǎng)絡(luò)規(guī)模下使用NHKM方案,網(wǎng)絡(luò)中節(jié)點(diǎn)發(fā)送且被成功接收的總數(shù)據(jù)量(最終BS收到的數(shù)據(jù)量)都高于其他方案,即比其他方案具有更好的可擴(kuò)展性,體現(xiàn)了基于ECC與對(duì)稱密碼體制的混合密鑰管理方案NHKM能夠適應(yīng)不同規(guī)模網(wǎng)絡(luò)的特性。
圖15 網(wǎng)絡(luò)總數(shù)據(jù)量
(4)抗毀性
可通過抗毀性評(píng)估密鑰管理方案的安全性能,抗毀性是指兩個(gè)未被捕獲的節(jié)點(diǎn)間,會(huì)話密鑰被暴露的概率[19]。密鑰被暴露的概率越小,則意味著抗毀性就越好。q-Composite方案的抗毀性為:
其中,S為密鑰池;m為選取的密鑰個(gè)數(shù);q為共享密鑰閾值。ECDH方案的抗毀性與基點(diǎn)的選取有關(guān),HKM方案與NHKM方案的抗毀性近似為0。
在網(wǎng)絡(luò)中放置3個(gè)惡意節(jié)點(diǎn),分別使用四種方案抵御惡意節(jié)點(diǎn)的MIM攻擊,圖16反映了仿真時(shí)間與入侵的惡意節(jié)點(diǎn)數(shù)之間的關(guān)系。從圖中可以看出四種方案下,在 0~100 s,網(wǎng)絡(luò)是安全的;在 100~200 s,使用 q-Composite方案的網(wǎng)絡(luò)受到1個(gè)惡意節(jié)點(diǎn)攻擊;在200~300 s,使用q-Composite方案的網(wǎng)絡(luò)受到2個(gè)惡意節(jié)點(diǎn)攻擊,使用ECDH方案的網(wǎng)絡(luò)受到1個(gè)惡意節(jié)點(diǎn)攻擊;在300~400 s,使用q-Composite方案的網(wǎng)絡(luò)受到3個(gè)惡意節(jié)點(diǎn)攻擊,使用ECDH方案的網(wǎng)絡(luò)受到1個(gè)惡意節(jié)點(diǎn)攻擊;在400~500 s,使用q-Composite方案的網(wǎng)絡(luò)受到3個(gè)惡意節(jié)點(diǎn)攻擊,使用ECDH方案的網(wǎng)絡(luò)受到2個(gè)惡意節(jié)點(diǎn)攻擊,使用HKM方案的網(wǎng)絡(luò)受到1個(gè)惡意節(jié)點(diǎn)攻擊;在0~500 s,NHKM方案都沒有受到惡意節(jié)點(diǎn)的攻擊。由于NHKM方案通過使用證書和不重?cái)?shù)簽名實(shí)現(xiàn)對(duì)節(jié)點(diǎn)公鑰的認(rèn)證,較好地避免了MIM攻擊,與其他方案相比具有更好的抗毀性。
圖16 入侵節(jié)點(diǎn)個(gè)數(shù)
以提供安全、可靠的保密通信為目標(biāo)的密鑰管理方案和協(xié)議的設(shè)計(jì)是HWSNs安全最為重要、最為基本的研究領(lǐng)域。密鑰管理往往是在安全性和通信開銷中取得一個(gè)折衷。針對(duì)HWSNs節(jié)點(diǎn)能量不均衡且易遭受MIM攻擊的特性,本文提出了混合密鑰管理方案NHKM,在高資源節(jié)點(diǎn)之間采用基于ECC的密鑰管理方案,較好地避免了MIM攻擊,在低資源節(jié)點(diǎn)之間采用基于對(duì)稱密碼體制的密鑰管理方案,節(jié)省了節(jié)點(diǎn)的能量開銷。
HWSNs的安全研究涉及到多學(xué)科且還屬于新興研究領(lǐng)域,多SINK網(wǎng)絡(luò)環(huán)境下能量空洞問題,以及當(dāng)高資源節(jié)點(diǎn)如SINK節(jié)點(diǎn)能量耗盡時(shí)造成的密鑰分配失敗,這些問題將是下一步工作研究的重點(diǎn)。