李云+李道全+常來花
摘要:針對無線傳感網(wǎng)絡(luò)低功耗分簇型路由算法LEACH易遭受HELLO flood等安全攻擊的問題,提出一種輕量級的基于接收信號(hào)強(qiáng)度值的HELLO flood攻擊檢測算法。在充分分析無線傳感網(wǎng)絡(luò)自身特點(diǎn)與LEACH算法原理的基礎(chǔ)上,無需獲得距離等輔助信息或多次發(fā)送廣播包輔助判斷,采用信號(hào)強(qiáng)度閾值即可直接檢測HELLO flood攻擊。仿真實(shí)驗(yàn)證明,算法可以有效檢測并隔離HELLO flood惡意攻擊節(jié)點(diǎn),保證網(wǎng)絡(luò)正常運(yùn)行,同時(shí)算法帶來的額外能量消耗極低,適宜于低功耗型無線傳感網(wǎng)絡(luò)環(huán)境。
關(guān)鍵詞:無線傳感網(wǎng)絡(luò); HELLO flood攻擊;接收信號(hào)強(qiáng)度值;通信距離;測試數(shù)據(jù)包
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)27-0034-03
1 概述
無線傳感網(wǎng)絡(luò)(Wireless Sensor Network,WSN工作在開放的無線傳輸環(huán)境下,信號(hào)易被偵聽和破壞,容易收到:節(jié)點(diǎn)捕獲、信息竊聽、信息完整性攻擊、DoS攻擊、重放攻擊、虛假路由攻擊、選擇性轉(zhuǎn)發(fā)、蟲洞攻擊、黑洞攻擊、Sybil攻擊、HELLO flood攻擊等安全威脅。同時(shí),WSN中節(jié)點(diǎn)的計(jì)算、存儲(chǔ)、能量等資源嚴(yán)重受限,拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)變化,使傳統(tǒng)的網(wǎng)絡(luò)安全技術(shù)難以直接應(yīng)用到WSN中。安全問題已成為WSN目前研究的重點(diǎn)與難點(diǎn)。
其中HELLO flood攻擊可以破壞LEACH等分簇型路由協(xié)議的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并與信息完整性攻擊、重放攻擊、選擇性轉(zhuǎn)發(fā)攻擊、黑洞攻擊等手段結(jié)合帶來更大危害。本文針對LEACH算法中可能遭受的HELLO flood攻擊情況,提出一種基于接收信號(hào)強(qiáng)度(Received Signal Strength Indication,RSSI)的輕量級攻擊檢測算法——基于LEACH的HELLO flood攻擊檢測算法,實(shí)驗(yàn)證明該算法可以以較低能耗代價(jià)檢測出LEACH算法中的HELLO flood攻擊。
2 相關(guān)研究
2.1 LEACH算法中的HELLO flood攻擊
HELLO flood攻擊是通過惡意節(jié)點(diǎn)以足夠大的功率發(fā)送虛假路由等信息給大部分甚至所有WSN節(jié)點(diǎn),使其誤以為該惡意節(jié)點(diǎn)為自己的最佳下一跳路由節(jié)點(diǎn),造成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的混亂。
LEACH算法中攻擊者往往在其簇建立階段高功率發(fā)送虛假簇頭信息,誘導(dǎo)大部分甚至全部普通節(jié)點(diǎn)以其為簇頭,從而收集數(shù)據(jù)。因LEACH算法的簇建立過程為單向的,缺乏必要的雙向認(rèn)證機(jī)制,導(dǎo)致即使節(jié)點(diǎn)錯(cuò)誤地接入“惡意簇頭”也無法發(fā)現(xiàn),破壞正常建網(wǎng)規(guī)則。惡意節(jié)點(diǎn)得以肆意截獲網(wǎng)絡(luò)數(shù)據(jù),并結(jié)合其他攻擊手段對網(wǎng)絡(luò)造成破壞,如,信息竊取、數(shù)據(jù)丟棄、數(shù)據(jù)篡改等。
2.2 研究現(xiàn)狀分析
目前對于HELLO flood攻擊的防范措施大致可分為基于密碼的和非密碼的兩大類。其中基于密碼的方法通常需要較多的存儲(chǔ)空間存放密鑰、消耗較高的能量進(jìn)行密碼計(jì)算與傳輸、需要較多時(shí)間進(jìn)行密鑰周期性變更等。相對而言基于非密碼的攻擊檢測方式大多以接收信號(hào)強(qiáng)度值RSSI為判斷依據(jù),對資源的需求與消耗更少。
文獻(xiàn)[1]通過簇頭兩次發(fā)送帶有其剩余能量信息的廣播包,普通節(jié)點(diǎn)接比較兩次接收信號(hào)的剩余能量值與RSSI的差異,若兩差值均超過異常判斷閾,則說明該簇頭為HELLO flood惡意攻擊節(jié)點(diǎn)。該算法在每輪簇建立過程中都需要簇頭額外發(fā)送廣播數(shù)據(jù)包消耗較多能量,且延長了成簇時(shí)間帶來一定網(wǎng)絡(luò)時(shí)延。
文獻(xiàn)[2]中節(jié)點(diǎn)檢測接收到簇頭HELLO廣播包的RSSI,并將之與按距離計(jì)算出的值比較,相同則為合法簇頭,差值過大為惡意節(jié)點(diǎn),介于兩者之間則發(fā)送一個(gè)測試包判斷。該算法需要知道兩節(jié)點(diǎn)間距離,而這在實(shí)際應(yīng)用中是難以直接得到的,算法具有一定的局限性。
文獻(xiàn)[3]中簇頭將自己的坐標(biāo)包含到HELLO廣播包內(nèi)一起發(fā)送,普通節(jié)點(diǎn)據(jù)此計(jì)算距離閾值與RSSI閾值,若實(shí)際值均超過二者,則可判定為惡意攻擊節(jié)點(diǎn)。該算法需要每個(gè)節(jié)點(diǎn)知道自己的坐標(biāo),而這在實(shí)際應(yīng)用往往中難以準(zhǔn)確計(jì)量,尤其是在大規(guī)模、環(huán)境復(fù)雜的WSN中。
針對以上算法的優(yōu)缺點(diǎn),本文提出一種基于LEACH的HELLO flood攻擊檢測算法——LEACH-HADA,該算法根據(jù)接收廣播包的RSSI值即可直接判斷,有效節(jié)省能量。
3 LEACH-HADA算法
LEACH算法每輪中簇頭與普通節(jié)點(diǎn)間的交互過程如圖2所示:
如圖1所示,LEACH算法中各簇頭在發(fā)送HELLO廣播包時(shí)采用相同功率,則WSN中節(jié)點(diǎn)接收到合法簇頭數(shù)據(jù)包的RSSI值必定有一個(gè)上限。而HELLO flood攻擊的目的是讓盡可能多的普通節(jié)點(diǎn)接收到廣播信息并引其加入,發(fā)射功率需要足夠大且越大越好,網(wǎng)絡(luò)中必定會(huì)有節(jié)點(diǎn)接收到的RSSI值遠(yuǎn)超過合法簇頭的。基于此分析,本文提出一種基于RSSI的輕量級HELLO flood攻擊檢測算法LEACH-HADA (HELLO flood Attack Detection Algorithm Based on LEACH Protocol)。
當(dāng)普通節(jié)點(diǎn)在接收到各簇頭發(fā)送的HELLO數(shù)據(jù)包時(shí),首先檢測其信號(hào)強(qiáng)度值[RSSIi]([i]為簇頭序號(hào)),若[RSSIi≤RSSIMAX]則簇頭[i]合法;若[RSSIi>RSSIMAX]則簇頭[i]異常,其數(shù)據(jù)包發(fā)送功率過高,為HELLO flood惡意攻擊節(jié)點(diǎn)。隨后該普通節(jié)點(diǎn)向全網(wǎng)廣播發(fā)送惡意節(jié)點(diǎn)ID。其余普通節(jié)點(diǎn)若在簇建立階段收到兩個(gè)以上廣播消息,則將該ID號(hào)列入黑名單,將該節(jié)點(diǎn)隔離。后續(xù)的LEACH輪次中,在簇建立階段若再次收到該惡意節(jié)點(diǎn)ID發(fā)送的廣播包,節(jié)點(diǎn)可以直接憑借黑名單識(shí)別該惡意節(jié)點(diǎn),并拒絕與之通信。
WSN中往往采用大量低成本傳感器節(jié)點(diǎn)以較大密度部署于檢測區(qū)域內(nèi),若傳感器節(jié)點(diǎn)距離HELLO flood惡意攻擊節(jié)點(diǎn)過遠(yuǎn),HELLO廣播包衰減后信號(hào)接收強(qiáng)度值RSSI可能小于[RSSIMAX]而無法判斷,但鑒于WSN的高密度必定有多個(gè)距惡意節(jié)點(diǎn)較近的傳感器節(jié)點(diǎn)存在,一旦檢測到RSSI值高于[RSSIMAX]即向全網(wǎng)直接廣播或以多跳形式廣播,保證全網(wǎng)節(jié)點(diǎn)都能接收到惡意節(jié)點(diǎn)信息,從而有效避免遭受HELLO flood攻擊。endprint
4 實(shí)驗(yàn)結(jié)果與分析
為驗(yàn)證本算法性能,本文采用MATLAB仿真軟件對LEACH算法、LEACH-HADA算法在表1所述參數(shù)下進(jìn)行實(shí)驗(yàn)仿真,實(shí)驗(yàn)結(jié)果及相應(yīng)分析如下。
從圖2可以看出當(dāng)遭受HELLO flood攻擊時(shí),LEACH算法中除5個(gè)簇頭外所有普通節(jié)點(diǎn)均被更高功率發(fā)送HELLO廣播包的惡意節(jié)點(diǎn)截獲,而LEACH-HADA算法則可以有效防止HELLO flood攻擊,網(wǎng)絡(luò)可以第一時(shí)間發(fā)現(xiàn)惡意節(jié)點(diǎn)并通過廣播手段使全網(wǎng)所有節(jié)點(diǎn)知道其存在,將其隔離,進(jìn)而網(wǎng)絡(luò)可以正常組網(wǎng)。正常進(jìn)行簇建立,惡意節(jié)點(diǎn)不會(huì)對WSN數(shù)據(jù)采集等工作產(chǎn)生任何影響。
(2) HELLO flood攻擊下基站接收數(shù)據(jù)對比
從圖3顯示在LEACH與LEACH-HADA兩種算法運(yùn)行到第1500輪時(shí)WSN遭遇HELLO flood攻擊情況下,WSN基站正常接收數(shù)據(jù)包數(shù)量的對比。從圖中可以明顯看出,當(dāng)LEACH遭遇HELLO flood攻擊后完全無法抵抗,幾乎所有節(jié)點(diǎn)采集的數(shù)據(jù)均被非法丟棄,基站只能接收到少數(shù)幾個(gè)簇頭發(fā)送的數(shù)據(jù)。而LEACH-HADA算法卻可以完全隔離HELLO flood攻擊,惡意節(jié)點(diǎn)的入侵機(jī)會(huì)對網(wǎng)絡(luò)正常接收數(shù)據(jù)未造成任何影響。
說明:該模擬實(shí)驗(yàn)中HELLO flood攻擊只針對普通節(jié)點(diǎn),簇頭可將自己采集的數(shù)據(jù)正常發(fā)往基站。LEACH算法中1500-2500輪接收到的數(shù)據(jù)均為簇頭數(shù)據(jù)
(3) HELLO flood攻擊下能耗對比
圖4對比了未受HELLO flood攻擊情況下LEACH算法正常工作的網(wǎng)絡(luò)節(jié)點(diǎn)總能量變化與在LEACH-HADA算法工作下第1500輪受HELLO flood攻擊的網(wǎng)絡(luò)節(jié)點(diǎn)總能量變化。圖4顯示,受攻擊后LEACH-HADA算法網(wǎng)絡(luò)節(jié)點(diǎn)總能量較正常LEACH協(xié)議下的能量降低量非常小,即以極低的能耗代價(jià)完成HELLO flood攻擊檢測與隔離。
5 總結(jié)
本文分析WSN安全問題的基礎(chǔ)上,針對典型的分簇算法LEACH易遭受HELLO flood攻擊的問題,克服傳統(tǒng)非密碼攻擊檢測算法需要提前得知網(wǎng)絡(luò)中節(jié)點(diǎn)間距離、坐標(biāo)等難以獲取的物理量或需要發(fā)送多個(gè)廣播數(shù)據(jù)包判斷的缺陷,提出一種輕量級的HELLO flood攻擊檢測算法LEACH-HADA。仿真結(jié)果表明,算法能夠完全識(shí)別并隔離HELLO flood攻擊,保證網(wǎng)絡(luò)數(shù)據(jù)的正常傳輸,且該檢測HELLO flood攻擊過程能耗極低,極適用于能源嚴(yán)重受限的WSN應(yīng)用。
參考文獻(xiàn):
[1] 王江濤,楊庚,孫源,等.攻擊檢測安全LEACH路由協(xié)議[J].應(yīng)用科學(xué)學(xué)報(bào),2007,25(6):557-563.
[2] Virendra Pal Singh, Aishwarya S Anand Ukey, Sweta Jain. Signal Strength based HELLO Flood Attack Detection and Prevention in Wireless Sensor Networks[J].International Journal of Computer Applications (0975 — 8887), 2013, 62.
[3] Shikha Magotra, Krishan Kumar. Detection of HELLO flood Attack on LEACH Protocol[J]. Advance Computing Conference (IACC), 2014 IEEE International: 193-198.endprint