李峰,李亞平,張志軍,解鵬,郭學(xué)讓,袁二東,祁雷
(1.國(guó)網(wǎng)新疆電力有限公司電力科學(xué)研究院,烏魯木齊830011;2.國(guó)網(wǎng)新疆電力有限公司調(diào)度控制中心,烏魯木齊830017;3.新疆大學(xué)信息科學(xué)與工程學(xué)院,烏魯木齊830046)
移動(dòng)傳感器網(wǎng)絡(luò)(Mobile wireless sensor networks,MWSNs)由于支持節(jié)點(diǎn)在有限范圍內(nèi)移動(dòng)在諸多領(lǐng)域有廣泛的應(yīng)用,比如移動(dòng)終端用戶和移動(dòng)機(jī)器人等用于環(huán)境監(jiān)測(cè)、工業(yè)過程監(jiān)測(cè)以及軍事和民用相關(guān)的應(yīng)用領(lǐng)域,而且節(jié)點(diǎn)的移動(dòng)性可以有效緩解網(wǎng)絡(luò)自身運(yùn)行過程存在的一些問題,比如:網(wǎng)絡(luò)覆蓋問題和能量空洞問題[1-3]。Zhang等[4]提出了用于無線傳感器網(wǎng)絡(luò)的節(jié)能分布式確定性密鑰管理方案,網(wǎng)絡(luò)模型既支持靜態(tài)節(jié)點(diǎn)間的會(huì)話密鑰建立,也支持移動(dòng)節(jié)點(diǎn)(Mobile node,MN)與靜態(tài)節(jié)點(diǎn)間的會(huì)話密鑰建立;所提方案中每個(gè)節(jié)點(diǎn)利用預(yù)加載的初始密鑰KI來間接獲取鄰居節(jié)點(diǎn)信息,同時(shí)將鄰居節(jié)點(diǎn)信息以鄰居表的形式進(jìn)行存儲(chǔ)。為抵御女巫攻擊和節(jié)點(diǎn)復(fù)制攻擊,文獻(xiàn)[4]方法采用一個(gè)閾值來限制任何節(jié)點(diǎn)的鄰居數(shù)量,即鄰居表中節(jié)點(diǎn)數(shù)量。當(dāng)節(jié)點(diǎn)的鄰居數(shù)量達(dá)到閾值時(shí),不能在鄰居表中添加新鄰居,該方案在某種程度上防止了入侵者發(fā)起女巫攻擊和節(jié)點(diǎn)復(fù)制攻擊,但卻限制了節(jié)點(diǎn)的移動(dòng)性,因此對(duì)移動(dòng)節(jié)點(diǎn)抵御這兩類攻擊還需進(jìn)一步改進(jìn)。Khan等[5]提出了一種移動(dòng)異構(gòu)傳感器網(wǎng)絡(luò)下的高效密鑰管理方案。該方案中節(jié)點(diǎn)在會(huì)話密鑰建立之前,通過借助消息認(rèn)證碼和數(shù)字簽名算法實(shí)現(xiàn)了MN與固定節(jié)點(diǎn)(Fixed node,F(xiàn)N)間以及MN間的身份認(rèn)證。文獻(xiàn)[5]方法具有較好的網(wǎng)絡(luò)連通性,但是安全性不足,盡管該方案也采取了抵御節(jié)點(diǎn)復(fù)制攻擊的措施,然而該措施僅適用于移動(dòng)節(jié)點(diǎn)在當(dāng)前簇移動(dòng)時(shí)的場(chǎng)景,卻無法適用于MN從當(dāng)前簇移動(dòng)到新簇的過程中存在的節(jié)點(diǎn)復(fù)制攻擊問題。Kar等[6]提出了一種基于雙線性配對(duì)的半移動(dòng)異構(gòu)無線傳感器網(wǎng)絡(luò)安全協(xié)議,該協(xié)議在節(jié)點(diǎn)間認(rèn)證通過后利用雙線性配對(duì)的思想完成通信密鑰的建立。文獻(xiàn)[6]方法增強(qiáng)了網(wǎng)絡(luò)安全性,比如抵御女巫攻擊和重放攻擊,然而不具備抵御節(jié)點(diǎn)復(fù)制攻擊的能力,同時(shí)密鑰建立過程所需耗能較多。Kesavan等[7]提出了支持節(jié)點(diǎn)移動(dòng)性的基于簇的安全動(dòng)態(tài)密鑰技術(shù)。文獻(xiàn)[7]方法在密鑰建立過程中采用雙向惡意節(jié)點(diǎn)檢測(cè)機(jī)制來增強(qiáng)網(wǎng)絡(luò)安全性,可有效抵御多種攻擊等:蟲洞攻擊、沖襲攻擊、黑洞攻擊、丟包攻擊、HELLO泛洪攻擊、DoS攻擊、選擇性轉(zhuǎn)發(fā)攻擊以及女巫攻擊等,然而同樣缺乏抵御移動(dòng)場(chǎng)景下節(jié)點(diǎn)復(fù)制攻擊的能力。徐震等[8]提出了在移動(dòng)場(chǎng)景下基于互斥基底系統(tǒng)(Exclusion basis system,EBS)的密鑰管理方法,該方法給出了密鑰的建立和更新、節(jié)點(diǎn)間通信的實(shí)現(xiàn)過程以及針對(duì)節(jié)點(diǎn)的移動(dòng)性,并給出了節(jié)點(diǎn)離開當(dāng)前簇和加入新簇的實(shí)現(xiàn)過程。文獻(xiàn)[8]方法有較高的安全連通性和抵御節(jié)點(diǎn)捕獲攻擊的能力,然而一旦攻擊者捕獲一個(gè)節(jié)點(diǎn)并復(fù)制出多個(gè)惡意節(jié)點(diǎn),這些惡意節(jié)點(diǎn)可利用方法中采用的認(rèn)證方式隨意進(jìn)入任何簇,從而對(duì)網(wǎng)絡(luò)安全造成巨大威脅。
在MWSNs面臨的諸多安全威脅中,節(jié)點(diǎn)復(fù)制攻擊顯得尤為棘手。在移動(dòng)場(chǎng)景下,如何實(shí)現(xiàn)節(jié)點(diǎn)間密鑰建立過程的有效防御節(jié)點(diǎn)復(fù)制攻擊是本文研究的重點(diǎn)。本文針對(duì)在移動(dòng)場(chǎng)景下密鑰管理方法設(shè)計(jì)中依舊存在的問題進(jìn)行改進(jìn),提出了移動(dòng)場(chǎng)景下基于節(jié)點(diǎn)位置信息的異構(gòu)無線傳感器網(wǎng)絡(luò)密鑰管理方法。本文方法在密鑰建立過程中利用基站(Base station,BS)所收集的MN的位置信息,并結(jié)合相關(guān)信息來分析判斷MN從當(dāng)前簇移動(dòng)到新簇的過程中是否受到節(jié)點(diǎn)復(fù)制攻擊。
哈希消息認(rèn)證碼(Hash message authentication code,HMAC)的運(yùn)作是利用哈希算法以一個(gè)密鑰和消息作為輸入,以生成的消息摘要作為輸出,該消息認(rèn)證碼可以保證傳輸數(shù)據(jù)的完整性以及實(shí)現(xiàn)某個(gè)消息源的身份認(rèn)證,即有
式中:H為基于密鑰的Hash函數(shù);K為密鑰;M為消息。發(fā)送者將消息和HMACi一起發(fā)送給接收者;接收者對(duì)消息做基于密鑰的Hash操作得到新的HMACi,并將生成的新的HMACi與發(fā)送者發(fā)送的HMACi進(jìn)行對(duì)比;最后,當(dāng)兩者相同時(shí),可以確定消息是完整的,接收者通過利用相同的密鑰可以驗(yàn)證消息源的合法性。
Diffie-Hellman密鑰交換算法的安全性依賴于橢圓曲線上離散對(duì)數(shù)的難解[9],其功能在于為通信的雙方協(xié)商出會(huì)話密鑰,且協(xié)商過程不會(huì)受到中間人攻擊[10]。
控制者在有限域Fp:y2=x3+ax+b上選擇一個(gè)安全的橢圓曲線E/Fp,這里a,b∈Fp且Δ=4a3+27b2≠0。E/Fp滿足Δ=4a3+27b2≠0時(shí)為一個(gè)非奇異超橢圓曲線,其更適合于密碼應(yīng)用;由于篇幅限制,關(guān)于橢圓曲線密碼學(xué)(Eliptic curve cryptography,ECC)加密算法的部分可參考文獻(xiàn)[11]。E(Fp)由橢圓曲線上的點(diǎn)和無窮大的點(diǎn)組成,并構(gòu)成一個(gè)群G。P∈E(Fp)為G的生成元。該密鑰協(xié)商的具體過程如下(以節(jié)點(diǎn)u和v為例)。
(1)假設(shè)節(jié)點(diǎn)u和v協(xié)商出一個(gè)會(huì)話密鑰Kuv。u選擇一個(gè)隨機(jī)數(shù)Xu∈Z*q作為自身的私鑰,并計(jì)算出公鑰Yu=Xu P。u對(duì)Xu的值保密存放而Yu值可以被v公開獲得。類似地,v選擇一個(gè)隨機(jī)數(shù)Xv∈Z*q作為自身的私鑰,同時(shí)計(jì)算出公鑰Yv=Xv P。v對(duì)Xv的值保密存放而Yv值可以被u公開獲得。
(2)當(dāng)u接收到v的公鑰Yv以后,計(jì)算出會(huì)話密鑰為
(3)當(dāng)v接收到u的公鑰Yu以后,計(jì)算出會(huì)話密鑰為
(4)由于Kuv=Kvu,因此u和v協(xié)商出會(huì)話密鑰。
支持移動(dòng)性的網(wǎng)絡(luò)模型由功能強(qiáng)大的BS、少量FNs和大量的MNs組成。每個(gè)FN節(jié)點(diǎn)將充當(dāng)簇頭CH的角色。網(wǎng)絡(luò)模型假設(shè)如下:
(1)考慮到成本問題,MN沒有裝備防篡改硬件,一旦被攻擊者捕獲,那么內(nèi)部存儲(chǔ)信息將被泄露。同時(shí)MN可通過一些支持節(jié)點(diǎn)移動(dòng)性的安全位置服務(wù)[12]獲得自身的位置信息。盡管MN具有移動(dòng)性,但依然在有限的移動(dòng)范圍內(nèi)。
(2)FN相對(duì)MN來說,由于在網(wǎng)絡(luò)內(nèi)承擔(dān)更多的任務(wù),因此在存儲(chǔ)空間以及能量?jī)?chǔ)備上會(huì)更多一些,且具有防篡改硬件保護(hù)裝置。
(3)BS可信且受到保護(hù),同時(shí)具有強(qiáng)大的計(jì)算能力、寬的通信范圍以及充足的存儲(chǔ)空間和能量,因此在密鑰建立過程中其密鑰存儲(chǔ)空間占用以及計(jì)算開銷可忽略不計(jì)。
(4)在通信模式上可采用LEAP+[13]中的通信模式:?jiǎn)尾?、局部廣播和全局廣播。
圖1 為本文方法在移動(dòng)場(chǎng)景下的網(wǎng)絡(luò)模型圖。
圖1 移動(dòng)場(chǎng)景下網(wǎng)絡(luò)模型Fig.1 Network model in mobile scenarios
為更方便地對(duì)本文方法進(jìn)行描述,表1給出了對(duì)一些符號(hào)的解釋。本文方法中每個(gè)MN提前預(yù)加載{IDMNi,IDFNs,IDBS,Kpubi,Kprii};每 個(gè)FN提 前 預(yù) 加載 {IDFNj,IDBS,KFNj,KH};BS提前預(yù)加載
表1 符號(hào)和描述Table 1 Symbols and descriptions
MN與FN間在建立通信密鑰之前需要進(jìn)行安全認(rèn)證。所提方案中,F(xiàn)N首先局部廣播一個(gè)Hello消息,該Hello消息包含F(xiàn)N自身的標(biāo)識(shí)符IDFNj。網(wǎng)絡(luò)內(nèi)MN接收到多個(gè)FN的Hello消息后根據(jù)信號(hào)強(qiáng)度選擇信噪比最高的FN作為自身的CH(比如CH1)。
MN(比如u)將與該CH1完成身份認(rèn)證,u發(fā)送一個(gè)加入請(qǐng)求消息給CH1,此加入請(qǐng)求消息包含u自身的標(biāo)識(shí)IDMNu、經(jīng)Kpubu加密處理后的時(shí)間戳TMNu和位置信息lMNu(建立通信密鑰時(shí)MN為靜止?fàn)顟B(tài))以及結(jié)合Kpriu對(duì)加密處理后的時(shí)間戳TMNu和位置信息lMNu進(jìn)行哈希函數(shù)操作得到HMAC0。CH1接收到u的加入請(qǐng)求消息后,先結(jié)合自身的私鑰KFNCH1對(duì)u的加入請(qǐng)求消息進(jìn)行哈希函數(shù)操作生成HMAC1;接著利用KH對(duì)自身的時(shí)間戳TCH1進(jìn)行加密處理;最后將自身的IDCH1、自身加密處理后的時(shí)間戳、u的加入請(qǐng)求信息以及HMAC1發(fā)送給BS。
BS接收到上述信息后先利用CH1的私鑰KFNCH1來驗(yàn)證HMAC1內(nèi)數(shù)據(jù)的完整性,同時(shí)可確認(rèn)該消息來自CH1;同理,再利用u的私鑰Kpriu來驗(yàn)證HMAC0內(nèi)加密處理后的lMNu的數(shù)據(jù)完整性,同時(shí)可確認(rèn)該加密消息最初來自u(píng),完成對(duì)消息源的身份認(rèn)證;接著BS利用Kpriu解密獲得TMNu和lMNu以及利用KH解密獲得TCH1,通過驗(yàn)證TCH1和TMNu是否有效來保證消息的新鮮度以防止攻擊者發(fā)起重放攻擊(下同);最后BS將存儲(chǔ)IDMNu、lMNu和TMNu,并且通過單播的方式通知CH1將u加入自身成員列表,該通知消 息 內(nèi) 包 含IDBS、IDMNu、經(jīng)KH加 密 處 理 后 的TBS、lMNu和u的 私 鑰Kpriu。CH1隨 之 存 儲(chǔ)IDMNu、lMNu、TMNu和Kpriu。
CH1獲得u的私鑰Kpriu后,利用Kpriu加密自身的身份標(biāo)志符IDFNj后發(fā)送給u。當(dāng)u利用自身的私鑰Kpriu可實(shí)現(xiàn)解密時(shí),可確認(rèn)CH1身份的合法性。
當(dāng)CH1和u間完成身份認(rèn)證以后,兩者開始建立通信密鑰Ku1。CH1首先生成一個(gè)標(biāo)量d,接著d點(diǎn)乘E(Fp)上的生成元P得到可公開密鑰K1=d?P;同理,u生成一個(gè)標(biāo)量c,接著在E(Fp)上c點(diǎn)乘P得到可公開密鑰Ku=c?P。u與CH1分別將Ku和K1發(fā)送給對(duì)方,兩者隨之采用Diffie-Hellman密鑰交換協(xié)議建立通信密鑰Ku1=c?K1=c?d?P=d?Ku=d?c?P=K1u。
兩個(gè)MN(比如u和v)欲建立通信密鑰Kuv。u和v首先分別局部廣播自身的身份標(biāo)志符IDMNu和IDMNv;接著每個(gè)MN(例如u)將IDMNu、鄰居v的身份標(biāo)志符IDMNv、經(jīng)Ku1加密處理后的當(dāng)前時(shí)間戳TˉMNu和 新 的lˉMNu發(fā) 送 給CH1;CH1接 收 到 這 些 信 息 后 解 密 獲 得u和v新 的 位 置 信 息lˉMNu和lˉMNv以 及 時(shí) 間 戳TˉMNu和TˉMNv;最后CH1將IDCH1以及經(jīng)KH加密處理后的TCH1、TˉMNu、TˉMNv、lˉMNu和lˉMNv發(fā)送給BS。
BS分別利用u和v移動(dòng)的前后位置信息、時(shí)間戳和移動(dòng)節(jié)點(diǎn)最大速度vmax來判斷u和v是否受到節(jié)點(diǎn)復(fù)制攻擊[14]。
如果BS判斷出u和v均為合 法MN,BS將更新 存儲(chǔ)u和v的 位置信息以及時(shí) 間戳和,并告知CH1兩個(gè)節(jié)點(diǎn)合法;CH1利用偽隨機(jī)函數(shù)生成u和v間的通信密鑰Kuv,并分別利用與u和v間的通信密鑰Ku1和Kv1對(duì)Kuv和自身的時(shí)間戳TCH1進(jìn)行加密保護(hù),并通過單播的方式發(fā)送給u和v。u和v解密獲得兩者間的通信密鑰Kuv。
網(wǎng)絡(luò)內(nèi)MN由于資源限制將面臨節(jié)點(diǎn)死亡的狀況,這將導(dǎo)致CH管轄區(qū)域內(nèi)MNs數(shù)量不足而無法完成一些任務(wù)。解決辦法是向網(wǎng)絡(luò)內(nèi)添加新的MNs以及MNs通過移動(dòng)到其他FN管轄區(qū)域來解決。新的MNs添加可采用上述思想完成節(jié)點(diǎn)間的通信密鑰建立,而當(dāng)一個(gè)MN(例如u)由當(dāng)前簇頭(比如CH1)管轄區(qū)域C1移動(dòng)到下一個(gè)簇頭(比如CH2)管轄區(qū)域C2,則需要簇間節(jié)點(diǎn)認(rèn)證。當(dāng)認(rèn)證通過后,u與CH2間生成通信密鑰Ku2。u完成跨管轄區(qū)域的具體認(rèn)證過程如下:u向CH1發(fā)送離開消息,該離開消息包含IDMNu以及經(jīng)Ku1加密處理后的TMNu和lMNu;CH1利用Ku1解密獲得u離開管轄區(qū)域C1時(shí)的TMNu和lMNu。當(dāng)u移動(dòng)進(jìn)入CH2的管轄區(qū)域C2后,u向CH2發(fā)送加入請(qǐng)求消息,此加入請(qǐng)求消息包含IDMNu、IDCH1、以 及 進(jìn) 入CH2的 管 轄 區(qū) 域 與CH2待 完 成 身 份 認(rèn) 證 時(shí) 的 當(dāng) 前 的 時(shí) 間 戳,這 里和同 樣 經(jīng) 過Ku1加 密 處 理。
CH2接收到u的加入請(qǐng)求消息后,將向CH1發(fā)送請(qǐng)求驗(yàn)證消息,該請(qǐng)求驗(yàn)證消息包括IDCH2、IDMNu和 經(jīng) 過Ku1加 密 處 理CH1利 用Ku1解密獲 得u進(jìn)入管轄 區(qū) 域C2的 待完成身份 認(rèn) 證 時(shí)的
CH1將IDCH1和經(jīng)KH加密處理后的發(fā)送給BS。BS利用KH解密獲得并結(jié)合以及vmax來判斷u是否受到復(fù)制節(jié)點(diǎn)攻擊[14]。
如果判斷u為合法節(jié)點(diǎn),BS將存儲(chǔ),并且安全通知CH2將u加入自身成員列表,該通知消息內(nèi)包含IDBS、IDMNu和經(jīng)KH加密處理后的CH2隨之解密通知消息并存儲(chǔ)
u將采用上述與CH1建立通信密鑰的方式完成與CH2間的通信密鑰建立。
(1)捕獲攻擊。攻擊者通過捕獲某些節(jié)點(diǎn)來獲取一些有用信息,且利用這些有用信息獲得未被捕獲節(jié)點(diǎn)的密鑰。同時(shí)攻擊者捕獲的節(jié)點(diǎn)越多,獲得的有用信息越多,網(wǎng)絡(luò)內(nèi)未被捕獲節(jié)點(diǎn)密鑰泄露的概率越大。本文方法采用Diffie-Hellman密鑰交換協(xié)議完成通信密鑰的建立,攻擊者無法利用捕獲節(jié)點(diǎn)的信息來獲取到未捕獲節(jié)點(diǎn)的密鑰,因此本文方法可有效抵御節(jié)點(diǎn)捕獲攻擊。
(2)重放攻擊。攻擊者通過重放之前的身份驗(yàn)證代碼來誤導(dǎo)合法節(jié)點(diǎn),并將其同步到錯(cuò)誤的時(shí)間上。本文方法中移動(dòng)節(jié)點(diǎn)的轉(zhuǎn)發(fā)消息均通過加入加密處理后的時(shí)間戳來保證消息的新鮮度,因此本文方法可有效抵御攻擊者發(fā)起重放攻擊。
(3)節(jié)點(diǎn)復(fù)制攻擊。攻擊者捕獲節(jié)點(diǎn)后將其副本放置在多個(gè)地理位置用于與合法節(jié)點(diǎn)建立非法通信連接。本文方法著重考慮移動(dòng)場(chǎng)景下MN從當(dāng)前簇移動(dòng)到新簇的過程中存在的節(jié)點(diǎn)復(fù)制攻擊。本文方法在MN與FN以及MN間建立會(huì)話密鑰前采取了身份認(rèn)證;同時(shí)BS通過利用節(jié)點(diǎn)移動(dòng)前后的位置信息、時(shí)間戳和MN的最大移動(dòng)速度來分析節(jié)點(diǎn)是否受到節(jié)點(diǎn)復(fù)制攻擊。與其他方案相比,本文方法可有效抵御在移動(dòng)場(chǎng)景下攻擊者發(fā)起的節(jié)點(diǎn)復(fù)制攻擊。
(4)女巫攻擊。攻擊者將一個(gè)節(jié)點(diǎn)偽造成多重身份來誤導(dǎo)合法節(jié)點(diǎn)認(rèn)為所接收消息是來自不同節(jié)點(diǎn),通過這種方式來發(fā)起惡意攻擊。女巫攻擊的防范一般可通過基于身份認(rèn)證和基于位置驗(yàn)證的方法。攻擊者若想偽造多重MN身份來發(fā)起女巫攻擊,則必須通過身份認(rèn)證和位置驗(yàn)證。與其他方案相比,本文方法中,節(jié)點(diǎn)(MN或FN)通過利用預(yù)加載的唯一的私鑰(該私鑰僅BS可知)來實(shí)現(xiàn)節(jié)點(diǎn)安全的雙向身份認(rèn)證以及通過位置信息和時(shí)間戳來實(shí)現(xiàn)位置驗(yàn)證,因而,本文方法可有效抵御攻擊者發(fā)起女巫攻擊。
表2 給出了本文方法與文獻(xiàn)[5-6,8]中方法在安全性上的對(duì)比結(jié)果,結(jié)果表明本文方法的安全性較好。盡管文獻(xiàn)[5]方法也采取了抵御節(jié)點(diǎn)復(fù)制攻擊的措施,然而僅適用于MN在當(dāng)前簇移動(dòng)時(shí)的場(chǎng)景,無法適用于MN從當(dāng)前簇移動(dòng)到新簇的過程中存在的節(jié)點(diǎn)復(fù)制攻擊。文獻(xiàn)[6]方法在安全防護(hù)方面做得相對(duì)較好,然而依然不具備抵御節(jié)點(diǎn)復(fù)制攻擊的能力。文獻(xiàn)[8]方法僅考慮了抵御節(jié)點(diǎn)捕獲攻擊和重放攻擊,然而在移動(dòng)場(chǎng)景下對(duì)女巫攻擊和節(jié)點(diǎn)復(fù)制攻擊卻無法抵御。本文方法中MN在當(dāng)前簇移動(dòng)以及從當(dāng)前簇移動(dòng)到新簇的過程均可有效抵御節(jié)點(diǎn)復(fù)制攻擊,從而增強(qiáng)了網(wǎng)絡(luò)安全性。
表2 不同方法的安全性對(duì)比Table 2 Comparison of safety for different methods
4.2.1 密鑰預(yù)存儲(chǔ)開銷對(duì)比
假設(shè)該網(wǎng)絡(luò)模型下,F(xiàn)N和MN的數(shù)目分別為M和N,這里M?N。文獻(xiàn)[5]方法中每個(gè)FN預(yù)加載BS的公鑰、自身的公/私鑰對(duì)、私鑰生成器SKG、妥協(xié)節(jié)點(diǎn)監(jiān)測(cè)密鑰CNDK和網(wǎng)絡(luò)私鑰Kprt;每個(gè)MN預(yù)加載秘密通信密鑰SK和網(wǎng)絡(luò)公鑰Kplc;總的密鑰存儲(chǔ)空間占用為6×M+2×N。文獻(xiàn)[6]方法中每個(gè)FN和MN分別預(yù)加載自身基于身份的私鑰Sx、與BS通信的對(duì)稱密鑰Kx和全局廣播密鑰G;總的密鑰存儲(chǔ)空間占用為3×M+3×N。文獻(xiàn)[8]方法中當(dāng)每個(gè)節(jié)點(diǎn)存儲(chǔ)的密鑰數(shù)量超過k+m的1/2時(shí),連通率為1,此時(shí)每個(gè)FN和MN需至少存儲(chǔ)10個(gè)密鑰,總的密鑰存儲(chǔ)空間占用為10×M+10×N。本文方法中每個(gè)FN預(yù)加載自身的私鑰KFNj和KH;每個(gè)MN預(yù)加載自身的公鑰Kpubi和私鑰Kprii;總的密鑰存儲(chǔ)空間占用為2×M+2×N。表3為網(wǎng)絡(luò)節(jié)點(diǎn)的分配情況可以更直觀地表示密鑰存儲(chǔ)空間占用情況。表3中1~5分別代表不同網(wǎng)絡(luò)規(guī)模下節(jié)點(diǎn)分配情況,數(shù)字越大代表網(wǎng)絡(luò)規(guī)模越大。
表3 網(wǎng)絡(luò)節(jié)點(diǎn)分配情況Table 3 Distribution of network nodes
圖2 為本文方法與上述3種方法在密鑰預(yù)存儲(chǔ)開銷上的對(duì)比。結(jié)果顯示本文方法在密鑰預(yù)存儲(chǔ)空間占用上相對(duì)較少。文獻(xiàn)[5]方法為實(shí)現(xiàn)加密和身份認(rèn)證的功能預(yù)加載于FN內(nèi)的密鑰較多,而預(yù)加載于每個(gè)MN內(nèi)的密鑰數(shù)目與本文方法相同。文獻(xiàn)[6]方法中每個(gè)MN預(yù)加載3個(gè)相關(guān)密鑰來實(shí)現(xiàn)加密和身份認(rèn)證的功能,而本文方法每個(gè)MN僅預(yù)加載自身的公鑰和私鑰即可。文獻(xiàn)[8]采用EBS來生成對(duì)密鑰,為滿足網(wǎng)絡(luò)連通性為1,每個(gè)節(jié)點(diǎn)需至少存儲(chǔ)10個(gè)密鑰,這導(dǎo)致密鑰存儲(chǔ)空間占用最大。本文方法則在密鑰預(yù)存儲(chǔ)開銷上較少,節(jié)省了節(jié)點(diǎn)存儲(chǔ)資源。
圖2 各方法密鑰預(yù)存儲(chǔ)空間占用對(duì)比Fig.2 Comparison of key pre-storage space occupied by each scheme
4.2.2 密鑰建立過程的計(jì)算開銷對(duì)比
為了分析算法的計(jì)算開銷情況,本文在MATLAB R 2016a實(shí)驗(yàn)平臺(tái)上對(duì)算法進(jìn)行了開銷計(jì)算。實(shí)驗(yàn)環(huán)境計(jì)算機(jī)的配置為:2.60 GHz Intel Core i7-9750 CPU和8.0 GB內(nèi)存。
移動(dòng)場(chǎng)景下主要解決MN與FN間通信密鑰的建立,因此,本文方法統(tǒng)一考慮單個(gè)MN從當(dāng)前簇移動(dòng)到新簇過程中完成密鑰建立的計(jì)算開銷。本文根據(jù)文獻(xiàn)[15]基于GNU高精度算術(shù)運(yùn)算庫(kù)(GNU multiple precision arithmetic libravy,GMP)的基于配對(duì)的密碼庫(kù)(Pairing based cryptography libravy,PBC)獲取了一些重要計(jì)算參數(shù),表4列出了各種計(jì)算操作耗時(shí)。圖3為各方法中單個(gè)MN與FN完成會(huì)話密鑰建立的耗時(shí)對(duì)比。
表4 各種計(jì)算操作所需耗時(shí)Table 4 Time?consuming for various cal?culation operations
由圖3可知,與文獻(xiàn)[5-6]方法相比,本文方法完成密鑰建立過程的計(jì)算開銷相對(duì)較少。文獻(xiàn)[5]方法完成節(jié)點(diǎn)間加密操作以及身份認(rèn)證大多集中在FN與MN自身來完成,而本文方法的節(jié)點(diǎn)身份認(rèn)證計(jì)算過程轉(zhuǎn)移到了資源強(qiáng)大的BS上來完成,因此節(jié)省了密鑰建立過程中的計(jì)算開銷。文獻(xiàn)[6]方法生成密鑰建立過程的會(huì)話密鑰采用了雙線性配對(duì)操作,而雙線性配對(duì)操作與本文方法會(huì)話密鑰生成所采用的Diffie-Hellman密鑰交換協(xié)議所執(zhí)行的點(diǎn)乘相比計(jì)算開銷較大。文獻(xiàn)[8]方法密鑰建立過程沒有在圖3中表示是由于其僅采取了消息認(rèn)證碼和對(duì)稱加解密操作在計(jì)算開銷上極少,甚至無法顯示。這看似對(duì)節(jié)省計(jì)算開銷非常有利,然而由于缺少必要的操作過程導(dǎo)致安全性嚴(yán)重不足。文獻(xiàn)[8]方法中移動(dòng)節(jié)點(diǎn)直接將要加入新簇的請(qǐng)求消息發(fā)送給匯聚節(jié)點(diǎn)(相當(dāng)于本文所提方法中的BS),該過程未充分利用簇頭通信范圍廣、傳遞消息快的優(yōu)勢(shì),因此在傳遞請(qǐng)求消息上是低效的,會(huì)為攻擊者提供更多的攻擊時(shí)間;同時(shí)該方法缺乏新簇頭與舊簇頭對(duì)移動(dòng)節(jié)點(diǎn)身份和消息的雙向認(rèn)證過程,因此在計(jì)算開銷上是極少的;然而一旦攻擊者捕獲一個(gè)節(jié)點(diǎn)并復(fù)制出多個(gè)惡意節(jié)點(diǎn),這些惡意節(jié)點(diǎn)便可以按照方法所采取的認(rèn)證措施隨意進(jìn)入任何簇,進(jìn)而對(duì)網(wǎng)絡(luò)安全性造成巨大威脅。
圖3 各方法FN與MN會(huì)話密鑰建立的耗時(shí)對(duì)比Fig.3 Comparison of time-consuming in establishment of FN and MN session keys for each method
本文在移動(dòng)場(chǎng)景下提出了更加安全高效的異構(gòu)無線傳感器網(wǎng)絡(luò)密鑰管理方法。該方法在密鑰建立過程中,由BS利用MN的位置信息并結(jié)合相關(guān)信息來分析判斷MN從當(dāng)前簇移動(dòng)到新簇的過程中是否受到節(jié)點(diǎn)復(fù)制攻擊,由此來確保節(jié)點(diǎn)間密鑰建立的合法性;同時(shí),本文方法采用ECC加密算法保護(hù)了MN的位置信息,并采用HMAC實(shí)現(xiàn)節(jié)點(diǎn)間安全的身份認(rèn)證,不僅保證了密鑰建立過程有更好的安全性,而且節(jié)省了網(wǎng)絡(luò)資源。