仲紅 ,張慶陽(yáng) ,田立超 ,王良民
(1. 安徽大學(xué) 信息保障技術(shù)協(xié)同創(chuàng)新中心,安徽 合肥 230601;2. 安徽大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230601)
無(wú)照料的無(wú)線傳感器網(wǎng)絡(luò)(UWSN, unattended wireless sensor network) 包含三類節(jié)點(diǎn):靜態(tài)節(jié)點(diǎn)、移動(dòng)節(jié)點(diǎn)及基站。靜態(tài)節(jié)點(diǎn)分布在監(jiān)控區(qū)域采集并存儲(chǔ)數(shù)據(jù)信息,基站定期或不定期地派出移動(dòng)節(jié)點(diǎn),充當(dāng)匯聚節(jié)點(diǎn),收集靜態(tài)節(jié)點(diǎn)所感知的信息數(shù)據(jù)[1~3]。UWSN網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,它與普通無(wú)線傳感網(wǎng)絡(luò)的區(qū)別在于基站不能一直在線的照料靜態(tài)節(jié)點(diǎn),即靜態(tài)節(jié)點(diǎn)不能主動(dòng)地發(fā)送消息聯(lián)系基站,需要等待移動(dòng)節(jié)點(diǎn)周期性或者非周期性的訪問(wèn)。這樣自然帶來(lái)2個(gè)問(wèn)題:一個(gè)是效率問(wèn)題,移動(dòng)節(jié)點(diǎn)逐個(gè)訪問(wèn)靜態(tài)節(jié)點(diǎn),無(wú)疑是耗時(shí)耗能低效的;另一個(gè)是安全問(wèn)題,靜態(tài)節(jié)點(diǎn)如何認(rèn)證移動(dòng)節(jié)點(diǎn),即如何判斷移動(dòng)節(jié)點(diǎn)是基站派出還是敵手派出。
圖1 UWSN模型
針對(duì)效率問(wèn)題,當(dāng)前研究常用分簇方法解決,即將靜態(tài)節(jié)點(diǎn)分為若干感知子區(qū)域,每個(gè)子區(qū)域選舉一個(gè)簇頭,簇頭提前收集該區(qū)域內(nèi)的感知信息。這樣移動(dòng)節(jié)點(diǎn)只要訪問(wèn)簇頭,就可以提取全部需求信息,大大提高收集的效率。這類方法中,以基于Voronoi圖的區(qū)域劃分方法為代表,其中最為典型的算法如LEACH[4]和HEED[5],分別適用于單跳網(wǎng)絡(luò)和多跳網(wǎng)絡(luò)。
但是,上述分簇方法通常是針對(duì)傳統(tǒng)無(wú)線傳感網(wǎng)的,而不能直接應(yīng)用到 UWSN中。不能應(yīng)用的最主要原因是沒(méi)有一個(gè)在線的基站,節(jié)點(diǎn)與節(jié)點(diǎn)、節(jié)點(diǎn)與移動(dòng)節(jié)點(diǎn)之間的信任關(guān)系無(wú)法建立,尤其是在分簇及數(shù)據(jù)采集階段。這樣網(wǎng)絡(luò)結(jié)構(gòu)導(dǎo)致安全發(fā)生了變化。目前,關(guān)于 UWSN安全常用的方法是假設(shè)移動(dòng)節(jié)點(diǎn)是絕對(duì)可信的[6,7]。
在實(shí)際中,移動(dòng)節(jié)點(diǎn)也可能由敵手派出,故UWSN需要對(duì)移動(dòng)節(jié)點(diǎn)進(jìn)行認(rèn)證。本文提出一種基于分布式密鑰共享的安全分簇方案,通過(guò)三角形的性質(zhì)提高了簇頭節(jié)點(diǎn)的連通度,折中移動(dòng)節(jié)點(diǎn)收集效率和能耗,通過(guò)分布式密鑰共享的技術(shù),完成移動(dòng)節(jié)點(diǎn)的認(rèn)證,保證了安全性。本文的主要貢獻(xiàn)是提出一種適用于 UWSN的分簇算法,且將移動(dòng)節(jié)點(diǎn)認(rèn)證和分簇算法無(wú)縫結(jié)合,在提高收集效率的同時(shí)可以保證較好的安全性。
無(wú)線傳感網(wǎng)中通過(guò)分簇算法,使部分靜態(tài)節(jié)點(diǎn)成為簇頭節(jié)點(diǎn),其余靜態(tài)節(jié)點(diǎn)受最鄰近的簇頭節(jié)點(diǎn)管理。此后靜態(tài)節(jié)點(diǎn)可進(jìn)入節(jié)能狀態(tài)或者降低無(wú)線發(fā)射功率,使全網(wǎng)絡(luò)能耗降低,以提高網(wǎng)絡(luò)生存時(shí)間[8~10]。
經(jīng)典的分簇算法有LEACH[4]、HEED[5]等算法。LEACH算法中,每個(gè)節(jié)點(diǎn)均有概率p成為簇頭節(jié)點(diǎn),然而其只可用于單跳網(wǎng)絡(luò)。HEED以剩余能量和網(wǎng)絡(luò)可達(dá)能量作為簇頭選舉標(biāo)準(zhǔn),算法適用于大范圍多跳網(wǎng)絡(luò),由于使用固定簇半徑,無(wú)法保證所有簇頭節(jié)點(diǎn)均有較高的連通度。Wang等[11]提出了一種Sink節(jié)點(diǎn)按照預(yù)定路徑移動(dòng),并指導(dǎo)網(wǎng)絡(luò)進(jìn)行分簇的算法,其可以達(dá)到較好的分簇效果,然而算法要求 Sink節(jié)點(diǎn)一直處于在線狀態(tài)。El-Saadawy等[12]在LEACH算法的基礎(chǔ)上提出一種安全的分簇算法MS-LEACH,考慮到了節(jié)點(diǎn)間通信的安全。但是,以上研究未考慮到 UWSN的網(wǎng)絡(luò)環(huán)境以及UWSN中MS節(jié)點(diǎn)的認(rèn)證問(wèn)題,故無(wú)法很好地直接應(yīng)用于UWSN中。
對(duì)于無(wú)線傳感網(wǎng)中的節(jié)點(diǎn)認(rèn)證問(wèn)題,Li等[13]提出一種輕量級(jí)認(rèn)證方案,根據(jù)預(yù)先存儲(chǔ)的信息,使用對(duì)稱密鑰和硬件執(zhí)行算法的方式完成節(jié)點(diǎn)的認(rèn)證;Peng[14]提出適用于分簇網(wǎng)絡(luò)的基于身份的認(rèn)證方案,在認(rèn)證時(shí),節(jié)點(diǎn)需要通過(guò)鄰居節(jié)點(diǎn)的認(rèn)證;Xue等[15]提出一種基于證書的多認(rèn)證方案,可以通過(guò)存儲(chǔ)節(jié)點(diǎn)與網(wǎng)關(guān)上的信息認(rèn)證用戶和節(jié)點(diǎn);Delgado等[16]提出一種輕量級(jí)的認(rèn)證模式,通過(guò)主密鑰與子密鑰關(guān)系來(lái)完成節(jié)點(diǎn)認(rèn)證;王良民等[17]提出一種移動(dòng)節(jié)點(diǎn)漫游認(rèn)證協(xié)議,移動(dòng)節(jié)點(diǎn)在移動(dòng)區(qū)域內(nèi)注冊(cè)一次即可漫游于整個(gè)網(wǎng)絡(luò)且協(xié)議滿足組合安全,然而節(jié)點(diǎn)漫游后需要傳輸相應(yīng)的認(rèn)證材料;Savola等[18]提出一種ad hoc網(wǎng)絡(luò)的認(rèn)證方案,節(jié)點(diǎn)負(fù)責(zé)自身認(rèn)證,但其部分認(rèn)證操作需要可信第三方的存在。以上研究均未考慮到MS節(jié)點(diǎn)移動(dòng)性或普通節(jié)點(diǎn)易被讀取內(nèi)部密鑰信息的問(wèn)題[19]。
在早期的無(wú)線傳感網(wǎng)中,由于節(jié)點(diǎn)資源較為匱乏,節(jié)點(diǎn)只能使用對(duì)稱加密,使用非對(duì)稱加密將大量損耗資源。但是隨著技術(shù)的發(fā)展,一些輕量級(jí)非對(duì)稱加密可以使用在無(wú)線傳感網(wǎng)中[20,21]。由于普通節(jié)點(diǎn)易被讀取內(nèi)部信息,若使用對(duì)稱加密,密鑰很容易被攻擊者知道,故基于對(duì)稱密鑰體系的身份認(rèn)證方案并不適合UWSN,而非對(duì)稱密鑰由于其通過(guò)公鑰無(wú)法簡(jiǎn)單地得到私鑰而使其在 UWSN中具有一定的使用價(jià)值。本文結(jié)合Yuan等[22]的研究,采用非對(duì)稱密鑰體系,提出一種基于分布式密鑰共享的安全分簇方案。
本節(jié)提出一種利用三角形的性質(zhì)保證連通度的分簇算法(connectivity-assuring clustering algorithm)。通過(guò)該算法,網(wǎng)絡(luò)中形成一個(gè)高連通的骨干網(wǎng)絡(luò),降低網(wǎng)絡(luò)的路由表存儲(chǔ)開銷以及整個(gè)網(wǎng)絡(luò)的通信開銷。但由于MS節(jié)點(diǎn)未經(jīng)驗(yàn)證會(huì)使數(shù)據(jù)泄露,故在后續(xù)章節(jié)中對(duì)該分簇算法進(jìn)行改進(jìn)可以對(duì)MS節(jié)點(diǎn)的合法性進(jìn)行驗(yàn)證,以提高網(wǎng)絡(luò)的安全性。
CA分簇算法包括以下幾個(gè)過(guò)程:初始化階段、成簇階段、補(bǔ)充階段和簇頭更新階段。在算法描述過(guò)程中,使用到的符號(hào)如表1所示。
表1 分簇算法符號(hào)
在節(jié)點(diǎn)部署前,由系統(tǒng)指定一個(gè)節(jié)點(diǎn),當(dāng)節(jié)點(diǎn)部署后,由其廣播初始化網(wǎng)絡(luò)消息 IMSG,對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行初始化操作,并由其開始執(zhí)行成簇算法。當(dāng)存在節(jié)點(diǎn)超過(guò)一定時(shí)間,周邊簇頭數(shù)量還未達(dá)到3個(gè),該節(jié)點(diǎn)進(jìn)入補(bǔ)充節(jié)點(diǎn),請(qǐng)求成簇,以保證整個(gè)網(wǎng)絡(luò)中任意非簇頭節(jié)點(diǎn)均處于3個(gè)簇頭的通信范圍內(nèi),從而形成一種高連通的骨干網(wǎng)絡(luò)。隨著時(shí)間變化,簇頭節(jié)點(diǎn)能量消耗過(guò)大,當(dāng)其能量低于一定閾值時(shí),進(jìn)入簇頭更新階段,替換簇頭節(jié)點(diǎn),使網(wǎng)絡(luò)仍然可以正常工作。
指定節(jié)點(diǎn)在網(wǎng)絡(luò)部署后,廣播初始化網(wǎng)絡(luò)消息IMSG。對(duì)于收到 IMSG消息的節(jié)點(diǎn),將來(lái)源節(jié)點(diǎn)ID存儲(chǔ)與自身的LN列表中,然后廣播IMSG消息。隨著初始化階段的進(jìn)行,非孤立節(jié)點(diǎn)生成自身的鄰居列表LN,而對(duì)于孤立節(jié)點(diǎn),由于未收到 IMSG消息,則其在整個(gè)網(wǎng)絡(luò)生存時(shí)間中,不會(huì)收到任何網(wǎng)絡(luò)消息。
指定節(jié)點(diǎn)在初始化階段開始執(zhí)行一段時(shí)間后,進(jìn)入成簇階段。首先廣播CGMSG消息,對(duì)于收到CGMSG消息并且在CGMSG消息中提及的節(jié)點(diǎn),返回其LN列表。然后通過(guò)算法1計(jì)算附近6個(gè)或多個(gè)簇頭節(jié)點(diǎn)并按序廣播成簇消息,并根據(jù)其生成順序,告知其延遲一定時(shí)間再進(jìn)行成簇,給予其廣播CGMSG消息的權(quán)限。對(duì)于繼承到廣播CGMSG消息權(quán)限的節(jié)點(diǎn),首先根據(jù)周邊簇頭信息計(jì)算當(dāng)前CL隊(duì)列的順序,然后按照算法1的思想成簇,并根據(jù)CL列表以及未得到廣播CGMSG消息節(jié)點(diǎn)列表,繼續(xù)授予廣播CGMSG消息的權(quán)限。如此反復(fù),直到整個(gè)網(wǎng)絡(luò)成簇結(jié)束。
對(duì)于成簇階段算法1的描述如下,其中節(jié)點(diǎn)i為當(dāng)前廣播CGMSG消息的節(jié)點(diǎn)。
算法1分簇算法
如果節(jié)點(diǎn)i的CL列表大于5,則廣播ACMSG消息,通知通信范圍內(nèi)節(jié)點(diǎn)入簇,并退出算法,否則發(fā)送CGMSG消息,獲取自身LN列表中節(jié)點(diǎn)的LN列表。當(dāng)所有的節(jié)點(diǎn)均返回鄰居列表或等待返回時(shí)間超過(guò)操作時(shí)長(zhǎng)后,節(jié)點(diǎn)i將返回LN列表的節(jié)點(diǎn)集合與LN(i)進(jìn)行與運(yùn)算獲得臨時(shí)TLN列表。如果CL列表小于3,則根據(jù)列表情況以及式(1)和式(2)準(zhǔn)備CL列表中前2個(gè)節(jié)點(diǎn)j1和j2的信息。
接著,使用CL列表中最后2個(gè)節(jié)點(diǎn)jn-1和jn-2作為參考節(jié)點(diǎn),根據(jù)式(3)尋找節(jié)點(diǎn)jn,直至尋找到的jn可與j1節(jié)點(diǎn)通信。
為保證簇頭間存在一定距離,此時(shí)的jn不作為簇頭節(jié)點(diǎn)。簇頭i根據(jù)當(dāng)前時(shí)刻CL列表中最后一個(gè)節(jié)點(diǎn)jlast和第一個(gè)節(jié)點(diǎn)j1作為參考節(jié)點(diǎn),根據(jù)式(4)尋找節(jié)點(diǎn)jn+1,使節(jié)點(diǎn)i周邊簇頭節(jié)點(diǎn)可以完成閉合。
最后廣播ACMSG消息,通知通信范圍內(nèi)節(jié)點(diǎn)入簇,并根據(jù)成簇順序告訴周邊簇頭節(jié)點(diǎn)廣播CGMSM消息的順序。
通過(guò)計(jì)算重疊指數(shù)來(lái)判斷節(jié)點(diǎn)間距離,給出如下證明:在定理1中證明節(jié)點(diǎn)數(shù)目與區(qū)域面積相關(guān);在定理2中證明節(jié)點(diǎn)間重疊指數(shù)OM(i,j)與距離的關(guān)系。
定理 1節(jié)點(diǎn)隨機(jī)分布的部署區(qū)域,不考慮邊緣區(qū)域影響時(shí),任意節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)數(shù)的期望值與通信面積近似成正比。
證明假定部署區(qū)域內(nèi)節(jié)點(diǎn)數(shù)目為N,部署區(qū)域面積為S,節(jié)點(diǎn)i的通信面積為s,節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)數(shù)的期望值為Ei。
由于每個(gè)節(jié)點(diǎn)部署過(guò)程屬于獨(dú)立過(guò)程,則對(duì)于節(jié)點(diǎn)落在節(jié)點(diǎn)i通信范圍s中的概率Pi有
所以對(duì)于節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)數(shù)的期望值Ei有
由式(7)可得,在不考慮邊緣區(qū)域影響時(shí),任意節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)數(shù)的期望值與通信面積近似成正比。
定理 2節(jié)點(diǎn)隨機(jī)分布在部署區(qū)域中,可通信節(jié)點(diǎn)間的距離與重疊指數(shù)近似成反比,即
證明如圖2所示,假定節(jié)點(diǎn)通信半徑為R,節(jié)點(diǎn)i、j之間的距離為d其中∠AiD=θ,重疊面積為S。
圖2 節(jié)點(diǎn)距離與重疊指數(shù)關(guān)系
因?yàn)?2θ~sin2θ在[60°, 90°]上為單調(diào)遞增,所以θ∝S。由式(10)和式(11)
由定理1中N∝S可知,節(jié)點(diǎn)數(shù)的期望值正比于面積,則有S∝OM(i,j),故可得證式(8)。
如果節(jié)點(diǎn)h經(jīng)過(guò)一段很長(zhǎng)時(shí)間后,周邊仍然沒(méi)有3個(gè)簇頭節(jié)點(diǎn),則主動(dòng)進(jìn)入補(bǔ)充階段,提出成簇請(qǐng)求。與周邊的單個(gè)簇頭節(jié)點(diǎn)協(xié)商成簇,以保證網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)至少與3個(gè)簇頭保持連通。
簇頭節(jié)點(diǎn)在監(jiān)測(cè)到自身能量低于某閾值后,發(fā)出簇頭更新的請(qǐng)求。能量較低的簇頭,通過(guò)計(jì)算重疊指數(shù)選擇一個(gè)最靠近自己的節(jié)點(diǎn),作為自己的替代節(jié)點(diǎn)。由定理2可知,2個(gè)節(jié)點(diǎn)的重疊指數(shù)越高,距離越近。
簇頭節(jié)點(diǎn)i向LN(i)發(fā)送請(qǐng)求LN的消息,周圍節(jié)點(diǎn)j1…jw…jn發(fā)送自己的LN(jw)。簇頭節(jié)點(diǎn)i通過(guò)式(13)來(lái)計(jì)算最靠近i的節(jié)點(diǎn),并且計(jì)算與k最近的2個(gè)簇頭節(jié)點(diǎn)C1和C2,告知節(jié)點(diǎn)k。
節(jié)點(diǎn)k如果能量充足,則向C1和C2發(fā)出消息,C1和C2收到消息后,更新自己的周邊簇頭節(jié)點(diǎn)信息,同時(shí)i廣播簇頭失效的消息。
由于k可能無(wú)法與i節(jié)點(diǎn)周邊的6個(gè)簇頭均在通信范圍內(nèi),故更新后,可能存在節(jié)點(diǎn)不受3個(gè)簇頭控制,此時(shí)會(huì)有節(jié)點(diǎn)進(jìn)入簇頭補(bǔ)充階段,從而完成網(wǎng)絡(luò)骨干網(wǎng)的自愈合。
通過(guò)實(shí)驗(yàn)仿真CA算法的分簇效果,實(shí)驗(yàn)中場(chǎng)景大小是半徑為100單位長(zhǎng)度的圓,節(jié)點(diǎn)通信半徑為30單位長(zhǎng)度,節(jié)點(diǎn)隨機(jī)部署。
分別在節(jié)點(diǎn)總數(shù)分別為200個(gè)、500個(gè)和2 500個(gè)的情況下,使用CA算法進(jìn)行分簇,得到分簇后的拓?fù)淙鐖D3所示。
圖3 節(jié)點(diǎn)拓?fù)?/p>
從圖3可以看出,當(dāng)節(jié)點(diǎn)密度越大,通過(guò)CA算法得到的簇頭節(jié)點(diǎn),越近似于三角形網(wǎng)格圖,可見(jiàn)CA算法是收斂的。該拓?fù)浔WC了單個(gè)簇頭節(jié)點(diǎn)在網(wǎng)絡(luò)中的連通度,從而可以提高Sink節(jié)點(diǎn)的收集效率。
通過(guò)改變部署區(qū)域內(nèi)節(jié)點(diǎn)數(shù)目,從200到2 100,以100為間隔進(jìn)行了仿真實(shí)驗(yàn),分別對(duì)成簇后的簇頭數(shù)目、簇頭連通度和普通節(jié)點(diǎn)最大通信范圍內(nèi)簇頭節(jié)點(diǎn)數(shù)目進(jìn)行了統(tǒng)計(jì)。仿真結(jié)果如圖4所示,所有仿真結(jié)果均取500次實(shí)驗(yàn)的平均值。
圖4 節(jié)點(diǎn)數(shù)目對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)影響
從圖4(a)可以看到,簇頭節(jié)點(diǎn)數(shù)目隨著節(jié)點(diǎn)數(shù)目增加而減少,主要原因在于隨著節(jié)點(diǎn)密度增大,分簇形成的三角形面積更大,更加逼近與以通信半徑為邊長(zhǎng)的等邊三角形。而在200時(shí)較300低,但是簇頭節(jié)點(diǎn)占總節(jié)點(diǎn)比例高。從圖4(b)可以看出,隨著節(jié)點(diǎn)數(shù)目增加,簇頭連通度在3到6之間的比例越大,最后趨于穩(wěn)定。從圖4(c)可以看出,隨著節(jié)點(diǎn)數(shù)目增加,普通節(jié)點(diǎn)連通度大于6的節(jié)點(diǎn)數(shù)逐漸增加。從實(shí)驗(yàn)結(jié)果可見(jiàn),網(wǎng)絡(luò)具有較高的連通度。
由于Sink節(jié)點(diǎn)的不定期到訪,使攻擊者可以在Sink節(jié)點(diǎn)未到訪時(shí),冒充 Sink節(jié)點(diǎn)進(jìn)行數(shù)據(jù)的收集,本文提出一種安全CA算法(DKS-CS),使用分布式密鑰共享的方案來(lái)改進(jìn)分簇算法,使 UWSN網(wǎng)絡(luò)可以對(duì)MS節(jié)點(diǎn)的身份進(jìn)行認(rèn)證。為保證認(rèn)證的執(zhí)行,對(duì)第3節(jié)所述的算法做如下改進(jìn)。在所有的簇頭形成后,廣播的成簇消息包含自身公鑰,而收到該消息的節(jié)點(diǎn),保存其公鑰,以保證整個(gè)網(wǎng)絡(luò)中,節(jié)點(diǎn)具有一跳范圍內(nèi)簇頭節(jié)點(diǎn)的公鑰。系統(tǒng)在部署前,將從密鑰池(由無(wú)線節(jié)點(diǎn)公鑰和MS節(jié)點(diǎn)公鑰組成)中隨機(jī)地選取部分公鑰存儲(chǔ)。
移動(dòng)節(jié)點(diǎn)的認(rèn)證共分為4個(gè)階段,并且對(duì)于廣播消息均需要收到2條,節(jié)點(diǎn)才會(huì)對(duì)其處理并轉(zhuǎn)發(fā)。協(xié)議發(fā)起由MS節(jié)點(diǎn)廣播AuthMessage消息,使其周邊可互相通信的3個(gè)簇頭節(jié)點(diǎn)發(fā)起協(xié)議,進(jìn)入密鑰搜索階段。當(dāng)網(wǎng)絡(luò)中發(fā)現(xiàn)密鑰,則根據(jù)來(lái)時(shí)路徑返回密鑰,此時(shí)進(jìn)入應(yīng)答階段。當(dāng)協(xié)議發(fā)起簇頭節(jié)點(diǎn)驗(yàn)證簽名并在數(shù)量上滿足初始設(shè)定的門限值時(shí),廣播KACK消息,協(xié)議進(jìn)入確認(rèn)階段。而在整個(gè)認(rèn)證協(xié)議執(zhí)行過(guò)程中,如若發(fā)現(xiàn)異常情況,則立即進(jìn)入?yún)f(xié)議終止階段,防止敵手的攻擊。在算法的描述過(guò)程中使用到的符號(hào)如表2所示。
表2 密鑰管理方案符號(hào)
MS節(jié)點(diǎn)到達(dá)部署區(qū)域后,廣播請(qǐng)求身份認(rèn)證的消息AuthMessage,其中包括自身ID,以及對(duì)ID的簽名。接受到該消息的簇頭節(jié)點(diǎn)取出ID后,生成KREQ消息,并對(duì)其簽名,廣播出去,此時(shí)該簇頭節(jié)點(diǎn)為SSN節(jié)點(diǎn)。KREQ消息形式如下
式(14)中S為該KREQ消息的發(fā)起者ID,Q為搜索的目標(biāo)節(jié)點(diǎn)ID,R為該消息的傳輸路徑,最后為當(dāng)前傳輸節(jié)點(diǎn)對(duì)該消息的簽名。
對(duì)于接受到KREQ消息的簇頭節(jié)點(diǎn),如果所尋找公鑰對(duì)應(yīng)的ID存在于其LN列表中,進(jìn)入?yún)f(xié)議終止階段,否則驗(yàn)證來(lái)源簽名,并保存下來(lái)。當(dāng)接受到2條不同來(lái)源的KREQ消息后,如果所尋找的公鑰存在于節(jié)點(diǎn)中,同時(shí)廣播KREQ給其余簇頭,否則廣播KREQ給所有節(jié)點(diǎn),并且節(jié)點(diǎn)進(jìn)入應(yīng)答階段。對(duì)于接受到KREQ消息的普通節(jié)點(diǎn),查看是否存在所需公鑰,如果存在,驗(yàn)證KREQ的簽名后,按照下一節(jié)所述方法產(chǎn)生KREP消息,并用KREQ消息來(lái)源的簇頭節(jié)點(diǎn)的公鑰加密后單播給簇頭節(jié)點(diǎn),如果不存在,則不做消息應(yīng)答。
上述步驟可以用算法2進(jìn)行形式化描述。
算法2KREQ消息處理算法
節(jié)點(diǎn)在應(yīng)答階段中,如果公鑰存在于節(jié)點(diǎn)中,則將其放入KREP消息中,并將存儲(chǔ)的KREQ消息中R較短的路由存入KREP消息中,并用上一節(jié)點(diǎn)公鑰加密后,傳遞給上一節(jié)點(diǎn)。KREP消息形式如下
其中,S、Q和R來(lái)自于所應(yīng)答的KREQ,PKQ為搜索到的公鑰信息。
對(duì)于接收到KREP消息的簇頭節(jié)點(diǎn),對(duì)其解密并驗(yàn)證簽名后,根據(jù)其路由R逆序傳遞。在傳輸時(shí),對(duì)數(shù)據(jù)使用上一節(jié)點(diǎn)的公鑰加密。
SSN節(jié)點(diǎn)接受到KREP消息后,驗(yàn)證KREP的簽名,然后驗(yàn)證AuthMessage的簽名。當(dāng)公鑰數(shù)達(dá)到門限值后,對(duì)KACK消息簽名后廣播。KACK消息形式如下
其中,S和Q來(lái)自于所應(yīng)答的KREQ,PKQ為搜索到的公鑰信息,其中S和Q主要用于路由功能。
對(duì)于通信范圍內(nèi)存在SSN節(jié)點(diǎn)的簇頭節(jié)點(diǎn),則必須收到可通信的SSN節(jié)點(diǎn)的KACK消息,并且需要滿足收到2條KACK消息,才對(duì)KACK消息簽名轉(zhuǎn)發(fā)。對(duì)于通信范圍內(nèi)沒(méi)有SSN節(jié)點(diǎn)的簇頭節(jié)點(diǎn),收到2條KACK消息即進(jìn)行KACK消息的簽名轉(zhuǎn)發(fā)。同時(shí)對(duì)于存在可通信SSN節(jié)點(diǎn)的簇頭節(jié)點(diǎn),當(dāng)收到多個(gè)非SSN節(jié)點(diǎn)的KACK消息時(shí),可將其報(bào)告給SSN節(jié)點(diǎn),若此時(shí)SSN節(jié)點(diǎn)沒(méi)有發(fā)送KACK消息,則會(huì)發(fā)送KESC消息,進(jìn)入?yún)f(xié)議終止階段。
收到KESC消息的簇頭節(jié)點(diǎn),驗(yàn)證來(lái)源簽名,并收到3條KESC消息后終止協(xié)議,不再處理關(guān)于此ID節(jié)點(diǎn)的任何消息,并同時(shí)簽名廣播KESC消息。KESC消息形式如下
其中,Q來(lái)自于KREQ消息。
本節(jié)將從密鑰搜索概率和變節(jié)攻擊2個(gè)方面來(lái)進(jìn)行實(shí)驗(yàn)分析。
在上一節(jié)所述協(xié)議中,確認(rèn)階段要求公鑰數(shù)目達(dá)到閾值,則協(xié)議執(zhí)行成功的關(guān)鍵在于單個(gè)節(jié)點(diǎn)搜索到的公鑰數(shù)目。假設(shè)節(jié)點(diǎn)路由為最短路徑路由算法。此時(shí),3個(gè)SSN節(jié)點(diǎn)的管轄范圍劃分為3個(gè)120°夾角的空間。為計(jì)算方便,假設(shè)部署區(qū)域?yàn)閳A形,MS節(jié)點(diǎn)距離部署中心距離為d,管理范圍分界線與MS節(jié)點(diǎn)—部署中心連線的夾角為θ,則3塊管理范圍如圖5所示。
圖5 簇頭節(jié)點(diǎn)劃分范圍示意
假設(shè)部署區(qū)域的節(jié)點(diǎn)密度均勻,在半徑為800單位長(zhǎng)度的圓內(nèi)部署1 000個(gè)節(jié)點(diǎn),根據(jù)數(shù)學(xué)方法分別對(duì)3塊區(qū)域進(jìn)行面積的積分,繼而可以估算出3塊區(qū)域內(nèi)分別包含多少節(jié)點(diǎn)。實(shí)驗(yàn)結(jié)果如圖6所示。
在圖 6中,可以看出m1中節(jié)點(diǎn)數(shù)目與中心距離關(guān)系密切;m2中節(jié)點(diǎn)數(shù)目一直保持較高數(shù)目,其數(shù)量與中心距離成反比,與角度成正比;m3中節(jié)點(diǎn)數(shù)目與中心距離成反比,與角度成正比,且角度對(duì)節(jié)點(diǎn)數(shù)目的影響隨著中心距離的增加而增加。
同時(shí)由實(shí)驗(yàn)可得到:當(dāng)MS節(jié)點(diǎn)與部署中心距離在400單位長(zhǎng)度以內(nèi)時(shí),任何角度下的普通節(jié)點(diǎn)數(shù)量均在100以上,即SSN節(jié)點(diǎn)等同搜索網(wǎng)絡(luò)中10%的節(jié)點(diǎn)是否存在公鑰信息。普通節(jié)點(diǎn)數(shù)為1 000,MS節(jié)點(diǎn)數(shù)為50,組成密鑰池大小為1 050的密鑰池中隨機(jī)選取公鑰存入節(jié)點(diǎn),當(dāng)SSN節(jié)點(diǎn)與部署中心距離在400單位長(zhǎng)度以內(nèi)時(shí),任何角度均有較大的幾率至少搜到一個(gè)公鑰信息。
不管攻擊者是否知道密鑰池信息,其想要通過(guò)MS節(jié)點(diǎn)的認(rèn)證,則必須知道一個(gè)Sink節(jié)點(diǎn)的ID,并且知道該ID對(duì)應(yīng)的私鑰信息,否則無(wú)法通過(guò)MS節(jié)點(diǎn)的認(rèn)證。由于密鑰對(duì)與ID無(wú)直接關(guān)系,且在攻擊中,攻擊者至多知道公鑰信息,而由公鑰計(jì)算私鑰是不可能的,故保證攻擊者無(wú)法通過(guò)公鑰來(lái)獲得私鑰,從而保證了攻擊者無(wú)法偽造特定ID號(hào)的節(jié)點(diǎn)進(jìn)行通信。
圖6 均勻分布下三塊區(qū)域節(jié)點(diǎn)數(shù)
但是由于攻擊者可以通過(guò)修改變節(jié)節(jié)點(diǎn)數(shù)據(jù),來(lái)添加新的Sink節(jié)點(diǎn)ID以及公鑰信息。故本文通過(guò)仿真來(lái)對(duì)安全分簇算法抵御變節(jié)節(jié)點(diǎn)的攻擊效果進(jìn)行測(cè)試,實(shí)驗(yàn)參數(shù)與4.2節(jié)一致,其中公鑰門限值設(shè)定由網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目與簇頭節(jié)點(diǎn)數(shù)目決定,變節(jié)節(jié)點(diǎn)隨機(jī)選取,攻擊者位于部署中心,對(duì)變節(jié)節(jié)點(diǎn)比例從1%~80%進(jìn)行測(cè)試,每一組進(jìn)行100次測(cè)試,得到的測(cè)試結(jié)果如圖7所示。
圖7 攻擊成功率
從圖7可知,攻擊的成功率隨變節(jié)節(jié)點(diǎn)百分比增多而提高,但是網(wǎng)絡(luò)節(jié)點(diǎn)的增多對(duì)攻擊成功率影響并不多,其主要原因是簇頭節(jié)點(diǎn)數(shù)目變化不大,而門限值根據(jù)簇頭節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目設(shè)定。在變節(jié)節(jié)點(diǎn)比例低于20%時(shí),攻擊者成功率接近零,當(dāng)變節(jié)節(jié)點(diǎn)比例超過(guò)20%時(shí),成功率急劇增加,變節(jié)節(jié)點(diǎn)比例60%時(shí)接近100%,而后攻擊成功率基本均為100%。
本文針對(duì) UWSN中數(shù)據(jù)收集效率和基站離線而引發(fā)的安全問(wèn)題,提出了一種新穎的安全分簇方案,利用三角形的性質(zhì),提高了網(wǎng)絡(luò)連通度,折中了能耗和收集效率;利用分布式密鑰管理的技術(shù),解決了 UWSN中節(jié)點(diǎn)對(duì)移動(dòng)節(jié)點(diǎn)的認(rèn)證問(wèn)題。通過(guò)實(shí)驗(yàn)分析,本文提出的安全分簇方案的拓?fù)浜?jiǎn)潔且連通性好,在密度較高時(shí),趨近于三角形網(wǎng)格,驗(yàn)證了算法的收斂性;此外,實(shí)驗(yàn)表明該安全算法可以一定程度上抵御變節(jié)攻擊——當(dāng) 20%節(jié)點(diǎn)變節(jié)時(shí),敵手僅有5%的幾率攻擊成功。然而,當(dāng)40%節(jié)點(diǎn)變節(jié)時(shí),在部分情況下敵手有50%幾率攻擊成功,下一步研究將繼續(xù)提高算法容忍攻擊的能力。
[1] YAVUZ A A, NING P. Hash-based sequential aggregate and forward secure signature for unattended wireless sensor networks[A].Mobile and Ubiquitous Systems: Networking & Services[C].2009.1-10.
[2] RUAN Z, SUN X, LIANG W,et al. CADS: co-operative anti-fraud data storage scheme for unattended wireless sensor networks[J]. In-formation Technology Journal, 2010, 9(7): 1361-1368.
[3] DI P R, MANCINI L V, SORIENTE C,et al.Catch me (if you can):data survival in unattended sensor networks[A]. Proc IEEE Sixth Ann Int'l Conf Pervasive Computing and Comm[C]. 2008. 185-194.
[4] DI P R, MA D, SORIENTE C,et al. Posh: proactive co-operative self-healing in unattended wireless sensor networks[A]. Reliable Distributed Systems[C]. 2008. 185-194.
[5] LIU Z, MA J, PARK Y,et al. Data security in unattended wireless sensor networks with mobile sinks[J]. Wireless Communications and Mobile Computing, 2012, 12(13): 1131-1146.
[6] BOYINBODE O, LE H, MBOGHO A,et al. A survey on clustering algorithms for wireless sensor networks[A]. 2010 13th International Conference on Network-Based Information Systems (NBiS)[C]. 2010.358-364.
[7] LI J, MOHAPATRA P. Analytical modeling and mitigation techniques for the energy hole problem in sensor networks[J]. Pervasive and Mobile Computing, 2007, 3(3): 233-254.
[8] 韓志杰, 黃劉生, 王汝傳等. 一種基于自適應(yīng)半徑調(diào)整的無(wú)線傳感器網(wǎng)絡(luò)覆蓋控制算法[J]. 計(jì)算機(jī)研究與發(fā)展, 2010, 47(z2):69-72.HAN Z J, HUANG L S, WANG R C,et al. A coverage control algorithm for wireless sensor network based on adaptive adjustment of sensing radius[J]. Journal of Computer Research and Development,2010, 47(z2): 69-72.
[9] HEINZELMAN W R, CHANDRAKASAN A, BALAKRISHNAN H.Energy-efficient communication protocol for wireless microsensor networks[A]. Proceedings of the 33rd Annual Hawaii International Conference on System Sciences, 2000[C]. 2000.
[10] YOUNIS O, FAHMY S. HEED: a hybrid, energy-efficient, distributed clustering approach for ad hoc sensor networks[J]. IEEE Transactions on Mobile Computing, 2004, 3(4): 366-379.
[11] WANG J, YANG X, MA T,et al. An energy-efficient competitive clustering algorithm for wireless sensor networks using mobile sink[J].International Journal of Grid & Distributed Computing, 2012, 5(4):79-92.
[12] EL-SAADAWY M, SHAABAN E. Enhancing S-LEACH security for wireless sensor networks[A]. 2012 IEEE International Conference on Electro/Information Technology(EIT)[C]. 2012. 1-6.
[13] LI Y, DU L, ZHAO G,et al. A lightweight identity-based authentication protocol[A]. 2013 IEEE International Conference on Signal Processing, Communication and Computing (ICSPCC)[C]. 2013.1-4.
[14] PENG S. An ID-based multiple authentication scheme against attacks in wireless sensor networks[A]. 2012 IEEE 2nd International Conference on Cloud Computing and Intelligent Systems (CCIS)[C]. 2012.1042-1045.
[15] XUE K, MA C, HONG P,et al. A temporal-credential-based mutual authentication and key agreement scheme for wireless sensor networks[J]. Journal of Network and Computer Applications, 2013, 36(1):316-323.
[16] DELGADO-MOHATAR O, FúSTER-SABATER A, SIERRA J M. A light-weight authentication scheme for wireless sensor networks[J].Ad Hoc Networks, 2011, 9(5): 727-735.
[17] 王良民, 姜順榮, 郭淵博. 物聯(lián)網(wǎng)中移動(dòng) Sensor 節(jié)點(diǎn)漫游的組合安全認(rèn)證協(xié)議[J]. 中國(guó)科學(xué): 信息科學(xué), 2012, 42(7): 815-830.WANG L M, JIANG S R, GUO Y B. Composable-secure authentication protocol for mobile Sensor roaming in the Internet of Things[J]. Scientia Sinica(Informationis), 2012, 42(7): 815-830.
[18] SAVOLA R M. Node level security management and authentication in mobile ad hoc networks[A]. Tenth International Conference on Mobile Data Management: Systems, Services and Middleware, MDM '09[C].2009. 449-458.
[19] MA D, SORIENTE C, TSUDIK G. New adversary and new threats:security in unattended sensor networks[J]. Network, IEEE, 2009, 23(2):43-48.
[20] WANDER A S, GURA N, EBERLE H,et al. Energy analysis of public-key cryptography for wireless sensor networks[A]. Pervasive Computing and Communications, PerCom 2005, Third IEEE International Conference on[C]. 2005. 324-328
[21] 裴慶祺,沈玉龍,馬建峰. 無(wú)線傳感器網(wǎng)絡(luò)安全技術(shù)綜述[J]. 通信學(xué)報(bào), 2007, 28(8): 113-122.PEI Q Q, SHEN Y L, MA J F. Survey of wireless sensor network security techniques[J]. Journal on Communications, 2007, 28(8):113-122.
[22] KONG Y, DEND J, TATE S R. A distributed public key caching scheme in large wireless networks[A]. Global Telecommunications Conference (GLOBECOM 2010)[C]. 2010.1-5.