馬 豹,王慧芳
(西安電子科技大學(xué)數(shù)學(xué)與統(tǒng)計學(xué)院,陜西西安 710126)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)[1]是一組傳感器通過自組織方式構(gòu)成的網(wǎng)絡(luò),其目的是協(xié)同感知、可靠傳輸和智能處理感知到的信息。路由協(xié)議負(fù)責(zé)為數(shù)據(jù)傳輸選擇最優(yōu)路徑,將數(shù)據(jù)分組從源節(jié)點通過網(wǎng)絡(luò)轉(zhuǎn)發(fā)到目的節(jié)點。安全路由是無線傳感器網(wǎng)絡(luò)安全運行的重要環(huán)節(jié)。由于無線傳感器網(wǎng)絡(luò)資源受限,導(dǎo)致路由協(xié)議經(jīng)常受到虛假路由信息、選擇性轉(zhuǎn)發(fā)、女巫、蠕蟲洞、假冒應(yīng)答及關(guān)鍵點攻擊等[2]。傳統(tǒng)的安全機制只能抵抗外部攻擊,無法解決開放環(huán)境下節(jié)點被俘獲所帶來的內(nèi)部攻擊問題[3]。信任評估機制作為傳統(tǒng)安全機制的有效補充,能有效解決內(nèi)部攻擊問題,建立安全可信的數(shù)據(jù)傳輸關(guān)系。
Crosby等人提出了基于信任管理機制的簇頭選舉算法,采用冗余簇頭和挑戰(zhàn)應(yīng)答措施,保證正常節(jié)點當(dāng)選為簇頭,網(wǎng)絡(luò)安全有效地運行[4]。Zhan等人提出了基于信任值的平面路由協(xié)議TARF,綜合信任值和能量進行路由選擇,阻止惡意節(jié)點重放路由信息而誤導(dǎo)網(wǎng)絡(luò)運行[5]。Safa等人提出了一種基于節(jié)點信任值的層次路由算法CBTRP,節(jié)點間根據(jù)信任值組織成簇結(jié)構(gòu),通過定向擴散將數(shù)據(jù)直接發(fā)送至可靠簇頭,保障數(shù)據(jù)傳輸?shù)陌踩?]。Song等人將信任值引入LEACH協(xié)議,在分布式信任評估機制的基礎(chǔ)上,選擇信任值最高的候選簇頭為下一跳路由,阻止惡意節(jié)點充當(dāng)簇頭,提高數(shù)據(jù)傳輸?shù)男剩?]。Wang等人提出了基于信任值改進的LEACH算法,利用信任值優(yōu)化簇頭節(jié)點,識別惡意節(jié)點,增強了網(wǎng)絡(luò)的安全性[8]。
以上方法主要針對某一種網(wǎng)絡(luò)攻擊,缺乏對信任值的整體考慮,忽視了信任路由本身可能存在的問題,如信任計算較為復(fù)雜、惡意節(jié)點難以識別、關(guān)鍵節(jié)點易被攻擊等。為此,本文提出了一種基于節(jié)點信任值的安全層次路由(A Security Hierarchical Routing Based on Node Trust Value,SHRT)算法。SHRT算法考慮了影響信任的多種因素,結(jié)合節(jié)點信任值、節(jié)點度和距離,利用局部最優(yōu)原則,選擇可信簇頭,建立安全可靠的層次路由。
假設(shè)N個傳感器節(jié)點隨機部署在L×L大小的平面內(nèi),節(jié)點周期性采集數(shù)據(jù)并發(fā)送到SINK節(jié)點。為了便于模型分析和描述,對網(wǎng)絡(luò)作如下假設(shè):(1)所有節(jié)點部署之后不再移動,具有唯一標(biāo)識ID。(2)所有節(jié)點是同構(gòu)的,具有相同的初始能量,并且不能補充。(3)每個節(jié)點的通信半徑相同。(4)節(jié)點已知網(wǎng)絡(luò)中所有鄰居節(jié)點位置、剩余能量以及SINK位置。(5)SINK節(jié)點位于區(qū)域中心,具有足夠能量和強大計算能力。
定義1 鄰居集:在二維平面上與節(jié)點i的距離小于i的通信半徑的所有節(jié)點的集合為i的鄰居集。設(shè)的通信半徑為R;以N(i)表示i的鄰居集,則有N(i)=
定義2 節(jié)點度:節(jié)點鄰居集中節(jié)點的個數(shù)。假設(shè)i的鄰居集用N(i)表示;則節(jié)點i的度為 N(i )。
定義3 節(jié)點i對節(jié)點j的信任值Rij:由節(jié)點i對節(jié)點j的直接信任值DRij和節(jié)點i對節(jié)點j的間接信任值IRij得到,用[0,1]間的任意實數(shù)表示;1表示完全可信;0表示完全不可信。
信任取決于主體對客體的觀察以及第3方的推薦。針對無線傳感器網(wǎng)絡(luò)自組織多跳的特點,需要建立無核心節(jié)點的信任評估機制,鄰居節(jié)點間互相進行行為監(jiān)控,根據(jù)主體對客體的直接和間接信任值,得到綜合信任值。
假設(shè)節(jié)點和節(jié)點互為鄰居節(jié)點,節(jié)點對節(jié)點進行信任評估,從通信狀況、數(shù)據(jù)內(nèi)容和剩余能量等方面,對影響信任值的各種因素進行定量分析。
3.1.1 通信行為因子
在WSNS中,惡意節(jié)點可能會故意丟棄、篡改數(shù)據(jù)包,而自私節(jié)點可能會為了節(jié)省能量而丟棄需要轉(zhuǎn)發(fā)的數(shù)據(jù)包。通過觀察節(jié)點的通信行為來識別惡意節(jié)點或自私節(jié)點,是信任管理的常用手段。通信行為因子RC(t)的計算如式(1)ij
其中,sij(fij)表示在[t,Δt,t]時段內(nèi)節(jié)點 i對節(jié)點 j通信行為正常(異常)次數(shù)的統(tǒng)計結(jié)果。
3.1.2 數(shù)據(jù)行為因子
在無線傳感器網(wǎng)絡(luò)運行時,涉及數(shù)據(jù)安全攻擊有多種,為了計算簡單但還能保證數(shù)據(jù)安全有效地傳輸,從兩個重要方面考慮數(shù)據(jù)行為。
(1)新鮮性因子RDfij(t)。為防止惡意節(jié)點發(fā)動重放攻擊,需對節(jié)點發(fā)送數(shù)據(jù)內(nèi)容的新鮮性進行分析。新鮮性因子的計算如式(2)
其中,在[t- Δt,t]時段內(nèi),nfij為內(nèi)容重復(fù)的數(shù)據(jù)包數(shù)量,而fpij為新鮮的數(shù)據(jù)包數(shù)量。
(2)一致性因子RDcij。為防止惡意節(jié)點偽造數(shù)據(jù)包,需對鄰節(jié)點發(fā)送數(shù)據(jù)進行一致性分析。一致性因子的計算如式(3)
其中,在[t- Δt,t]時段內(nèi),cpij為一致數(shù)據(jù)包的數(shù)量;ncpij為不一致數(shù)據(jù)包的數(shù)量。綜合數(shù)據(jù)的新鮮性和一致性兩方面,數(shù)據(jù)行為因子的計算如式(4)
其中,α1,α2分別表示數(shù)據(jù)新鮮性和一致性在數(shù)據(jù)行為方面的加權(quán)系數(shù),且 α1,α2∈[0,1],α1+ α2=1,若針對重傳攻擊取α1>0.5,若針對篡改攻擊α2>0.5。
3.1.3 能量因子
能量因子REj:傳感器網(wǎng)絡(luò)中節(jié)點的資源受限,而信任值較高的節(jié)點有可能會承擔(dān)更多的任務(wù),導(dǎo)致節(jié)點能量消耗過快[9]。為減少低能量節(jié)點的參與,延長網(wǎng)絡(luò)生命周期,將剩余能量作為信任值的參考因素,能量因子的計算如式(5)
其中,Ej為節(jié)點的剩余能量;Esr是節(jié)點為了發(fā)送和接收數(shù)據(jù)包所需的量;Ecp為節(jié)點j為了收集和處理數(shù)據(jù)包所需的能量;β為動態(tài)調(diào)節(jié)因子,θi用來將能量因子歸一化處理。為預(yù)設(shè)的閾值,常取為2,若比值低于該閾值,則該節(jié)點的能量因子取值為0,阻止低能量節(jié)點當(dāng)選簇頭。
3.1.4 時間因子
時間因子η:由于節(jié)點信任值是歷史信任紀(jì)錄和當(dāng)前觀測信息的綜合,加入歷史因子可減少偶然因素對評估造成的影響,但需要根據(jù)具體情況,制定不同的時間因子,常取為0.5。
根據(jù)具體應(yīng)用需求,評估節(jié)點i監(jiān)測部分或全部信任因子,采用加權(quán)平均的方法計算評估客體j的直接信任值DRij(t)。直接信任值的計算如式(6)
式中,ω1,ω2,ω3為加權(quán)系數(shù),根據(jù)具體應(yīng)用可針對性調(diào)整,例如在安全數(shù)據(jù)的應(yīng)用時取ω2>0.5,且ω1+ω2+ω3=1。
設(shè)主體 i與客體j之間在[t-Δt,t]時段內(nèi)的交互次數(shù)為numij(Δt),則直接信任值的可信度CDRij(Δt)的計算如式(7)
式中,θ2為預(yù)先制定的閾值,表示主體i與客體j之間交互行為的期望值,根據(jù)經(jīng)驗θ2取為10,當(dāng)numij<θ2時,主體i收集其他節(jié)點對被評估客體j的信任值作為間接信任值。為了減少通信負(fù)荷,間接信任只采用i,j共同鄰節(jié)點對j的直接信任值,間接信任值的計算如式(8)
其中,k為i與j兩者共同鄰居節(jié)點。
WSNs中的節(jié)點密集分布,評估客體可能有多個間接信任值;為減少計算量,取各個間接信任值的加權(quán)平均值:假設(shè)有 s個鄰居節(jié)點,分別為 k1,k2,…,ks則最終間接信任值的計算如式(9)
最后評估主體i對評估客體j的綜合信任值Rij(t)的計算如式(10)為
選舉安全可靠的簇頭節(jié)點是層次路由的關(guān)鍵所在。但是為了節(jié)約能量,簇頭的可信選舉不宜考慮太多因素,這里需考慮節(jié)點度、距離、信任值的最優(yōu)組合即可。假設(shè)節(jié)點m在可信候選簇頭集中,令FSm表示節(jié)點m的簇頭選舉函數(shù),則簇頭選舉的無約束優(yōu)化問題如式(11)
式中,Rim表示普通成員節(jié)點i對可信候選簇頭節(jié)點m的綜合信任值;Cm表示節(jié)點m的度數(shù);Cmax表示可信候選簇頭集S中的節(jié)點度的最大值;μ1,μ2,μ3為信任值、節(jié)點度、距離參數(shù)的權(quán)重,且 μ1+μ2+μ3=1,從上式可看出,簇頭選舉函數(shù)隨著信任值和節(jié)點度的增大而增大,隨著距離的增大而減小,其表示為一個組合優(yōu)化問題,若節(jié)點m要成為可信簇頭,則m需是式(11)的一個解,即
式(12)的解不唯一,是參數(shù) μ1,μ2,μ3的函數(shù);因此,對式(11)求解需要根據(jù)實際問題,確定各參數(shù)的值,然后對式(12)進行迭代優(yōu)化。
傳統(tǒng)的層次路由中,一般假設(shè)全網(wǎng)絡(luò)的節(jié)點安全可信,然而在實際中,層次路由容易受到的威脅有:惡意節(jié)點充當(dāng)簇頭節(jié)點,威脅網(wǎng)絡(luò)安全運行;惡意節(jié)點加入正常的簇結(jié)構(gòu),發(fā)送錯誤信息,影響采集結(jié)果。為保障簇結(jié)構(gòu)的安全可靠,與LEACH算法相比,利用可信簇頭節(jié)點選舉函數(shù)能將惡意節(jié)點排除出網(wǎng)絡(luò),建立安全可靠的路由。其具體過程分為以下幾步:
Step1當(dāng)簇頭節(jié)點的剩余能量小于預(yù)設(shè)的閾值或網(wǎng)絡(luò)運行一段時間后,當(dāng)前簇頭發(fā)布重新選舉簇頭信息。
Step2每個節(jié)點產(chǎn)生一個[0,1]之間的隨機數(shù),若小于閾值T(i),則其當(dāng)選為候選簇頭節(jié)點,并向周圍節(jié)點廣播自己是候選簇頭的消息。T(i)的計算公式如式(13)
式中,p是簇頭在所有節(jié)點中所占的百分比;r是選舉輪數(shù);M是這一輪循環(huán)中未當(dāng)選過簇頭的節(jié)點集合;Ei代表節(jié)點i的當(dāng)前能量;E0代表節(jié)點i的初始化能量。
Step3成員節(jié)點收到多個不同候選簇頭的廣播消息后,查詢本地的信任紀(jì)錄,排除信任值較低的節(jié)點,確定可信候選簇頭集。成員節(jié)點計算候選簇頭的選舉函數(shù),將選舉值最大的節(jié)點作為自己的簇頭,并把這個簇頭作為下一跳路由,形成本地信任路由表。
Step4成員節(jié)點加入某簇后。簇頭節(jié)點收到所有成員節(jié)點的加入請求后,利用本地信任紀(jì)錄,排除惡意節(jié)點加入,保證簇內(nèi)成員節(jié)點的可信可靠。同時,簇頭節(jié)點選擇本簇內(nèi)信任值最大的成員節(jié)點作為副簇頭,如果有新節(jié)點加入時,需通過副簇頭的測試,只有表現(xiàn)良好的節(jié)點才能與簇頭節(jié)點直接通信,這樣是為了惡意節(jié)點通過多次加入簇而將簇頭能量耗盡。另外,當(dāng)簇頭節(jié)點失效時,副簇頭暫時執(zhí)行簇頭功能,直至該輪結(jié)束。
Step5簇頭定期廣播征集不信任節(jié)點消息,簇內(nèi)節(jié)點選擇信任值最低的鄰居節(jié)點發(fā)送給簇頭,簇頭對票數(shù)最多的節(jié)點進行挑戰(zhàn)應(yīng)答,如果應(yīng)答失敗,那么失敗的節(jié)點將被拉入黑名單。
Step6當(dāng)分簇完成后,簇內(nèi)成員節(jié)點進入數(shù)據(jù)傳輸階段。簇頭節(jié)點為本簇的成員節(jié)點建立一個時分復(fù)用方案,并以廣播的方式通知簇內(nèi)所有成員節(jié)點。成員節(jié)點收到該消息后,就分別在各自的時間槽內(nèi)傳輸數(shù)據(jù)。當(dāng)所有成員節(jié)點的數(shù)據(jù)傳輸完畢后,簇頭節(jié)點對本簇傳來的數(shù)據(jù)進行數(shù)據(jù)處理,壓縮成一個新的信息,發(fā)送給基站或離基站較近的簇頭。
以VC++6.0為工具,對簇頭節(jié)點的可信選舉過程和層次路由的建立過程進行仿真。如圖1所示,仿真場景:200 n×200 n的正方形區(qū)域,200個節(jié)點,通信半徑32 m;90%的仿真節(jié)點為正常節(jié)點;5%的仿真節(jié)點為低信任值的惡意簇頭節(jié)點,主動發(fā)送虛假廣播消息,誘導(dǎo)鄰居節(jié)點加入該簇;5%的仿真節(jié)點為惡意成員節(jié)點,并發(fā)送虛假或偽造的數(shù)據(jù)包,以干擾簇內(nèi)的數(shù)據(jù)傳輸及數(shù)據(jù)融合。
圖1 仿真實驗示意圖
在簇頭節(jié)點可信選舉的基礎(chǔ)上,對 LEACH和SHRT算法的層次路由建立過程進行了仿真,結(jié)果分別如圖2和圖3所示。在LEACH算法中,網(wǎng)絡(luò)中的所有成員節(jié)點根據(jù)接收到的測試信號的強度選擇距離最近的簇頭加入;而在SHRT算法中,成員節(jié)點在可信簇頭集中選擇最大選舉函數(shù)值的簇頭加入。從仿真結(jié)果可知,LEACH算法無法阻止惡意節(jié)點的攻擊行為,少量的惡意節(jié)點就可誤導(dǎo)網(wǎng)絡(luò)流向,嚴(yán)重破壞網(wǎng)絡(luò)的運行;而SHRT算法能夠有效地將惡意簇頭和惡意成員節(jié)點剔除出網(wǎng)絡(luò),保證了分簇的可靠性。
圖2 網(wǎng)絡(luò)攻擊情況下LEACH算法的簇結(jié)構(gòu)
圖3 網(wǎng)絡(luò)攻擊情況下SHRT算法的簇結(jié)構(gòu)
基于節(jié)點信任值的安全層次路由算法SHRT包含兩方面內(nèi)容:(1)分析傳感器網(wǎng)絡(luò)的實際環(huán)境,對3種信任因子進行定性分析和定量計算,從而獲得各節(jié)點對其鄰居節(jié)點的綜合信任值,解決惡意節(jié)點難以識別的問題。(2)結(jié)合節(jié)點信任值、節(jié)點度和距離參數(shù)進行路由主干節(jié)點的可信選舉,建立安全可靠的層次路由,防止惡意節(jié)點參與數(shù)據(jù)傳輸。SHRT算法在節(jié)點信任評估的基礎(chǔ)上,綜合考慮了網(wǎng)絡(luò)的各種性能,利用局部最優(yōu)化原則,更加安全地實現(xiàn)了層次路由,有效解決了無線傳感器網(wǎng)絡(luò)內(nèi)部節(jié)點失效或被俘所導(dǎo)致的路由安全問題。
[1]孫利民,李建中,陳渝.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[2]XIE Miao,HAN Song,TIAN Biming,et al.Anomaly detection in wireless sensor networks:a survey[J].Journal of Network and Computer Applications,2011,3(4):1302 -1325.
[3]BOUKERCH A,XU L,EL KHATIB K.Trust- based security for wireless Ad Hoc and sensor networks[J].Computer Communications,2007(30):2413 -2427.
[4]CROSBY G V,PISSINOU N,GADZE J.A framework for trust-based cluster head election in wireless sensor networks[C].Piscataway:Proceeding of the 2nd IEEE Workshop on Dependability and Security in Sensor Networks and Systems(DSSNS),2006.
[5]ZHAN Guoxing,SHI Weisong,DENG Julia.TARF:a trustaware routing framework for wireless sensor networks[C].Heidelberg:Proceeding of the 7th European Conference on Wireless Sensor Networks,2010.
[6]SAFA F,ARTAIL H,TABET D.A cluter- based trust- aware routing protocol for mobile Ad Hoc networks[J].Wireless Networks,2010(16):969 -984.
[7]SONG F,ZHAO B H.Trust- based LEACH protocol for wireless sensor networks[C].Hainan:Proceeding of the 2th International Conference on Future Generation Communication and Networking,2008.
[8]WANG Weichao,DU Fei,XU Qijian.An improvement of LEACH routing protocol based on trust for wireless sensor networks[C].Beijing:Proceeding of the 5th International Conference on Wireless Communications,Networking and Mobile Computing,2009.
[9]DONG Huihui,GUO Yajun,YU Zhongqiang,et al.A wireless sensor networks based on multi- angle trust of node[J].Computer Science,2009,36(9):43 -45.