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