劉愛東,盧中武,顧佼佼
(1.海軍航空工程學(xué)院兵器科學(xué)與技術(shù)系,山東煙臺264001;2.海軍航空工程學(xué)院研究生管理大隊,山東煙臺264001)
由于傳感器節(jié)點自身資源有限,使得傳統(tǒng)的安全機制不再適合運用于無線傳感器網(wǎng)絡(luò)中[1],因此,安全路由協(xié)議成為無線傳感器網(wǎng)絡(luò)研究的一個熱點問題[2-3]。無線傳感器網(wǎng)絡(luò)路由協(xié)議受到的攻擊主要有 Sybil攻擊[4-5]、Sinkhole 攻擊[6]、Wormhole攻擊[7-8]、HELLO 泛 洪攻 擊[9]、選 擇性 轉(zhuǎn)發(fā) 等。LEACH作為無線傳感器網(wǎng)絡(luò)路由協(xié)議中最具代表性的一種[10],其最容易受到HELLO泛洪攻擊,而目前所研究的安全方案都不能與其很好的結(jié)合起來[11],因此本文針對HELLO泛洪的攻擊特點提出一種有效的防御方案。
HELLO泛洪攻擊方式如圖1所示,攻擊者使用能量足夠大的信號來廣播路由信息使得網(wǎng)絡(luò)中的每一個節(jié)點都認為攻擊者是其直接鄰居,并試圖將其信息發(fā)送給攻擊節(jié)點。
圖1 HELLO泛洪攻擊
LEACH協(xié)議在成簇階段,節(jié)點僅通過接受信號包的信號強度決定加入該簇頭組建的簇。這個過程是單向的,而攻擊者可以使用能量足夠大的信號來進行廣播,使普通節(jié)點把其選為自己的簇頭,并向其發(fā)送數(shù)據(jù),從而破壞正常的網(wǎng)絡(luò)規(guī)則。
正因為HELLO泛洪攻擊是單向的,可知對付該攻擊最簡單的方法是增加鏈路的雙向認證。通常,該方法使得那些距離攻擊者較遠的節(jié)點可以避免遭受攻擊。不過,對于距離攻擊者很近的網(wǎng)絡(luò)節(jié)點,僅僅增加鏈路的雙向認證不足以防范HELLO泛洪攻擊。而且,當(dāng)一個攻擊者具有非常靈敏的接收器時,這個對策也將失去作用。
因此,合理而有效地防御HELLO泛洪攻擊需要滿足以下兩點:①增加鏈路的雙向認證;②接收方驗證數(shù)據(jù)是否來自所宣稱的發(fā)送方,即進行身份認證。一種有效的解決方案是通信雙方使用密鑰對通信信息進行加密,通過鏈路的雙向認證和節(jié)點的身份驗證,對抗HELLO泛洪攻擊。
假設(shè)一個廣播組中包含N個節(jié)點,組成集合[1…N],EBS試圖尋找節(jié)點集合的K個子集[T1…Tk],使得當(dāng)某節(jié)點t退出時,剩余節(jié)點組成的集合是 T 中 M 個集合的子集,即,如果每個子集Ti使用一個密鑰Ki,則EBS可以表示為(N,K,M)形式,N為組中節(jié)點數(shù)量,K為每個節(jié)點需要保存的密鑰數(shù)量,M為一個節(jié)點退出時,需要發(fā)送的用于更新組密鑰的消息數(shù)[12]。
表 1 EBS(8,3,2)規(guī)劃枚舉結(jié)果
表中的每一行即對應(yīng)一個子集Ti,其中1表示Ti包含該節(jié)點,因為N=8,所以M9和M10兩列預(yù)留,表1 中子集為:T1=[5,6,7,8],T2=[2,3,4,8],…。可以驗證:[1…8]-[1]=T1∪T2,[1…8]-[2]=T1∪T3,…,所以在表1的方案中,簇頭節(jié)點只需保存5個密鑰就可以與簇內(nèi)8個節(jié)點進行通信,并且當(dāng)任何一個節(jié)點退出網(wǎng)絡(luò)時,簇頭只需要向相應(yīng)兩個集合中的節(jié)點發(fā)送更新密鑰的消息就可以完成密鑰的更新。
方案中使用的EBS密鑰算法具有存儲量小,計算量低等優(yōu)點,但是在LEACH中每輪簇頭選舉都要進行全網(wǎng)廣播,如果只使用EBS密鑰,則不能保證網(wǎng)絡(luò)中的所有節(jié)點都能夠解密廣播信息,所以在方案中增加了廣播密鑰用于在建簇初期簇頭節(jié)點與普通節(jié)點之間的數(shù)據(jù)廣播和通信,以及在新的簇密鑰生成之前的簇頭節(jié)點與基站之間的通信,是作為簇頭輪換時期的一種過渡密鑰,而EBS密鑰只作為穩(wěn)定階段簇頭和簇內(nèi)節(jié)點之間通信的簇密鑰。
在簇頭進行選舉之前,由基站產(chǎn)生下一輪將用到的廣播密鑰,將其發(fā)送給所有簇頭,簇頭收到后發(fā)送給簇內(nèi)節(jié)點。
本文中使用的符號含義如表2所示:
表2 本文使用的各符號含義
在節(jié)點被投放到監(jiān)測區(qū)域前,為每個節(jié)點預(yù)設(shè)一個初始密鑰Kinit,在節(jié)點部署后即進行簇頭選舉,當(dāng)選的簇頭向全網(wǎng)廣播Hello包。
普通節(jié)點收到廣播信息后,向宣稱的簇頭節(jié)點發(fā)送一個身份驗證的請求,該請求包含節(jié)點產(chǎn)生的一個隨機數(shù)Rn和節(jié)點的ID。
簇頭節(jié)點在收到請求之后,給節(jié)點發(fā)送一個確認信息,該信息中包含簇頭節(jié)點的ID和隨機數(shù)Rn。
當(dāng)節(jié)點收到簇頭的確認信息后,如果隨機數(shù)Rn確實為自己所產(chǎn)生的隨機數(shù),且該信息中包含了簇頭節(jié)點的ID,則證明鏈路是雙向的,否則將認為該簇頭節(jié)點為入侵節(jié)點,并將該簇頭的ID告知基站。如果證明了鏈路的雙向性且進行了身份驗證,則給簇頭發(fā)送請求加入信息,信息包含自身ID和請求信息REQ。
簇頭節(jié)點收到加入信息后,將自身ID和簇內(nèi)節(jié)點ID發(fā)送給基站。
基站收到簇頭發(fā)送的消息后,為簇頭生成EBS結(jié)構(gòu)和通信密鑰,并發(fā)送給它。
簇頭節(jié)點在收到EBS結(jié)構(gòu)后,為各節(jié)點分配簇密鑰,并發(fā)送TDMA信息給該簇的成員節(jié)點,告知其廢棄初始密鑰Kinit,使用簇密鑰進行通信。
節(jié)點收到簇密鑰之后,使用各自的密鑰與簇頭進行通信,簇頭收到傳感器節(jié)點的感知數(shù)據(jù),進行數(shù)據(jù)融合之后,使用通信密鑰進行加密后發(fā)送給基站。
為了能夠有效的均衡能量負載,在網(wǎng)絡(luò)運行一段時間后,必須進行簇頭的重新選舉,由于密鑰Kinit因安全原因被廢棄,新選中的簇頭廣播Hello包時,其他節(jié)點與其沒有共享密鑰,為了解決這個問題,必須在簇頭選舉之前由基站向節(jié)點發(fā)送統(tǒng)一的廣播密鑰。
在廣播密鑰發(fā)送完畢后,進入下一輪的簇頭選舉,具體過程與路由協(xié)議初始化階段一樣,只是密鑰由Kinit換成了Kb。具體的簇頭選舉流程如圖2所示。
圖2 簇頭選舉流程
穩(wěn)定的數(shù)據(jù)傳輸階段流程如圖3所示。
圖3 數(shù)據(jù)傳輸階段流程圖
在本文的仿真實驗中,在100 m×100 m的監(jiān)測區(qū)域隨機布置100個普通節(jié)點和1個惡意節(jié)點,每個普通節(jié)點初始能量為2 J,惡意節(jié)點無能量限制,每次簇頭選舉時均向普通節(jié)點廣播Hello包,基站位置為(50 m,175 m)。由于傳感器節(jié)點自身運算消耗的能量遠小于通信能耗,所以在本文中只考慮了通信能耗。為了在NS2下實現(xiàn)仿真,在LEACH下的普通節(jié)點選擇簇頭時,與惡意節(jié)點之間采用一個虛擬距離,在本文中為5 m,通信時采用實際距離。簇頭和惡意節(jié)點記錄加入該簇的節(jié)點數(shù),選擇惡意節(jié)點為簇頭的節(jié)點成為無效節(jié)點。
如圖4可知,與LEACH相比,該方案的節(jié)點生存壽命有所降低。其中第一個節(jié)點死亡時間為330 s,相比LEACH的340 s,降低了約2.9%,最后一個節(jié)點死亡為432 s,相比LEACH的447 s,降低了約3.4%。從圖中可知,加入安全機制的LEACH協(xié)議,網(wǎng)絡(luò)生存時間降低很少,這說明該方案的能量消耗比較低。
圖4 生存時間比較
該方案是以加強LEACH協(xié)議的安全性為主要目標(biāo)提出的,針對LEACH協(xié)議最易遭到的HELLO泛洪攻擊,采取了一系列防御措施。當(dāng)惡意節(jié)點轉(zhuǎn)發(fā)偵聽到的信息時,如果接收節(jié)點在原發(fā)射節(jié)點的通信范圍內(nèi),則接收節(jié)點能接收到兩個相同的信息,由此它可以判斷存在惡意節(jié)點入侵;如果接收節(jié)點不在原發(fā)射節(jié)點通信范圍內(nèi),則在雙向認證時可發(fā)現(xiàn)有惡意節(jié)點入侵。當(dāng)普通節(jié)點發(fā)現(xiàn)有入侵節(jié)點時就告知基站,由基站負責(zé)找出該入侵節(jié)點并隔斷其與傳感器節(jié)點的通信,以節(jié)約能量。從圖5中可知,該方案中沒有節(jié)點受到惡意節(jié)點的影響,相比LEACH而言,該方案可以有效的防御HELLO泛洪的攻擊。
圖5 有效節(jié)點數(shù)比較
方案還具有較好的擴展性。新節(jié)點加入時,首先向基站發(fā)送加入的信息,由基站判斷是普通節(jié)點還是入侵節(jié)點,并根據(jù)判斷結(jié)果和節(jié)點的位置分配最近簇的預(yù)留簇密鑰。當(dāng)預(yù)留簇密鑰數(shù)量不夠時,基站向該簇重新分配EBS機構(gòu)。刪除無效的簇成員節(jié)點時,只需要使用該節(jié)點不具有的簇密鑰加密,向其余節(jié)點發(fā)送更新密鑰的消息即可完成,而刪除無效的簇頭時,由基站指定該簇中能量最高的節(jié)點成為新簇頭,并將該簇的簇密鑰和通信密鑰發(fā)送給該簇頭,一段時間后,待網(wǎng)絡(luò)啟動簇頭更新程序,重新回到正常狀態(tài)。
本文結(jié)合LEACH協(xié)議最容易受到的安全威脅,運用現(xiàn)有的密鑰管理機制,提出了一種LEACH防御HELLO泛洪攻擊的有效方案。該方案在LEACH的基礎(chǔ)上添加了鏈路雙向性認證和節(jié)點身份認證機制,雖然比LEACH多損耗了一部分能量,但是能對HELLO泛洪攻擊起到很好的防御作用。
[1] 陳驍,郭達偉,張國慶,等.無線傳感器網(wǎng)絡(luò)單播安全協(xié)議框架研究[J].傳感技術(shù)學(xué)報,2010,23(1):128-132.
[2] Tashtoushy M,Okourm A.Fuzzy Self-Clustering for Wireless Sensor Networks[C]//Proceedings of the 2008 IEEE/IF IP International Conference on Embedded and Ubiquitous Computing.2008:223-229.
[3] Soro S,Heinzelman W B.Cluster Head Election Techniques for Coverage Preservation in Wireless Sensor Networks[J].Ad Hoc Networks,2009,7(5):955-972.
[4] Newsome J,Shi E,Song D,et al.The Sybil Attack in Sensor Networks:Analysis & Defenses[C]//IPSN,2004:259-268.
[5] Murat D,Youngwhan S.An RSSI-Based Scheme for Sybil Attack Detection in Wireless Sensor Networks[C]//Proceedings of the 2006 International Symposium on a World of Wireless,Mobile and Multimedia Networks(WoWMoM’06),New York USA,June 2006:184-188.
[6] Edith C H N,Liu Jiangchuan,Michael R.LYU:on the Intruder Detection for Sinkhole Attack in Wireless Sensor Networks,Communications[C]//2006 IEEE International Conference,Turkey,June 2006:468-474.
[7] Hu Y C,Perrig A,Johnson D B.Packet Leashes:a Defense Against Wormhole Attacks in Wireless Networks,Twenty-Second Annual Joint Conference of the IEEE Computer and Communications Societies[C]//IEEE INFOCOM 2003,3(30):1976-1986.
[8] Jeng Bingchiang,Chen Chiamei,Hou Yungtsung.Distributed Detection of Wormholes and Critical Links in Wireless Sensor Networks[C]//Intelligent Information Hiding and Multimedia Signal Processing,Third International Conference,Kaohsiung Taiwan,Nov 2007:521-525.
[9] Karlof C,Wagner D.Secure Routing in Wireless Sensor Networks:Attacks and Counter-Measures[C]//First IEEE Intl.Workshop on Sensor Network Protocols and Applications(SNPA2003).Anchorage,Ak,USA:IEEE computer Society,2003,113-127.
[10]吳臻,金心宇.無線傳感器網(wǎng)絡(luò)的LEACH算法的改進[J].傳感技術(shù)學(xué)報,2006,19(1):34-36.
[11]丁漢成,楊庚,李斌.一種動態(tài)分簇?zé)o線傳感器網(wǎng)絡(luò)密鑰管理方案[J].計算機工程與應(yīng)用,2008,44(3):157-160.
[12] Eltoweissy M,HeydariH,MoralesL,etal.Combinatorial Optimization of Key Management in Group Communications[J].Journal of Network and Systems Management,2004,12(1):33-50.