,
(陸軍工程大學石家莊校區 電子與光學工程系,石家莊 050003)
移動Ad Hoc網絡(mobile ad hoc networks,MANET)[1]是由若干個帶有無線通信設備的移動節點組成的。MANET面臨的安全威脅日益嚴峻,無線鏈路本身易受到外部節點攻擊,而網絡路由的不斷變化也會導致節點間的信任關系產生動態變化,容易遭受內部節點背叛攻擊[2]。因此MANET的安全性已經成為一大研究熱點。
隨著定位技術的不斷發展,定位精度越來越高,因此基于位置的路由協議也引起了人們的重視[3]。GRID路由協議是WEN-HWA LIAO[4]等人提出的完全基于位置的路由協議,它利用位置信息完全解決了路由中的查找路由、數據轉發、維護路由3個關鍵問題。該協議將網絡所覆蓋的范圍劃分為網格狀的區域,每個網格內通過子協議網格Leader選擇協議(Grid Leader Selection Protocol)選取一個帶有定位裝置的節點,作為該網格的Leader,負責該網格的數據轉發[5]。本文將對該子協議的安全性進行研究。
本文將利用形式化分析的方法,先對網格Leader選擇協議的安全性進行分析[6],更形象地分析它可能存在的安全漏洞,之后利用信譽系統[7]對其進行改進,更好的解決其安全漏洞,以滿足MANET通信的安全目標。
形式化分析方法是用數學方法描述和推理,對協議及安全屬性進行形式化建模,將對協議的安全性分析轉化為對應形式化模型的分析[8],運用這種方法可以避免協議安全性分析的局限性,有可能發現安全協議的一些未知攻擊。
本文利用有限狀態機(Finite-state machine,FSM)對網格Leader選擇協議進行形式化建模。有限狀態機,又稱有限狀態自動機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型[9]。FSM是一種算法思想,由一組狀態、一個初始狀態、輸入和根據輸入及現有狀態轉換為下一個狀態的轉換函數組成。通常使用狀態圖來對FSM進行精確地描述。有限狀態機是一個五元組M=(Q,Σ,δ,q0,F),其中:
Q={q0,q1,...,qn}是有限狀態集合,Σ={σ1,σ2,...,σn}是有限輸入字符集合,δ:Q×Σ→Q是狀態轉移函數,q0∈Q是初始狀態,F?Q是最終狀態集合[10]。
GRID路由協議中,每個網格中的節點運行網格Leader選擇協議來維護本網格的Leader,保證該網格的數據轉發。網格Leader選擇協議規定距離網格中心最近的節點將被選為網格Leader,只要某節點被選為Leader,直到它移出網格才重新選取新Leader。定義S={S0,S1,S2},表示原網格Leader選擇協議的狀態集,S0表示初始狀態,F={S0}表示終結狀態。其FSM模型如圖1所示。

