韓優(yōu)佳,胡黃水,姚美琴
(長春工業(yè)大學(xué)計算機(jī)科學(xué)與工程學(xué)院,長春 130012)
隨著物聯(lián)網(wǎng)的飛速發(fā)展,無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)越來越廣泛地應(yīng)用于軍事、環(huán)境監(jiān)測、醫(yī)療、工業(yè)生產(chǎn)、交通控制等領(lǐng)域[1-2]。然而,節(jié)點有限的計算能力、存儲容量、能量和其他因素限制了無線傳感器網(wǎng)絡(luò)的發(fā)展[3-4],尤其是如果WSN 隨機(jī)部署在復(fù)雜的環(huán)境中,則很容易受到來自惡意節(jié)點的路由攻擊。因此,關(guān)于安全路由協(xié)議的研究已成為WSN 的熱門話題[5]。
已有大量的研究工作從各個角度來延長網(wǎng)絡(luò)生命周期和提高網(wǎng)絡(luò)安全傳輸指數(shù)[6-8]。通常,將基于加密和身份驗證的安全機(jī)制用于抵御來自惡意節(jié)點的路由攻擊,但由于攻擊者已經(jīng)擁有所有密鑰和密碼信息,因此這些惡意節(jié)點無法抵御內(nèi)部路由攻擊[9-10]。此外,這些機(jī)制需要復(fù)雜的計算,導(dǎo)致額外的能耗[11-12]。因此,研究人員提出了基于信任感知的安全機(jī)制,以解決基于加密和身份驗證的安全機(jī)制中的問題。
為確保無線傳感器網(wǎng)絡(luò)的安全性,該信任的方案已被證明對內(nèi)部節(jié)點的攻擊更具抵抗力。該方案有助于根據(jù)節(jié)點過去的觀察結(jié)果預(yù)測節(jié)點的未來行為,并識別對可疑節(jié)點行為的有效決策。它為無線傳感器網(wǎng)絡(luò)的路由安全性提供了一種新的解決方案[13]。但傳統(tǒng)的信任方案安全性較低,只能抵擋少部分的惡意攻擊種類。
本文提出一種信任感知的無線傳感器網(wǎng)絡(luò)安全路由協(xié)議(Trust-aware wireless Sensor network secure Routing Protocol,TSRP)。該協(xié)議通過直接信任、間接信任和剩余能量構(gòu)造綜合信任以防御黑洞攻擊、選擇性轉(zhuǎn)發(fā)攻擊、槽洞攻擊和Hello 洪泛攻擊。在構(gòu)造直接信任值中引入揮發(fā)因子來降低歷史信任的作用,同時在路由建立過程中主動避開蟲洞攻擊的鏈路,以選擇一條綜合信任值高、跳數(shù)少的路由,從而在提高無線傳感器網(wǎng)絡(luò)安全性的同時降低網(wǎng)絡(luò)的能耗。
文獻(xiàn)[14]提出一種BRDT(Beta Reputation and Direct Trust model for secure communication in wireless sensor networks)模型,其為Bata 模型和直接信任模型的組合。該模型分為信任度評估、閾值設(shè)置和基于信任值的路由3 個階段。其中信任度評估包括信任服務(wù)、能量信任、周轉(zhuǎn)時間信任和數(shù)據(jù)傳輸信任4 個部分。閾值設(shè)置是選取這4 個部分中最小的值作為閾值,基于信任值的路由能為網(wǎng)絡(luò)提供安全的數(shù)據(jù)傳輸鏈路。雖然該協(xié)議平衡了網(wǎng)絡(luò)的能耗,但可能會造成簇頭與簇頭之間通信范圍的重疊區(qū)域較大,容易引起簇頭過多,導(dǎo)致能量浪費。此外,BRDT中未指定可防御的攻擊。文獻(xiàn)[15]提出了防御信任攻擊的無線傳感器網(wǎng)絡(luò)安全信任評估模型DTSA(A trust evaluation model for Defense against Trust System Attacks)。DTSA 利用模糊綜合評判模型對直接信任進(jìn)行計算,選擇合適的第三方節(jié)點推薦的間接信任值以保證沒有惡意評價,并將直接信任值,間接信任值和歷史信任值綜合考慮到綜合信任值的計算中以保證安全性高的節(jié)點具有高綜合信任值。但是,節(jié)點的剩余能量并沒有被考慮其中。對于能量受限的無線傳感器網(wǎng)絡(luò)來說,節(jié)能也是網(wǎng)絡(luò)研究的重要研究熱點之一。因此,文獻(xiàn)[16]提出一種基于分布式信任評價模型的能量優(yōu)化安全路由協(xié)議
EOSR(Energy-Optimized Secure Routing protocol),EOSR 考慮了綜合信任值、節(jié)點剩余能量和路徑跳數(shù)以評價路徑安全程度,從而保證選擇路徑的安全可靠性。其綜合信任值由直接信任值和間接信任值綜合決定,其中直接信任值若大于置信度閾值,則將直接信任值當(dāng)做綜合信任值以降低獲取間接信任值的能量開銷。節(jié)點成為惡意節(jié)點之前均為合法節(jié)點,都擁有較高的信任值,但EOSR 并沒有將節(jié)點的歷史信任值考慮到信任程度中,使得節(jié)點被俘獲成為惡意節(jié)點后無法被快速地降低信任值,以至于惡意節(jié)點無法快速地被排除在網(wǎng)絡(luò)之外。
文獻(xiàn)[17]提出了基于節(jié)點信任與能耗均衡的分簇協(xié)議(Secure Clustering Routing protocol based on Trust and Balancing Enemy consumption,SCR-TBE)。SCR-TBE 采用模糊評價的方法來計算節(jié)點的直接信任值,并將歷史信任值考慮到綜合信任值的計算中以保證對惡意節(jié)點識別的準(zhǔn)確性。同時SCRTBE 采用非均勻分簇方法來緩解多跳分簇協(xié)議中的能量空洞現(xiàn)象。但SCR-TBE 評價節(jié)點的直接信任值的模糊性可能會造成信任評估的不準(zhǔn)確性。文獻(xiàn)[17-18]提出的機(jī)制均是采用模糊控制理論,兩者的不同點在于:文獻(xiàn)[18]采用的模糊控制理論是根據(jù)綜合信任值的大小對節(jié)點的安全性進(jìn)行模糊評估,以選出安全的路由。為提供準(zhǔn)確的信任值和評價路由的安全性,文獻(xiàn)[19]提出了基于QoS 的無線傳感器網(wǎng)絡(luò)信任路由算法SQEER(Secured QoS aware Energy Efficient Routing),該信任模型使用基于密鑰的安全機(jī)制提供信任值的認(rèn)證技術(shù)。該算法中的安全模塊負(fù)責(zé)使用時間約束管理器維護(hù)信任,并通過與安全管理器交互來執(zhí)行身份驗證。而能量管理器則通過計算能量水平并將其發(fā)送給決策管理器,以做出節(jié)能決策。QoS 管理器通過調(diào)用數(shù)據(jù)包傳輸率、延時和錯誤率分析器檢查QoS 來執(zhí)行分析。然后,SQEER 根據(jù)QoS 指標(biāo)和信任值來選擇簇頭以執(zhí)行基于簇的安全路由。最后,根據(jù)路徑信任值、能量和跳數(shù)選擇最終路徑,有效地實現(xiàn)了安全路由過程。但SQEER 的信任模型需要基于密鑰的安全機(jī)制的參與,這使節(jié)點增加了額外的能量消耗。
綜上所述,傳統(tǒng)的信任感知安全路由協(xié)議仍然面臨以下挑戰(zhàn):
1)準(zhǔn)確地檢測惡意節(jié)點。例如文獻(xiàn)[16]沒有考慮歷史信任值這一重要因素;文獻(xiàn)[17-18]利用模糊控制器來模糊計算節(jié)點的信任值,在這些方案中信任評估的準(zhǔn)確性均有待提高。
2)使網(wǎng)絡(luò)能夠抵抗多種路由攻擊。如果網(wǎng)絡(luò)防御攻擊的類型相對單一,則網(wǎng)絡(luò)仍將面臨主要的安全風(fēng)險。例如文獻(xiàn)[6,20]只針對蟲洞攻擊進(jìn)行防御;文獻(xiàn)[21]只針對黑洞攻擊進(jìn)行防御。
3)減少網(wǎng)絡(luò)能耗。例如文獻(xiàn)[15]沒有考慮節(jié)點的剩余能量這一重要因素;文獻(xiàn)[19]則需要密鑰安全機(jī)制的參與,這使得網(wǎng)絡(luò)的能量消耗增加。
面對上述的挑戰(zhàn),本文目標(biāo)如下:
1)TSRP 的直接信任值將由歷史和當(dāng)前的信任值構(gòu)成,同時為歷史信任值分配一個新穎的揮發(fā)因子,以降低惡意節(jié)點擁有良好的歷史信任的作用,從而提高信任評估的準(zhǔn)確性。
2)TSRP 的綜合信任值將用來防御黑洞攻擊、選擇性轉(zhuǎn)發(fā)攻擊、Hello flood 攻擊和槽洞攻擊;同時,將利用AODV 路由建立階段引入鏈路質(zhì)量來主動避開蟲洞攻擊,以此增強(qiáng)網(wǎng)絡(luò)對抗多種攻擊的能力。
3)在傳統(tǒng)的基于AODV 安全路由協(xié)議中,其源節(jié)點向sink 方向發(fā)送RREQ 幀后,sink 會以多路徑的方式返回RREP 幀。但TSRP 協(xié)議將只選擇一條跳數(shù)少、信任程度高的鏈路返回RREP 幀,以此降低網(wǎng)絡(luò)在路由建立和數(shù)據(jù)傳輸?shù)哪芎摹?/p>
節(jié)點的信任值是參與安全路由協(xié)作的基礎(chǔ),這意味著較大信任值的節(jié)點將具有更高的安全性。因此,具有更高信任值的節(jié)點更有可能被選作為路由的中繼節(jié)點。文獻(xiàn)[15,17]并沒有考慮節(jié)點的歷史信任值對信任評估系統(tǒng)的影響。如果合法節(jié)點成為惡意節(jié)點之前擁有較高的綜合信任值,沒有揮發(fā)因子的作用則降低了識別惡意節(jié)點的速度。而TSRP使用節(jié)點的直接信任值、間接信任值、揮發(fā)因子和剩余能量計算綜合信任值以抵抗來自惡意節(jié)點的黑洞攻擊、選擇性轉(zhuǎn)發(fā)攻擊、Hello 洪泛攻擊和槽洞攻擊。此外,傳統(tǒng)的安全路由協(xié)議只防御蟲洞攻擊[6],TSRP可以防御多種攻擊,增強(qiáng)網(wǎng)絡(luò)安全。
節(jié)點根據(jù)鄰居節(jié)點的接收和發(fā)送數(shù)據(jù)包個數(shù),可以計算對每個鄰居節(jié)點的直接信任值,節(jié)點i對鄰居節(jié)點j的直接信任值可表示如下:
其中:前者代表歷史信任值,后者代表當(dāng)前信任值;γ和(1-γ)(0<γ<1)分別是歷史信任值和當(dāng)前信任值的權(quán)重,其為可調(diào)參數(shù)。為公平起見,令γ的值為0.5。Rt和St分別是發(fā)送和接收的數(shù)據(jù)包數(shù)量占總數(shù)據(jù)包數(shù)量的比例,可以表示為:
此外,還定義了揮發(fā)因子,目的是將從具有高信任度值和普通節(jié)點轉(zhuǎn)變成低信任度值的節(jié)點快速排除。揮發(fā)因子表示如下:
其中:T是網(wǎng)絡(luò)的當(dāng)前時間;τ是時間閾值;c1和c2都是用來調(diào)整信任值變化速度的常數(shù)。此外,引入mod(T,τ)以保證歷史信任值不會太小,并使揮發(fā)因子在一定范圍內(nèi)周期性衰減。
如圖1 所示,節(jié)點i對節(jié)點j的間接信任值由其公共鄰居節(jié)點提供的直接信任值計算而來。公共鄰居節(jié)點集合可以用Bh=[B1,B2,…,Bm]表示,m是公共節(jié)點個數(shù)。節(jié)點i對節(jié)點j的間接信任值表示如下:
圖1 節(jié)點i 和j 的公共節(jié)點Fig.1 The common nodes of nodes i and j
本文使用與文獻(xiàn)[22]相同的能耗模型。當(dāng)節(jié)點j在距離d上接收到l位數(shù)據(jù)包時,接收和發(fā)送的能耗為:
其中:Eelec表示發(fā)射器電子設(shè)備消耗的能量/比特;εfs表示自由空間模型的能耗;εmp表示多徑衰落模型的能耗;d0是放大器調(diào)整其功率的閾值。
令j的初始能量為E0,則剩余能量REj為:
其中:只有當(dāng)j的剩余能量REj大于閾值Eth時,節(jié)點j才能參與TSPR 的操作,因此j能量信任值為:
考慮到節(jié)點的安全性和能耗,節(jié)點i對節(jié)點j的綜合信任值公式如下:
其中:η1、η2和η3分別是直接信任值、間接信任值和能量信任值的權(quán)重,滿足η1+η2+η3=1,η1、η2和η3的值選取為0.34、0.4 和0.26。和Ej均分布在[0,1]區(qū)間內(nèi),因此綜合信任值滿足[0,1],的值越高,節(jié)點j越值得信賴。
當(dāng)網(wǎng)絡(luò)中的某個節(jié)點發(fā)起黑洞攻擊時,St的值會急劇降至接近于0,在揮發(fā)因子的作用下歷史信任值會急劇下降,因此惡意節(jié)點的綜合信任值也會急劇下降,從而使發(fā)起黑洞攻擊的惡意節(jié)點被隔離到網(wǎng)絡(luò)之外。同樣,如果網(wǎng)絡(luò)有發(fā)起Hello 洪泛攻擊的節(jié)點,Rt的值會急劇下降并接近于近0,這必然導(dǎo)致惡意節(jié)點的綜合信任值也會下降。從而使惡意節(jié)點被排除在網(wǎng)絡(luò)之外。因此,伴隨著選擇性轉(zhuǎn)發(fā)攻擊和槽洞攻擊的節(jié)點,在揮發(fā)因子、St和Rt的作用下,其綜合信任值逐漸下降,同樣會被排除在網(wǎng)絡(luò)之外。
節(jié)點i將監(jiān)聽到鄰居節(jié)點j接收到的數(shù)據(jù)包數(shù)量receive_messagej的值、發(fā)送的數(shù)據(jù)包數(shù)量send_messagej的值和數(shù)據(jù)包總量mesagej的值并存放在如表1 所示哈希表中。通過式(1)計算直接信任值并將其存放在哈希表中,以便計算間接信任值。之后,通過式(12)計算出綜合信任值并將其保存在哈希表中。
表1 節(jié)點i 對鄰居節(jié)點j 的評價信息哈希表Table 1 Hash table of evaluation information of node i to neighbor node j
節(jié)點i的鄰居節(jié)點個數(shù)為q,對其ID編碼:{ID1=0,ID2=1,…,IDq=q-1};同時對 鄰居節(jié) 點j的receive_messagej,send_messagej,mesagej,和分別編碼 為q,q+1,q+2,q+3,q+4,令a1=q,a2=q+1,a3=q+2,a4=q+3,a5=q+4。
節(jié)點i將監(jiān)聽到鄰居節(jié)點j的receive_messagej,send_messagej,mesagej,和的值通過哈希函數(shù)映射到同一張表中,哈希函數(shù)設(shè)計如下:
例如,節(jié)點i查詢和計算2 號鄰居節(jié)點的值時,根據(jù)式(13),將其存儲在index=10 的位置,查詢和計算1 號鄰居節(jié)點的值時,將其存儲在index=3 的位置。
TSRP 具體包括信任模型、路由建立和路由維護(hù)3 個階段。信任模型是TSRP 的前期準(zhǔn)備也是評價節(jié)點是否安全的重要依據(jù)。擁有越高綜合信任值的節(jié)點代表的安全性也越高,被選擇作為下一跳節(jié)點的可能性也越大。路由建立是將這些高綜合信任值的節(jié)點作為中繼節(jié)點的同時控制好跳數(shù),使鏈路跳數(shù)盡可能少。當(dāng)鏈路的不再是最優(yōu)時,路由維護(hù)再次選擇出最優(yōu)路由,使網(wǎng)絡(luò)中的數(shù)據(jù)沿著安全節(jié)能的路徑傳輸。
在本文中,WSN 有n個節(jié)點被隨機(jī)部署在感興趣的L×M矩形區(qū)域上且每個節(jié)點均通過鄰居節(jié)點將信息發(fā)送到sink。進(jìn)行以下假設(shè)以簡化網(wǎng)絡(luò)模型:
1)部署后,每個節(jié)點和sink 均不可移動;
2)考慮同構(gòu)節(jié)點并具有相等的初始能量,此外,不可能補(bǔ)充能量;
3)每個節(jié)點都有一個唯一的標(biāo)識符號(ID);
4)可以基于接收信號強(qiáng)度來計算任意一對節(jié)點或任意節(jié)點與sink 之間的距離;
5)節(jié)點部署后,sink 知道每個節(jié)點的ID 和位置信息。
TSRP中的路由建立是對AODV[23]的改進(jìn),擴(kuò)展了路由請求幀(RREQ)和路由回復(fù)幀(RREP),在RREQ中添加了節(jié)點ID、綜合信任值、剩余能量和跳數(shù),在RREP中添加了節(jié)點的路由表和中繼節(jié)點的剩余能量。RREQ 和RREP 中添加節(jié)點的剩余能量以便鄰居節(jié)點收到此幀時更新其對鄰居節(jié)點的能量信任值。
網(wǎng)絡(luò)中的源節(jié)點廣播RREQ 消息以啟動路由建立過程,因此sink 可以接收多個RREQ,其數(shù)量等于源節(jié)點到sink 之間總共存在的鏈路個數(shù),鏈路集合可以表示為link_list=[link1,link2,…,linkr],r是鏈接的數(shù)量。鏈路集合中的鏈路由源節(jié)點i和所有中繼節(jié)點組成,可以用link=[node1,node2,…,nodek]表示,k是鏈路中節(jié)點的數(shù)量。sink 根據(jù)鏈路集合中每條鏈路的鏈路質(zhì)量選擇出最優(yōu)路徑,鏈路質(zhì)量表示如下:
其中:dis是鏈路的傳輸距離,可以用以下公式表示:
從式(14)可以看出,如果存在蟲洞攻擊,2 個惡意節(jié)點之間的距離將會很長,必然會產(chǎn)生較大的dis值,從而降低鏈路質(zhì)量,將惡意節(jié)點排除在鏈路之外。其中R為節(jié)點的傳輸半徑。
為了將網(wǎng)絡(luò)中的延遲降到最低,將跳數(shù)考慮到最優(yōu)路徑的選擇中。TSRP 定義了最優(yōu)路徑指標(biāo)PPV,其表示如下:
其中:jump 是鏈路中的跳數(shù);λ和1-λ分別是鏈路質(zhì)量和跳數(shù)的權(quán)重系數(shù),其為可調(diào)參數(shù),為了公平起見,令λ的值為0.5。對鏈集合的PV值由大到小排序,構(gòu)建路由表PV_list=[PV1,PV2,…,PVr],選擇最大的PV 值對應(yīng)的鏈路作為數(shù)據(jù)傳輸?shù)淖顑?yōu)路由。
具體的路由建立步驟如下:
步驟1節(jié)點部署之后,sink 向全網(wǎng)發(fā)送一個廣播包,每個節(jié)點根據(jù)接收到廣播包的信號強(qiáng)度計算出與sink 之間的距離;向自己的鄰居節(jié)點廣播自己與sink 之間的距離;每個節(jié)點保存自己所有鄰居節(jié)點到sink 的距離和相應(yīng)的ID。
步驟2源節(jié)點i廣播RREQ 來啟動路由建立過程,首先源節(jié)點i根據(jù)自己鄰居節(jié)點的綜合信任值來尋找符合要求的預(yù)選下一跳節(jié)點,預(yù)選下一跳節(jié)點應(yīng)該滿足綜合信任值高于閾值且距sink 的距離小于自己到sink 的距離(如圖2 中的節(jié)點2、3、5、8、a1、a2所示);之后節(jié)點i將預(yù)選下一跳節(jié)點按照綜合信任值的大小由大到小排序,取前1/2 高信任值的節(jié)點作為下一跳,且將下一跳節(jié)點的ID(如圖2 中的節(jié)點2、3、5、8 所示)、自己的綜合信任值和ID 放在RREQ 包中;最后廣播RREQ,跳到步驟3。
步驟3源節(jié)點i的鄰居節(jié)點在收到RREQ 消息后,首先檢查RREQ 中是否有自己的ID,如果沒有則丟棄RREQ,否則檢查自己的剩余能量是否低于閾值,低于閾值則丟棄RREQ(如圖2 中的節(jié)點2 所示),高于閾值則跳轉(zhuǎn)到步驟4。
步驟4如圖2 中節(jié)點3、5、8 所示將RREQ 包中的Jjump=Jjump+1,將RREQ 中別的ID 和對應(yīng)的綜合信任值刪除,只保留自己ID、上一跳ID、源節(jié)點ID 和對應(yīng)的綜合信任值。
步驟5滿足要求的節(jié)點重復(fù)步驟2~步驟3。在重復(fù)步驟2~步驟3 時,如果中繼節(jié)點收到多個RREQ 并且源節(jié)點相同則只對先收到的RREQ 進(jìn)行處理,后收到的RREQ 丟棄,以避免路由循環(huán),直至到達(dá)sink;或者中繼節(jié)點剩余能量或者綜合信任值低于閾值,同樣丟棄RREQ(如圖2 中節(jié)點4 所示)。
步驟6sink 可能收到一個或者多個RREQ 時(如圖2 中路徑r1和r2),sink 根據(jù)接收到的RREQ 中的信息通過式(14)~式(16)計算出每條路徑中的最優(yōu)路徑,然后將其由大到小排序并且存儲在PV_list列表里。從列表中選擇最大的PV值對應(yīng)的路徑作為最優(yōu)路由,然后sink 沿著這條路徑反向傳播RREP,直至到達(dá)源節(jié)點i。
步驟7在轉(zhuǎn)發(fā)RREP 過程中,從中讀取鄰居節(jié)點的剩余能量以便更新能量信任值。一旦中繼節(jié)點剩余能量(如圖2 中的節(jié)點10 所示),則此節(jié)點沿著這條路徑向sink 發(fā)送RERR(錯誤幀)或者綜合信任值低于閾值(如圖2 中的節(jié)點10 所示),則此節(jié)點的上一跳節(jié)點(如圖2 中的節(jié)點11 所示)沿著這條路徑向sink 發(fā)送RERR。sink 收到RERR 后,從PV_list 選擇第二大的PV 值對應(yīng)的路徑作為最優(yōu)路由再次發(fā)送RREP,直至到達(dá)源節(jié)點i。
圖2 路由建立過程Fig.2 Process of route establishment
步驟8源節(jié)點i接收到RREP 后,沿著該路徑發(fā)送數(shù)據(jù),并且該路徑上的節(jié)點和周圍的節(jié)點在一定周期Tt內(nèi)更新其綜合信任值。
在數(shù)據(jù)傳輸期間,一旦路徑中任何節(jié)點的剩余能量低于閾值(如圖3 中節(jié)點2 所示),表示節(jié)點無法承擔(dān)數(shù)據(jù)轉(zhuǎn)發(fā),則此節(jié)點沿著這條路徑反向發(fā)送RERR,告知源節(jié)點i此路徑不再可靠,需要重新發(fā)動路由建立過程;或者任何節(jié)點的綜合信任值低于閾值(如圖3 中節(jié)點2 所示),表示此節(jié)點不再可信,則此節(jié)點的上一跳節(jié)點(如圖3 中節(jié)點1 所示)沿著路徑反向發(fā)送RERR,告知源節(jié)點i需要重新發(fā)動路由建立過程,并從步驟2 重新開始。
圖3 路由維護(hù)過程Fig.3 Process of route maintenance
通過MATLAB 與AODV 和TBSRP(Trust Based Secure Routing Protocol)[10]進(jìn)行比較,對本文提出的TSRP 的性能進(jìn)行評估,將100 個節(jié)點隨機(jī)部署在通信半徑為30 m 的100 m×100 m 方形監(jiān)視區(qū)域中,并將仿真回合數(shù)設(shè)置為3 000。上述剩余能量的閾值設(shè)置為不足以轉(zhuǎn)發(fā)2 個數(shù)據(jù)包所消耗的能量。惡意節(jié)點可以在網(wǎng)絡(luò)上發(fā)起蟲洞攻擊、槽洞攻擊、黑洞攻擊、選擇性轉(zhuǎn)發(fā)攻擊和Hello 洪泛攻擊。此外,當(dāng)惡意節(jié)點發(fā)起選擇性轉(zhuǎn)發(fā)攻擊時,接收到的數(shù)據(jù)包中有60%~80%被丟棄。以下仿真實驗選擇惡意節(jié)點的個數(shù)為5,表2 給出了仿真參數(shù)。
表2 仿真參數(shù)Table 2 Simulation parameters
對于無線傳感器網(wǎng)絡(luò)安全路由來說最重要的是網(wǎng)絡(luò)的高安全性和低能耗。式(12)的前半部分η1×是評估節(jié)點安全性的指標(biāo),后半部分η3×Ej是評估節(jié)點的能耗指標(biāo)。為了使高安全性和低能耗來主導(dǎo)綜合信任值的波動幅度,必須使η1×和之間的變化幅度不能大于η1×+η2×和η3×Ej的變化幅度,所 以η1×的值和η2×的值是相近的。根據(jù)仿真結(jié)果,直接信任值的平均值為0.919 4,間接信任值的平均值為0.802 14。由表3 可以看出,η1和η2的值選取為0.34 和0.40,所以η3的值為0.26。
表3 η1 和η2 的選取Table 3 Selection of η1 and η2 values
測試網(wǎng)絡(luò)的平均剩余能量,該平均剩余能量是所有存活可信節(jié)點的剩余能量的平均值。圖4 顯示了在網(wǎng)絡(luò)中有5 個惡意節(jié)點的情況下平均剩余能量的比較。因為網(wǎng)絡(luò)在計算且選擇最優(yōu)路徑時由sink完成,分擔(dān)了節(jié)點的計算能耗,更重要的是將節(jié)點的剩余能量、跳數(shù)和傳輸距離均考慮在其中,TSRP 選擇的最優(yōu)路徑具備信任值高、剩余能量高、跳數(shù)少、傳輸距離短的特點,降低了節(jié)點之間的通信能耗。而TBSRP 并沒有考慮節(jié)點的剩余能量、跳數(shù)和傳輸距離,選擇的路徑并非最優(yōu),所以不能很好地平衡網(wǎng)絡(luò)的負(fù)載。AODV 是沒有安全防護(hù)措施的路徑,因此惡意節(jié)點會破壞網(wǎng)絡(luò)的路由,使節(jié)點更早更快地死亡。
圖4 平均剩余能量Fig.4 Average remaining energy
RREQ 成功送達(dá)率是源節(jié)點i通過中繼節(jié)點轉(zhuǎn)發(fā)RREQ 成功達(dá)到sink 的路徑與總共建立的路徑的比值。源節(jié)點i向sink 方向擴(kuò)散RREQ,滿足要求的中繼節(jié)點會繼續(xù)轉(zhuǎn)發(fā)RREQ,不滿足的則丟棄。因此,源節(jié)點i和sink 之間會建立很多的路徑,也會產(chǎn)生許多不能成功到達(dá)的sink 路徑。本文在路由建立過程中,控制了轉(zhuǎn)發(fā)過程中繼節(jié)點個數(shù),從而減輕了節(jié)點間的信息交互,避免了通信擁堵,降低了網(wǎng)絡(luò)的能耗。表4 和表5 所示為距sink 不同距離下隨機(jī)選擇源節(jié)點建立的路徑個數(shù)和成功送達(dá)率。由表4、表5 可以看出該方法不僅降低了總共建立的路徑條數(shù)而且提高了RREQ 到達(dá)sink 的成功送達(dá)率,使每條鏈路得以充分利用。
表4 TSRP 的RREQ 成功送達(dá)率Table 4 Successful delivery rate of RREQ in TSRP
表5 TBSRP 的RREQ 成功送達(dá)率Table 5 Successful delivery rate of RREQ in TBSRP
評估平均端到端延遲,比較結(jié)果如圖5 所示。隨著惡意節(jié)點的增加,所有協(xié)議的平均端到端延遲都在增加。在AODV 中,由于沒有防御措施,因此丟包率隨著惡意節(jié)點的增加而迅速增加。一旦發(fā)生數(shù)據(jù)包丟失,該節(jié)點需要建立重新連接并重新傳輸數(shù)據(jù)包,這無疑會增加端到端延遲。對于TBSRP 和TSRP 而言,由于采用了安全機(jī)制,平均端到端延遲會隨著惡意節(jié)點的增加而緩慢增加。但是TSRP 的延遲明顯低于TBSRP。從圖5 可以看出,當(dāng)惡意節(jié)點個數(shù)為10 時,TBSRP 的端到端延遲為6.11 ms,而TSRP 的端到端延遲為4.50 ms。主要原因是TSRP和TBSRP 相比,TSRP 選擇了更安全且傳輸數(shù)據(jù)跳數(shù)更少的鏈路作為路徑。
圖5 平均端到端延遲比較Fig.5 Comparison of average end-to-end delay
圖6 中顯示的是平均丟包率,它是源節(jié)點發(fā)送的數(shù)據(jù)包數(shù)量與接收器接收的數(shù)據(jù)包數(shù)量之差與發(fā)送方發(fā)送的數(shù)據(jù)包數(shù)量之差的比率。AODV 的平均丟包率隨著回合次數(shù)的增加而迅速增加,因為它缺乏安全措施保護(hù)。在惡意節(jié)點的攻擊下,節(jié)點將數(shù)據(jù)包惡意丟棄,使sink 不能接收到數(shù)據(jù)包,從而急劇地增加了網(wǎng)絡(luò)的丟包率。TSRP 和TBSRP 的丟包率先增大后減小,這是因為惡意節(jié)點逐漸地被排除在網(wǎng)絡(luò)之外,使網(wǎng)絡(luò)的丟包率逐漸降低。此外,TSRP的丟包率在2 100 輪之后開始下降,而TBSRP 在2 400 輪之后才開始下降,這意味著TSRP 比TBSRP能更快地將惡意節(jié)點排除在網(wǎng)絡(luò)之外。因此,TSRP的性能比TBSRP 更優(yōu)??傮w而言,TSRP 的平均丟包率比TBSRP 的平均丟包率高2.23 個百分點。
圖6 平均丟包率比較Fig.6 Comparison of average packet loss rate
為提高網(wǎng)絡(luò)安全性及節(jié)約網(wǎng)絡(luò)能量,本文提出一種基于信任的安全路由協(xié)議(TSRP)。該協(xié)議通過節(jié)點的成功收發(fā)包概率、歷史狀態(tài)和剩余能量來綜合評估每個節(jié)點的信任值,量化節(jié)點的安全等級,根據(jù)單個節(jié)點的信任值和跳數(shù)找到一條安全性最高、能量消耗最少的路徑作為數(shù)據(jù)傳輸?shù)穆酚伞7抡娼Y(jié)果表明,TSRP 在能耗、丟包率及網(wǎng)絡(luò)延遲方面均優(yōu)于AODV 和TBSRP。下一步將通過構(gòu)建基于分簇結(jié)構(gòu)的網(wǎng)絡(luò),提高排除惡意節(jié)點的速度,降低節(jié)點的能量消耗。