劉愛東,盧中武,顧佼佼
(1.海軍航空工程學院兵器科學與技術系,山東煙臺264001;2.海軍航空工程學院研究生管理大隊,山東煙臺264001)
由于傳感器節點自身資源有限,使得傳統的安全機制不再適合運用于無線傳感器網絡中[1],因此,安全路由協議成為無線傳感器網絡研究的一個熱點問題[2-3]。無線傳感器網絡路由協議受到的攻擊主要有 Sybil攻擊[4-5]、Sinkhole 攻擊[6]、Wormhole攻擊[7-8]、HELLO 泛 洪攻 擊[9]、選 擇性 轉發 等。LEACH作為無線傳感器網絡路由協議中最具代表性的一種[10],其最容易受到HELLO泛洪攻擊,而目前所研究的安全方案都不能與其很好的結合起來[11],因此本文針對HELLO泛洪的攻擊特點提出一種有效的防御方案。
HELLO泛洪攻擊方式如圖1所示,攻擊者使用能量足夠大的信號來廣播路由信息使得網絡中的每一個節點都認為攻擊者是其直接鄰居,并試圖將其信息發送給攻擊節點。

圖1 HELLO泛洪攻擊
LEACH協議在成簇階段,節點僅通過接受信號包的信號強度決定加入該簇頭組建的簇。這個過程是單向的,而攻擊者可以使用能量足夠大的信號來進行廣播,使普通節點把其選為自己的簇頭,并向其發送數據,從而破壞正常的網絡規則。
正因為HELLO泛洪攻擊是單向的,可知對付該攻擊最簡單的方法是增加鏈路的雙向認證。通常,該方法使得那些距離攻擊者較遠的節點可以避免遭受攻擊。不過,對于距離攻擊者很近的網絡節點,僅僅增加鏈路的雙向認證不足以防范HELLO泛洪攻擊。而且,當一個攻擊者具有非常靈敏的接收器時,這個對策也將失去作用。
因此,合理而有效地防御HELLO泛洪攻擊需要滿足以下兩點:①增加鏈路的雙向認證;②接收方驗證數據是否來自所宣稱的發送方,即進行身份認證。一種有效的解決方案是通信雙方使用密鑰對通信信息進行加密,通過鏈路的雙向認證和節點的身份驗證,對抗HELLO泛洪攻擊。
假設一個廣播組中包含N個節點,組成集合[1…N],EBS試圖尋找節點集合的K個子集[T1…Tk],使得當某節點t退出時,剩余節點組成的集合是 T 中 M 個集合的子集,即,如果每個子集Ti使用一個密鑰Ki,則EBS可以表示為(N,K,M)形式,N為組中節點數量,K為每個節點需要保存的密鑰數量,M為一個節點退出時,需要發送的用于更新組密鑰的消息數[12]。


表 1 EBS(8,3,2)規劃枚舉結果
表中的每一行即對應一個子集Ti,其中1表示Ti包含該節點,因為N=8,所以M9和M10兩列預留,表1 中子集為:T1=[5,6,7,8],T2=[2,3,4,8],…。可以驗證:[1…8]-[1]=T1∪T2,[1…8]-[2]=T1∪T3,…,所以在表1的方案中,簇頭節點只需保存5個密鑰就可以與簇內8個節點進行通信,并且當任何一個節點退出網絡時,簇頭只需要向相應兩個集合中的節點發送更新密鑰的消息就可以完成密鑰的更新。
方案中使用的EBS密鑰算法具有存儲量小,計算量低等優點,但是在LEACH中每輪簇頭選舉都要進行全網廣播,如果只使用EBS密鑰,則不能保證網絡中的所有節點都能夠解密廣播信息,所以在方案中增加了廣播密鑰用于在建簇初期簇頭節點與普通節點之間的數據廣播和通信,以及在新的簇密鑰生成之前的簇頭節點與基站之間的通信,是作為簇頭輪換時期的一種過渡密鑰,而EBS密鑰只作為穩定階段簇頭和簇內節點之間通信的簇密鑰。
在簇頭進行選舉之前,由基站產生下一輪將用到的廣播密鑰,將其發送給所有簇頭,簇頭收到后發送給簇內節點。
本文中使用的符號含義如表2所示:

表2 本文使用的各符號含義
在節點被投放到監測區域前,為每個節點預設一個初始密鑰Kinit,在節點部署后即進行簇頭選舉,當選的簇頭向全網廣播Hello包。

普通節點收到廣播信息后,向宣稱的簇頭節點發送一個身份驗證的請求,該請求包含節點產生的一個隨機數Rn和節點的ID。

簇頭節點在收到請求之后,給節點發送一個確認信息,該信息中包含簇頭節點的ID和隨機數Rn。