圖1 FSM模型
網格Leader周期性發送GATE(g,loc)分組,其中g是該網格坐標,loc是當前位置。當它離開該網格時,廣播RETIRE(g,T)分組,g是原網格坐標,T是它保存的路由表。保存T,并由狀態S0轉移到S1。若在一個周期內網格內節點沒有接收到GATE分組,則節點A廣播BID(g,loc)分組,g是網格坐標,loc是A的當前位置,轉入狀態S2。若Leader仍在該網格中,則向A回復GATE分組;非Leader節點X收到BID分組時,若它離網格中心比分組中的loc近,就向A回復BID(g,loc')分組,loc'為X當前位置,并廣播BID分組;若沒有收到新的GATE或BID(g,loc')分組,將自己認定為新的網格Leader,返回狀態S0。由于新Leader是節點自己認定的,因此同一網格中可能存在多個Leader。當一個自認為是網格Leader的節點收到其他離網格中心更近的節點發送的GATE分組時,就認為自己不是Leader,不再發送任何GATE分組[11]。
由圖1及其分析可知,網格Leader選擇協議在面臨選擇新節點時的優先級只考慮到離網格中心的位置,容易引起內部惡意節點的攻擊。若網格內存在惡意節點,當Leader離開時會廣播RETIRE報文,包含網格坐標,若惡意節點通過篡改將自己的位置坐標改為前網格Leader坐標,則它將被選為新的網格Leader,控制該網格的數據傳輸,在路由過程中竊取有用數據,破壞路由協議的工作過程。因此需要對網格Leader選擇協議進行改進增加它的安全性,本文結合現有的信譽系統,提出基于信譽度的信譽系統對Leader進行改進,增加選擇新網格Leader的依據,抑制內部背叛節點攻擊。
陳晶[12]等人在GRID協議的基礎上提出了安全的網格路由協議SGRP(Security Grid Routing Protocol),它利用單向散列函數為基礎而改進的TESLA認證方案[13],對新加入網絡的節點進行認證,并提出了一種基于CONFIDENT[14]的信譽系統來抑制內部惡意節點的破壞行為。仿真表明SGRP可以檢測出報文轉發時的惡意中斷攻擊者,同時有一定概率可以發現內部背叛節點。但SGRP沒有針對子協議網格Leader選擇協議進行安全性分析,也沒有對防止內部節點破壞進行設計。本文在SGRP協議的基礎上對網格Leader選擇協議進行改進,增加它對內部惡意節點的處理決策。
針對網格Leader選擇協議中面臨的內部攻擊問題,結合SGRP中的信譽機制對它進行了安全性改進。信譽模型以信譽度為依據,由信譽度計算、信譽管理及信譽決策三層組成,以信譽度計算為基礎,將第一手信譽度、信譽報告綜合成信譽等級,根據信譽度門限值進行信譽決策,高效判別出惡意節點,合理進行Leader選擇,提高網絡通信的安全可靠。
本文提出的信譽模型由信譽度計算、信譽管理和信譽決策組成。信譽度計算是模型的基礎,信譽管理是核心,信譽決策是目的。結構如圖2所示。

圖2 信譽模型結構圖
信譽度計算主要完成信譽度初始化,第一手信譽信息計算、信譽報告及信譽等級的具體計算過程。信譽管理主要負責網格內節點信譽度及保存路由表的更新,實現節點信息的動態管理。信任決策以信譽度為重要標準選擇網格Leader,通過節點信譽度識別惡意節點,并對識別到的惡意節點進行處理,從而提高網絡的安全性。
2.2.1 信譽度計算
2.2.1.1 初始化
模型主要維護節點保存的信息列表,詳細記錄節點間交互信息及信譽度列表,每個周期對節點的信譽度進行更新。信息列表如表1所示。

表1 信息列表
其中,IDi、IDj是節點i,j的身份標識;歷史信譽度表示在網絡運行期間節點通信過程中的信譽等級,范圍為[0,1],0表示節點完全不可信,節點須立即移出網絡,1表示節點完全可信,如果沒有計算結果則顯示為default,若為新節點,則設置為信譽度默認值,取值為0.6。
需要強調的是,節點自身不能保存自己的狀態列表,無法查看自己在其他鄰節點列表中的信譽度大小,以防惡意節點通過查詢自己的信譽度而發動掩飾攻擊將自身的信譽度提高。
2.2.1.2 計算
網絡內每個節點通過自身檢驗得到第一手信譽信息,然后按照周期越近信譽權重越高的原則計算最近3個周期的信譽信息,計算得到的信譽值再傳遞給其他節點,節點就可以根據自身的信譽值及其他節點的信譽值綜合得到信譽等級,來判斷節點的可信程度。
假設節點i與節點j相互觀察,第一手信譽信息可以用Fij表示,信譽報告值用FRij表示,信譽等級用R表示。在一個周期內若觀察到節點正常,信譽值加α,若觀察到節點異常,則減β,若一個周期內沒有觀察到節點行為,則減δ,要求α<δ<β,這樣可以更快地剔除惡意節點。在3個周期末,按公式(1)計算FRij:
(1)
這里系數可以根據實際環境中的硬件條件或其他條件進行調整,應保持最近周期內的信譽度權重更高,確保信譽值得新鮮性。
為避免因為節點故障而產生誤判,計算信譽等級還需考慮周圍節點的信譽報告。假設節點i收到節點j的信譽報告FRkj,節點i依據公式(2)更新信譽等級Rij:
Rij=w·FRij+(1-w)·FRkj
(2)
其中:w可設定參數。節點i接收到所有關于j的信譽報告都應執行該過程。在初始化時,設定初始值r0、最大值rmax和門限值rthresh,當Rij>rthresh時,節點i與j互相信任,否則認為j是惡意節點。
當節點間開始交互報文時,首先計算第一手信譽信息。在一個周期內若節點i與j正常交互,則Fij+α,若失敗則Fij-β,若沒有交互則Fij-δ,其中(α<δ<β)。
每過3個周期,節點i按照公式(1)計算信譽報告。同時考慮周圍節點的信譽報告,按照公式(2)計算節點i的信譽等級,并作為最終信譽度寫入信息列表中。
信譽系統有一定的局限性,很難判定惡意節點和故障節點,設定Δ=rmax-rthresh,隨著Δ的增大,誤判率會降低,但系統靈敏度會隨之下降,因此只能在誤判度和靈敏度之間尋求一個平衡。
2.2.1.3 更新
網絡正常運行階段,隨著網絡的動態變化以及惡意節點的攻擊,節點信譽度會發生變化,因此必須更新信譽度。計算得出新的信譽等級后要對節點本地列表中的歷史信譽度進行更新,從而保持節點對鄰節點信譽信息的動態掌握。更新歷史信譽度采取加權求和的方式,若歷史信譽度為默認值,則用新信譽度進行替換,否則按公式(3)進行更新。
Rij=λRijold+ (1-λ)Rijnew
(3)
其中:λ為歷史信譽度權重,可根據不同網絡環境進行設置。
2.2.2 信譽管理
信譽管理是該模型的核心,負責網絡中信譽信息的存儲、提取、更新、刪除等任務,確保節點信譽度的新鮮、高效和安全。
網絡建立初期,節點的信息列表為空,節點間相互發送如下報文交換信息并保存在自己的信息列表中。當網絡運行到一定周期后,就會伴隨有節點信息列表的更新和刪除。

表2 報文格式
節點信息列表管理流程為:當網絡開始運行,節點A與B開始交互,查看交互報文中節點B的信譽信息,并與信譽閾值進行比較,若小于閾值,則將節點B標記為非正常節點,不建立信息列表;若大于閾值,則計算節點A與B的信譽度,并保存到節點A的信息列表中。隨著網絡的運行,每過3個周期節點A更新關于B的歷史信譽度,保證列表的新鮮性。
2.2.3 信譽決策
信譽決策主要是利用信譽度進行網格Leader選擇,識別出惡意節點,并選擇信譽度高且距離網格中心近的節點作為網格Leader,負責網格數據轉發,保證網絡的安全運行。因此本部分主要包括兩方面:惡意節點識別和網格Leader選擇。
2.2.3.1 惡意節點識別
惡意節點的識別是提高網絡安全的重要環節,能夠準確識別并處理惡意節點是衡量信任模型性能的關鍵[15]。本文定義了兩個閾值分別是處理閾值θ和預警閾值φ,以及定義了節點的3種狀態分別是爭創狀態、懷疑狀態、驅除狀態。
正常狀態表示節點的信譽等級在允許的范圍內,可以將此節點選為可靠的Leader進行數據轉發。懷疑狀態表示節點新的信譽信息與歷史信譽信息變化較大,超過了預警閾值φ,故將此類節點定義為懷疑狀態,繼續觀察一個周期,若再次發生異常,則將該節點采取處理措施。驅除狀態表示節點信譽度低于處理閾值θ,直接移出網絡。

圖3 惡意節點識別流程圖
2.2.3.2 網格Leader選擇
根據節點計算得信譽等級進行網格Leader的選擇,是信譽決策的目的。本文充分考慮節點信譽等級和距離網格中心距離,利用信譽度進行網格Leader選擇的流程如圖4所示。

圖4 網格Leader選擇流程圖
利用NS2仿真實驗工具[16]來驗證信譽模型的安全性及測試網絡性能。在仿真中,節點總數設置為100個,節點運動區域為500 m×500 m,網格大小為100 m×100 m,節點傳輸半徑為80 m,在區域內以0-10 m/s的隨機速度隨機運動,到達目標點后短暫停留,繼續向新目標點隨機運動,直到仿真結束。其中設置部分惡意節點,在網絡中發動多種攻擊,包括數據報丟棄攻擊,篡改攻擊,誹謗攻擊以及掩飾攻擊等。節點以固定比特率發送數據包,大小為128 bit,每秒發送4個報文,仿真時間為300 s。具體的仿真參數如表3所示。

表3 實驗仿真參數
隨著網絡的運行,節點之間有了信息交互,節點信譽度發生變化。如圖5所示,節點的初始信譽值為0.6,隨著網絡運行時間的增長,正常節點的信譽等級呈現平滑緩慢上升趨勢,而由于惡意節點對鄰節點的惡意影響,惡意節點的間接信譽度對信譽等級產生較大影響,因此惡意節點的信譽等級出現快速下滑趨勢,當信譽等級達到預警閾值0.45以下時,先觀察一個周期,發現其信譽等級仍存在下降趨勢,將其剔除出網絡。

圖5 節點信譽等級變化趨勢圖
圖6表示在惡意節點數不同時的分組投遞率變化??梢钥闯鲭S著網格內惡意節點數的增加,兩個協議的分組投遞率都在減小,但改進的網格Leader選擇協議的分組投遞率高于原網格Leader選擇協議的分組投遞率,這是因為網格內惡意節點數增多,惡意節點的各種攻擊行為中斷了正常節點的報文傳送,而信譽系統及時檢測處理惡意節點,因此隨著惡意節點數的增加,改進后的網格Leader選擇協議比原網格Leader選擇協議的分組投遞率影響更小。

圖6 不同惡意節點數下的分組投遞率
圖7表示在惡意節點數固定為20,節點在不同周期時的點到點平均時延。可以看出基于信譽系統的網格Leader選擇協議點到點平均時延比原網格Leader選擇協議明顯偏高,這是因為加入信譽系統增加了點到點的身份認證,節點的報文處理變復雜,對惡意節點的識別等都增加了路由開銷。

圖7 不同周期下的點到點平均時延
本文首先運用形式化分析方法對GRID路由協議中的網格Leader選擇協議協議進行安全性分析,得出該協議在面臨選擇新節點時只考慮到離網格中心的位置,易被內部節點惡意攻陷,篡奪網格控制權。接著運用基于信譽系統的方法從信譽度計算、信譽管理、信譽決策3個方面對網格Leader選擇協議進行改進,增加了以信譽度為首位的網格Leader優先級選擇方案,在網絡通信前期識別出惡意節點并剔除,從而預防了內部惡意節點的篡奪攻擊。本文對網格Leader選擇協議的形式化分析不夠深入,接下來應采用更深入、更自動的方法分析它的安全性,同時增加信譽系統后網絡通信性能影響很大,后續應研究采用效率更高的算法改進系統。