,
(陸軍工程大學(xué)石家莊校區(qū) 電子與光學(xué)工程系,石家莊 050003)
移動Ad Hoc網(wǎng)絡(luò)(mobile ad hoc networks,MANET)[1]是由若干個帶有無線通信設(shè)備的移動節(jié)點組成的。MANET面臨的安全威脅日益嚴(yán)峻,無線鏈路本身易受到外部節(jié)點攻擊,而網(wǎng)絡(luò)路由的不斷變化也會導(dǎo)致節(jié)點間的信任關(guān)系產(chǎn)生動態(tài)變化,容易遭受內(nèi)部節(jié)點背叛攻擊[2]。因此MANET的安全性已經(jīng)成為一大研究熱點。
隨著定位技術(shù)的不斷發(fā)展,定位精度越來越高,因此基于位置的路由協(xié)議也引起了人們的重視[3]。GRID路由協(xié)議是WEN-HWA LIAO[4]等人提出的完全基于位置的路由協(xié)議,它利用位置信息完全解決了路由中的查找路由、數(shù)據(jù)轉(zhuǎn)發(fā)、維護(hù)路由3個關(guān)鍵問題。該協(xié)議將網(wǎng)絡(luò)所覆蓋的范圍劃分為網(wǎng)格狀的區(qū)域,每個網(wǎng)格內(nèi)通過子協(xié)議網(wǎng)格Leader選擇協(xié)議(Grid Leader Selection Protocol)選取一個帶有定位裝置的節(jié)點,作為該網(wǎng)格的Leader,負(fù)責(zé)該網(wǎng)格的數(shù)據(jù)轉(zhuǎn)發(fā)[5]。本文將對該子協(xié)議的安全性進(jìn)行研究。
本文將利用形式化分析的方法,先對網(wǎng)格Leader選擇協(xié)議的安全性進(jìn)行分析[6],更形象地分析它可能存在的安全漏洞,之后利用信譽(yù)系統(tǒng)[7]對其進(jìn)行改進(jìn),更好的解決其安全漏洞,以滿足MANET通信的安全目標(biāo)。
形式化分析方法是用數(shù)學(xué)方法描述和推理,對協(xié)議及安全屬性進(jìn)行形式化建模,將對協(xié)議的安全性分析轉(zhuǎn)化為對應(yīng)形式化模型的分析[8],運(yùn)用這種方法可以避免協(xié)議安全性分析的局限性,有可能發(fā)現(xiàn)安全協(xié)議的一些未知攻擊。
本文利用有限狀態(tài)機(jī)(Finite-state machine,FSM)對網(wǎng)格Leader選擇協(xié)議進(jìn)行形式化建模。有限狀態(tài)機(jī),又稱有限狀態(tài)自動機(jī),是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型[9]。FSM是一種算法思想,由一組狀態(tài)、一個初始狀態(tài)、輸入和根據(jù)輸入及現(xiàn)有狀態(tài)轉(zhuǎn)換為下一個狀態(tài)的轉(zhuǎn)換函數(shù)組成。通常使用狀態(tài)圖來對FSM進(jìn)行精確地描述。有限狀態(tài)機(jī)是一個五元組M=(Q,Σ,δ,q0,F),其中:
Q={q0,q1,...,qn}是有限狀態(tài)集合,Σ={σ1,σ2,...,σn}是有限輸入字符集合,δ:Q×Σ→Q是狀態(tài)轉(zhuǎn)移函數(shù),q0∈Q是初始狀態(tài),F(xiàn)?Q是最終狀態(tài)集合[10]。
GRID路由協(xié)議中,每個網(wǎng)格中的節(jié)點運(yùn)行網(wǎng)格Leader選擇協(xié)議來維護(hù)本網(wǎng)格的Leader,保證該網(wǎng)格的數(shù)據(jù)轉(zhuǎn)發(fā)。網(wǎng)格Leader選擇協(xié)議規(guī)定距離網(wǎng)格中心最近的節(jié)點將被選為網(wǎng)格Leader,只要某節(jié)點被選為Leader,直到它移出網(wǎng)格才重新選取新Leader。定義S={S0,S1,S2},表示原網(wǎng)格Leader選擇協(xié)議的狀態(tài)集,S0表示初始狀態(tài),F(xiàn)={S0}表示終結(jié)狀態(tài)。其FSM模型如圖1所示。
圖1 FSM模型
網(wǎng)格Leader周期性發(fā)送GATE(g,loc)分組,其中g(shù)是該網(wǎng)格坐標(biāo),loc是當(dāng)前位置。當(dāng)它離開該網(wǎng)格時,廣播RETIRE(g,T)分組,g是原網(wǎng)格坐標(biāo),T是它保存的路由表。保存T,并由狀態(tài)S0轉(zhuǎn)移到S1。若在一個周期內(nèi)網(wǎng)格內(nèi)節(jié)點沒有接收到GATE分組,則節(jié)點A廣播BID(g,loc)分組,g是網(wǎng)格坐標(biāo),loc是A的當(dāng)前位置,轉(zhuǎn)入狀態(tài)S2。若Leader仍在該網(wǎng)格中,則向A回復(fù)GATE分組;非Leader節(jié)點X收到BID分組時,若它離網(wǎng)格中心比分組中的loc近,就向A回復(fù)BID(g,loc')分組,loc'為X當(dāng)前位置,并廣播BID分組;若沒有收到新的GATE或BID(g,loc')分組,將自己認(rèn)定為新的網(wǎng)格Leader,返回狀態(tài)S0。由于新Leader是節(jié)點自己認(rèn)定的,因此同一網(wǎng)格中可能存在多個Leader。當(dāng)一個自認(rèn)為是網(wǎng)格Leader的節(jié)點收到其他離網(wǎng)格中心更近的節(jié)點發(fā)送的GATE分組時,就認(rèn)為自己不是Leader,不再發(fā)送任何GATE分組[11]。
由圖1及其分析可知,網(wǎng)格Leader選擇協(xié)議在面臨選擇新節(jié)點時的優(yōu)先級只考慮到離網(wǎng)格中心的位置,容易引起內(nèi)部惡意節(jié)點的攻擊。若網(wǎng)格內(nèi)存在惡意節(jié)點,當(dāng)Leader離開時會廣播RETIRE報文,包含網(wǎng)格坐標(biāo),若惡意節(jié)點通過篡改將自己的位置坐標(biāo)改為前網(wǎng)格Leader坐標(biāo),則它將被選為新的網(wǎng)格Leader,控制該網(wǎng)格的數(shù)據(jù)傳輸,在路由過程中竊取有用數(shù)據(jù),破壞路由協(xié)議的工作過程。因此需要對網(wǎng)格Leader選擇協(xié)議進(jìn)行改進(jìn)增加它的安全性,本文結(jié)合現(xiàn)有的信譽(yù)系統(tǒng),提出基于信譽(yù)度的信譽(yù)系統(tǒng)對Leader進(jìn)行改進(jìn),增加選擇新網(wǎng)格Leader的依據(jù),抑制內(nèi)部背叛節(jié)點攻擊。
陳晶[12]等人在GRID協(xié)議的基礎(chǔ)上提出了安全的網(wǎng)格路由協(xié)議SGRP(Security Grid Routing Protocol),它利用單向散列函數(shù)為基礎(chǔ)而改進(jìn)的TESLA認(rèn)證方案[13],對新加入網(wǎng)絡(luò)的節(jié)點進(jìn)行認(rèn)證,并提出了一種基于CONFIDENT[14]的信譽(yù)系統(tǒng)來抑制內(nèi)部惡意節(jié)點的破壞行為。仿真表明SGRP可以檢測出報文轉(zhuǎn)發(fā)時的惡意中斷攻擊者,同時有一定概率可以發(fā)現(xiàn)內(nèi)部背叛節(jié)點。但SGRP沒有針對子協(xié)議網(wǎng)格Leader選擇協(xié)議進(jìn)行安全性分析,也沒有對防止內(nèi)部節(jié)點破壞進(jìn)行設(shè)計。本文在SGRP協(xié)議的基礎(chǔ)上對網(wǎng)格Leader選擇協(xié)議進(jìn)行改進(jìn),增加它對內(nèi)部惡意節(jié)點的處理決策。
針對網(wǎng)格Leader選擇協(xié)議中面臨的內(nèi)部攻擊問題,結(jié)合SGRP中的信譽(yù)機(jī)制對它進(jìn)行了安全性改進(jìn)。信譽(yù)模型以信譽(yù)度為依據(jù),由信譽(yù)度計算、信譽(yù)管理及信譽(yù)決策三層組成,以信譽(yù)度計算為基礎(chǔ),將第一手信譽(yù)度、信譽(yù)報告綜合成信譽(yù)等級,根據(jù)信譽(yù)度門限值進(jìn)行信譽(yù)決策,高效判別出惡意節(jié)點,合理進(jìn)行Leader選擇,提高網(wǎng)絡(luò)通信的安全可靠。
本文提出的信譽(yù)模型由信譽(yù)度計算、信譽(yù)管理和信譽(yù)決策組成。信譽(yù)度計算是模型的基礎(chǔ),信譽(yù)管理是核心,信譽(yù)決策是目的。結(jié)構(gòu)如圖2所示。
圖2 信譽(yù)模型結(jié)構(gòu)圖
信譽(yù)度計算主要完成信譽(yù)度初始化,第一手信譽(yù)信息計算、信譽(yù)報告及信譽(yù)等級的具體計算過程。信譽(yù)管理主要負(fù)責(zé)網(wǎng)格內(nèi)節(jié)點信譽(yù)度及保存路由表的更新,實現(xiàn)節(jié)點信息的動態(tài)管理。信任決策以信譽(yù)度為重要標(biāo)準(zhǔn)選擇網(wǎng)格Leader,通過節(jié)點信譽(yù)度識別惡意節(jié)點,并對識別到的惡意節(jié)點進(jìn)行處理,從而提高網(wǎng)絡(luò)的安全性。
2.2.1 信譽(yù)度計算
2.2.1.1 初始化
模型主要維護(hù)節(jié)點保存的信息列表,詳細(xì)記錄節(jié)點間交互信息及信譽(yù)度列表,每個周期對節(jié)點的信譽(yù)度進(jìn)行更新。信息列表如表1所示。
表1 信息列表
其中,IDi、IDj是節(jié)點i,j的身份標(biāo)識;歷史信譽(yù)度表示在網(wǎng)絡(luò)運(yùn)行期間節(jié)點通信過程中的信譽(yù)等級,范圍為[0,1],0表示節(jié)點完全不可信,節(jié)點須立即移出網(wǎng)絡(luò),1表示節(jié)點完全可信,如果沒有計算結(jié)果則顯示為default,若為新節(jié)點,則設(shè)置為信譽(yù)度默認(rèn)值,取值為0.6。
需要強(qiáng)調(diào)的是,節(jié)點自身不能保存自己的狀態(tài)列表,無法查看自己在其他鄰節(jié)點列表中的信譽(yù)度大小,以防惡意節(jié)點通過查詢自己的信譽(yù)度而發(fā)動掩飾攻擊將自身的信譽(yù)度提高。
2.2.1.2 計算
網(wǎng)絡(luò)內(nèi)每個節(jié)點通過自身檢驗得到第一手信譽(yù)信息,然后按照周期越近信譽(yù)權(quán)重越高的原則計算最近3個周期的信譽(yù)信息,計算得到的信譽(yù)值再傳遞給其他節(jié)點,節(jié)點就可以根據(jù)自身的信譽(yù)值及其他節(jié)點的信譽(yù)值綜合得到信譽(yù)等級,來判斷節(jié)點的可信程度。
假設(shè)節(jié)點i與節(jié)點j相互觀察,第一手信譽(yù)信息可以用Fij表示,信譽(yù)報告值用FRij表示,信譽(yù)等級用R表示。在一個周期內(nèi)若觀察到節(jié)點正常,信譽(yù)值加α,若觀察到節(jié)點異常,則減β,若一個周期內(nèi)沒有觀察到節(jié)點行為,則減δ,要求α<δ<β,這樣可以更快地剔除惡意節(jié)點。在3個周期末,按公式(1)計算FRij:
(1)
這里系數(shù)可以根據(jù)實際環(huán)境中的硬件條件或其他條件進(jìn)行調(diào)整,應(yīng)保持最近周期內(nèi)的信譽(yù)度權(quán)重更高,確保信譽(yù)值得新鮮性。
為避免因為節(jié)點故障而產(chǎn)生誤判,計算信譽(yù)等級還需考慮周圍節(jié)點的信譽(yù)報告。假設(shè)節(jié)點i收到節(jié)點j的信譽(yù)報告FRkj,節(jié)點i依據(jù)公式(2)更新信譽(yù)等級Rij:
Rij=w·FRij+(1-w)·FRkj
(2)
其中:w可設(shè)定參數(shù)。節(jié)點i接收到所有關(guān)于j的信譽(yù)報告都應(yīng)執(zhí)行該過程。在初始化時,設(shè)定初始值r0、最大值rmax和門限值rthresh,當(dāng)Rij>rthresh時,節(jié)點i與j互相信任,否則認(rèn)為j是惡意節(jié)點。
當(dāng)節(jié)點間開始交互報文時,首先計算第一手信譽(yù)信息。在一個周期內(nèi)若節(jié)點i與j正常交互,則Fij+α,若失敗則Fij-β,若沒有交互則Fij-δ,其中(α<δ<β)。
每過3個周期,節(jié)點i按照公式(1)計算信譽(yù)報告。同時考慮周圍節(jié)點的信譽(yù)報告,按照公式(2)計算節(jié)點i的信譽(yù)等級,并作為最終信譽(yù)度寫入信息列表中。
信譽(yù)系統(tǒng)有一定的局限性,很難判定惡意節(jié)點和故障節(jié)點,設(shè)定Δ=rmax-rthresh,隨著Δ的增大,誤判率會降低,但系統(tǒng)靈敏度會隨之下降,因此只能在誤判度和靈敏度之間尋求一個平衡。
2.2.1.3 更新
網(wǎng)絡(luò)正常運(yùn)行階段,隨著網(wǎng)絡(luò)的動態(tài)變化以及惡意節(jié)點的攻擊,節(jié)點信譽(yù)度會發(fā)生變化,因此必須更新信譽(yù)度。計算得出新的信譽(yù)等級后要對節(jié)點本地列表中的歷史信譽(yù)度進(jìn)行更新,從而保持節(jié)點對鄰節(jié)點信譽(yù)信息的動態(tài)掌握。更新歷史信譽(yù)度采取加權(quán)求和的方式,若歷史信譽(yù)度為默認(rèn)值,則用新信譽(yù)度進(jìn)行替換,否則按公式(3)進(jìn)行更新。
Rij=λRijold+ (1-λ)Rijnew
(3)
其中:λ為歷史信譽(yù)度權(quán)重,可根據(jù)不同網(wǎng)絡(luò)環(huán)境進(jìn)行設(shè)置。
2.2.2 信譽(yù)管理
信譽(yù)管理是該模型的核心,負(fù)責(zé)網(wǎng)絡(luò)中信譽(yù)信息的存儲、提取、更新、刪除等任務(wù),確保節(jié)點信譽(yù)度的新鮮、高效和安全。
網(wǎng)絡(luò)建立初期,節(jié)點的信息列表為空,節(jié)點間相互發(fā)送如下報文交換信息并保存在自己的信息列表中。當(dāng)網(wǎng)絡(luò)運(yùn)行到一定周期后,就會伴隨有節(jié)點信息列表的更新和刪除。
表2 報文格式
節(jié)點信息列表管理流程為:當(dāng)網(wǎng)絡(luò)開始運(yùn)行,節(jié)點A與B開始交互,查看交互報文中節(jié)點B的信譽(yù)信息,并與信譽(yù)閾值進(jìn)行比較,若小于閾值,則將節(jié)點B標(biāo)記為非正常節(jié)點,不建立信息列表;若大于閾值,則計算節(jié)點A與B的信譽(yù)度,并保存到節(jié)點A的信息列表中。隨著網(wǎng)絡(luò)的運(yùn)行,每過3個周期節(jié)點A更新關(guān)于B的歷史信譽(yù)度,保證列表的新鮮性。
2.2.3 信譽(yù)決策
信譽(yù)決策主要是利用信譽(yù)度進(jìn)行網(wǎng)格Leader選擇,識別出惡意節(jié)點,并選擇信譽(yù)度高且距離網(wǎng)格中心近的節(jié)點作為網(wǎng)格Leader,負(fù)責(zé)網(wǎng)格數(shù)據(jù)轉(zhuǎn)發(fā),保證網(wǎng)絡(luò)的安全運(yùn)行。因此本部分主要包括兩方面:惡意節(jié)點識別和網(wǎng)格Leader選擇。
2.2.3.1 惡意節(jié)點識別
惡意節(jié)點的識別是提高網(wǎng)絡(luò)安全的重要環(huán)節(jié),能夠準(zhǔn)確識別并處理惡意節(jié)點是衡量信任模型性能的關(guān)鍵[15]。本文定義了兩個閾值分別是處理閾值θ和預(yù)警閾值φ,以及定義了節(jié)點的3種狀態(tài)分別是爭創(chuàng)狀態(tài)、懷疑狀態(tài)、驅(qū)除狀態(tài)。
正常狀態(tài)表示節(jié)點的信譽(yù)等級在允許的范圍內(nèi),可以將此節(jié)點選為可靠的Leader進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。懷疑狀態(tài)表示節(jié)點新的信譽(yù)信息與歷史信譽(yù)信息變化較大,超過了預(yù)警閾值φ,故將此類節(jié)點定義為懷疑狀態(tài),繼續(xù)觀察一個周期,若再次發(fā)生異常,則將該節(jié)點采取處理措施。驅(qū)除狀態(tài)表示節(jié)點信譽(yù)度低于處理閾值θ,直接移出網(wǎng)絡(luò)。
圖3 惡意節(jié)點識別流程圖
2.2.3.2 網(wǎng)格Leader選擇
根據(jù)節(jié)點計算得信譽(yù)等級進(jìn)行網(wǎng)格Leader的選擇,是信譽(yù)決策的目的。本文充分考慮節(jié)點信譽(yù)等級和距離網(wǎng)格中心距離,利用信譽(yù)度進(jìn)行網(wǎng)格Leader選擇的流程如圖4所示。
圖4 網(wǎng)格Leader選擇流程圖
利用NS2仿真實驗工具[16]來驗證信譽(yù)模型的安全性及測試網(wǎng)絡(luò)性能。在仿真中,節(jié)點總數(shù)設(shè)置為100個,節(jié)點運(yùn)動區(qū)域為500 m×500 m,網(wǎng)格大小為100 m×100 m,節(jié)點傳輸半徑為80 m,在區(qū)域內(nèi)以0-10 m/s的隨機(jī)速度隨機(jī)運(yùn)動,到達(dá)目標(biāo)點后短暫停留,繼續(xù)向新目標(biāo)點隨機(jī)運(yùn)動,直到仿真結(jié)束。其中設(shè)置部分惡意節(jié)點,在網(wǎng)絡(luò)中發(fā)動多種攻擊,包括數(shù)據(jù)報丟棄攻擊,篡改攻擊,誹謗攻擊以及掩飾攻擊等。節(jié)點以固定比特率發(fā)送數(shù)據(jù)包,大小為128 bit,每秒發(fā)送4個報文,仿真時間為300 s。具體的仿真參數(shù)如表3所示。
表3 實驗仿真參數(shù)
隨著網(wǎng)絡(luò)的運(yùn)行,節(jié)點之間有了信息交互,節(jié)點信譽(yù)度發(fā)生變化。如圖5所示,節(jié)點的初始信譽(yù)值為0.6,隨著網(wǎng)絡(luò)運(yùn)行時間的增長,正常節(jié)點的信譽(yù)等級呈現(xiàn)平滑緩慢上升趨勢,而由于惡意節(jié)點對鄰節(jié)點的惡意影響,惡意節(jié)點的間接信譽(yù)度對信譽(yù)等級產(chǎn)生較大影響,因此惡意節(jié)點的信譽(yù)等級出現(xiàn)快速下滑趨勢,當(dāng)信譽(yù)等級達(dá)到預(yù)警閾值0.45以下時,先觀察一個周期,發(fā)現(xiàn)其信譽(yù)等級仍存在下降趨勢,將其剔除出網(wǎng)絡(luò)。
圖5 節(jié)點信譽(yù)等級變化趨勢圖
圖6表示在惡意節(jié)點數(shù)不同時的分組投遞率變化。可以看出隨著網(wǎng)格內(nèi)惡意節(jié)點數(shù)的增加,兩個協(xié)議的分組投遞率都在減小,但改進(jìn)的網(wǎng)格Leader選擇協(xié)議的分組投遞率高于原網(wǎng)格Leader選擇協(xié)議的分組投遞率,這是因為網(wǎng)格內(nèi)惡意節(jié)點數(shù)增多,惡意節(jié)點的各種攻擊行為中斷了正常節(jié)點的報文傳送,而信譽(yù)系統(tǒng)及時檢測處理惡意節(jié)點,因此隨著惡意節(jié)點數(shù)的增加,改進(jìn)后的網(wǎng)格Leader選擇協(xié)議比原網(wǎng)格Leader選擇協(xié)議的分組投遞率影響更小。
圖6 不同惡意節(jié)點數(shù)下的分組投遞率
圖7表示在惡意節(jié)點數(shù)固定為20,節(jié)點在不同周期時的點到點平均時延??梢钥闯龌谛抛u(yù)系統(tǒng)的網(wǎng)格Leader選擇協(xié)議點到點平均時延比原網(wǎng)格Leader選擇協(xié)議明顯偏高,這是因為加入信譽(yù)系統(tǒng)增加了點到點的身份認(rèn)證,節(jié)點的報文處理變復(fù)雜,對惡意節(jié)點的識別等都增加了路由開銷。
圖7 不同周期下的點到點平均時延
本文首先運(yùn)用形式化分析方法對GRID路由協(xié)議中的網(wǎng)格Leader選擇協(xié)議協(xié)議進(jìn)行安全性分析,得出該協(xié)議在面臨選擇新節(jié)點時只考慮到離網(wǎng)格中心的位置,易被內(nèi)部節(jié)點惡意攻陷,篡奪網(wǎng)格控制權(quán)。接著運(yùn)用基于信譽(yù)系統(tǒng)的方法從信譽(yù)度計算、信譽(yù)管理、信譽(yù)決策3個方面對網(wǎng)格Leader選擇協(xié)議進(jìn)行改進(jìn),增加了以信譽(yù)度為首位的網(wǎng)格Leader優(yōu)先級選擇方案,在網(wǎng)絡(luò)通信前期識別出惡意節(jié)點并剔除,從而預(yù)防了內(nèi)部惡意節(jié)點的篡奪攻擊。本文對網(wǎng)格Leader選擇協(xié)議的形式化分析不夠深入,接下來應(yīng)采用更深入、更自動的方法分析它的安全性,同時增加信譽(yù)系統(tǒng)后網(wǎng)絡(luò)通信性能影響很大,后續(xù)應(yīng)研究采用效率更高的算法改進(jìn)系統(tǒng)。