當節點收到簇頭的確認信息后,如果隨機數Rn確實為自己所產生的隨機數,且該信息中包含了簇頭節點的ID,則證明鏈路是雙向的,否則將認為該簇頭節點為入侵節點,并將該簇頭的ID告知基站。如果證明了鏈路的雙向性且進行了身份驗證,則給簇頭發送請求加入信息,信息包含自身ID和請求信息REQ。

簇頭節點收到加入信息后,將自身ID和簇內節點ID發送給基站。

基站收到簇頭發送的消息后,為簇頭生成EBS結構和通信密鑰,并發送給它。

簇頭節點在收到EBS結構后,為各節點分配簇密鑰,并發送TDMA信息給該簇的成員節點,告知其廢棄初始密鑰Kinit,使用簇密鑰進行通信。

節點收到簇密鑰之后,使用各自的密鑰與簇頭進行通信,簇頭收到傳感器節點的感知數據,進行數據融合之后,使用通信密鑰進行加密后發送給基站。
為了能夠有效的均衡能量負載,在網絡運行一段時間后,必須進行簇頭的重新選舉,由于密鑰Kinit因安全原因被廢棄,新選中的簇頭廣播Hello包時,其他節點與其沒有共享密鑰,為了解決這個問題,必須在簇頭選舉之前由基站向節點發送統一的廣播密鑰。

在廣播密鑰發送完畢后,進入下一輪的簇頭選舉,具體過程與路由協議初始化階段一樣,只是密鑰由Kinit換成了Kb。具體的簇頭選舉流程如圖2所示。

圖2 簇頭選舉流程
穩定的數據傳輸階段流程如圖3所示。

圖3 數據傳輸階段流程圖
在本文的仿真實驗中,在100 m×100 m的監測區域隨機布置100個普通節點和1個惡意節點,每個普通節點初始能量為2 J,惡意節點無能量限制,每次簇頭選舉時均向普通節點廣播Hello包,基站位置為(50 m,175 m)。由于傳感器節點自身運算消耗的能量遠小于通信能耗,所以在本文中只考慮了通信能耗。為了在NS2下實現仿真,在LEACH下的普通節點選擇簇頭時,與惡意節點之間采用一個虛擬距離,在本文中為5 m,通信時采用實際距離。簇頭和惡意節點記錄加入該簇的節點數,選擇惡意節點為簇頭的節點成為無效節點。
如圖4可知,與LEACH相比,該方案的節點生存壽命有所降低。其中第一個節點死亡時間為330 s,相比LEACH的340 s,降低了約2.9%,最后一個節點死亡為432 s,相比LEACH的447 s,降低了約3.4%。從圖中可知,加入安全機制的LEACH協議,網絡生存時間降低很少,這說明該方案的能量消耗比較低。

圖4 生存時間比較
該方案是以加強LEACH協議的安全性為主要目標提出的,針對LEACH協議最易遭到的HELLO泛洪攻擊,采取了一系列防御措施。當惡意節點轉發偵聽到的信息時,如果接收節點在原發射節點的通信范圍內,則接收節點能接收到兩個相同的信息,由此它可以判斷存在惡意節點入侵;如果接收節點不在原發射節點通信范圍內,則在雙向認證時可發現有惡意節點入侵。當普通節點發現有入侵節點時就告知基站,由基站負責找出該入侵節點并隔斷其與傳感器節點的通信,以節約能量。從圖5中可知,該方案中沒有節點受到惡意節點的影響,相比LEACH而言,該方案可以有效的防御HELLO泛洪的攻擊。

圖5 有效節點數比較
方案還具有較好的擴展性。新節點加入時,首先向基站發送加入的信息,由基站判斷是普通節點還是入侵節點,并根據判斷結果和節點的位置分配最近簇的預留簇密鑰。當預留簇密鑰數量不夠時,基站向該簇重新分配EBS機構。刪除無效的簇成員節點時,只需要使用該節點不具有的簇密鑰加密,向其余節點發送更新密鑰的消息即可完成,而刪除無效的簇頭時,由基站指定該簇中能量最高的節點成為新簇頭,并將該簇的簇密鑰和通信密鑰發送給該簇頭,一段時間后,待網絡啟動簇頭更新程序,重新回到正常狀態。
本文結合LEACH協議最容易受到的安全威脅,運用現有的密鑰管理機制,提出了一種LEACH防御HELLO泛洪攻擊的有效方案。該方案在LEACH的基礎上添加了鏈路雙向性認證和節點身份認證機制,雖然比LEACH多損耗了一部分能量,但是能對HELLO泛洪攻擊起到很好的防御作用。
[1] 陳驍,郭達偉,張國慶,等.無線傳感器網絡單播安全協議框架研究[J].傳感技術學報,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]吳臻,金心宇.無線傳感器網絡的LEACH算法的改進[J].傳感技術學報,2006,19(1):34-36.
[11]丁漢成,楊庚,李斌.一種動態分簇無線傳感器網絡密鑰管理方案[J].計算機工程與應用,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.