朱 穎,朱金榮,時壯壯,徐思韻,夏長權(quán)
(揚州大學(xué) 物理科學(xué)與技術(shù)學(xué)院,江蘇 揚州 225000)
AODV路由協(xié)議是按需的一種路由協(xié)議,該協(xié)議是DSR(Dynamic Source Routing)和DSDV(Destination-Sequenced Distance-Vector Routing)的結(jié)合體。網(wǎng)絡(luò)的運行需要移動節(jié)點的相互配合,在此期間既存在正常節(jié)點,也存在惡意節(jié)點。為確保網(wǎng)絡(luò)正常運轉(zhuǎn),需要將路由協(xié)議的安全放在首位[1]。Ad Hoc網(wǎng)絡(luò)目前存在3類安全威脅[2]:1)針對網(wǎng)絡(luò)本身的攻擊;2)針對鏈路的攻擊;3)針對終端的攻擊?,F(xiàn)有技術(shù)針對這3類攻擊有對應(yīng)的解決方法,雖然這些方法能夠抵御網(wǎng)絡(luò)系統(tǒng)的外部攻擊,但不能有效解決內(nèi)部攻擊問題。當(dāng)前,需要一種能夠解決網(wǎng)絡(luò)內(nèi)部攻擊問題的方法,即設(shè)計一個基于信任機(jī)制[3-4]的最短路徑TAODV路由協(xié)議。該協(xié)議提出一個信任值計算模型,對每個節(jié)點的信任值進(jìn)行相應(yīng)計算,并引入信任度,對常見的內(nèi)部攻擊提出抵抗策略。綜上,可以判斷出每個路徑上的信任值,最終尋找到一條最短路徑。仿真實驗結(jié)果表明,改進(jìn)后的路由協(xié)議進(jìn)一步增強(qiáng)了網(wǎng)絡(luò)的安全性與穩(wěn)定性。
信任是人類社會的一種自然屬性,并不存在權(quán)威和統(tǒng)一定義[5]。基本的信任模型有兩種,分別是節(jié)點信任模型[6]和數(shù)據(jù)信任模型[7]。據(jù)相關(guān)統(tǒng)計,截止到2021年,人們對信任的定義已多達(dá)100多種。信任的性質(zhì)分為主觀性、關(guān)聯(lián)性以及傳遞性,同時,存在部分的客觀性,而連接信任值模型的就是節(jié)點之間的互信任值[8]。設(shè)計一個信任值模型,首先需要判斷節(jié)點之間的互信任值,此時會存在一定幾率的惡意節(jié)點,需要將這類節(jié)點進(jìn)行隔絕,節(jié)點才能夠選擇出排除惡意節(jié)點的正常節(jié)點。同時,將路由探索以及網(wǎng)絡(luò)資源內(nèi)部的消耗考慮在內(nèi),模型選用本地的直接信任方式。
如圖1所示,框架結(jié)構(gòu)存在5類模塊,分別是運算模塊、比較模塊、分類模塊、更新模塊和監(jiān)測模塊。運算模塊是通過Beth公式進(jìn)行信任值的計算,比較模塊是將鄰居節(jié)點與信任閾值進(jìn)行比較。分類模塊是將符合標(biāo)準(zhǔn)的路由節(jié)點與不符合標(biāo)準(zhǔn)的路由節(jié)點進(jìn)行分類。監(jiān)測模塊對路由協(xié)議進(jìn)行監(jiān)測,當(dāng)鄰居節(jié)點的信任值小于信任閾值時,將其拉入惡意節(jié)點黑名單并隔絕該節(jié)點,同時重新進(jìn)行節(jié)點分類,更新分類好的節(jié)點信任值,并再一次運算信任值、比較、分類和監(jiān)測操作。由于網(wǎng)絡(luò)傳輸?shù)拈_始階段存在傳輸錯誤,所以選取小于1/2的值作為信任值閾值,隨后,惡意節(jié)點的通信失敗次數(shù)增多,當(dāng)網(wǎng)絡(luò)逐漸穩(wěn)定狀態(tài)時采用稍大于1/2的值作為信任值閾值。在路由選擇路徑的途中以節(jié)點信任值給出的輸出報表為基礎(chǔ),在排除惡意節(jié)點的前提下,利用本文設(shè)計的基于信任機(jī)制TAODV從多條可供選擇的路徑中選擇平均信任值最優(yōu)的一條路徑,從而獲取一條從源節(jié)點到目的節(jié)點的最短路徑。
圖1 基于信任值模型的框架結(jié)構(gòu)Figure 1. Framework based on trust value model
在數(shù)學(xué)領(lǐng)域中,二項式分布是n次重復(fù)的伯努利實驗,貝塔分布則是伯努利分布和二項式分布的共軛先驗分布密度,該節(jié)點交互成功的概率取決于先驗分布和后驗分布,其這兩種分布均保持貝塔分布的形式,模型比較復(fù)雜。高斯分布也稱正態(tài)分布,其缺點是需要使用完整的樣本信息來預(yù)測,并且模糊程度較低。Beth模型可以處理分類任務(wù),適合增量式訓(xùn)練,對缺失數(shù)據(jù)不太敏感,算法也比較簡單,因此本文采用Beth計算模型。Beth模型使用算數(shù)平均的方式來計算鄰居節(jié)點信任值,本文采用Beth模型中的簡單算術(shù)平均方式來計算鄰居節(jié)點信任值。樣本容量記作M,節(jié)點i和節(jié)點j互相交互M次。在節(jié)點i與節(jié)點j進(jìn)行通信時,用y表示成功的次數(shù),用n表示失敗的次數(shù)。節(jié)點i對節(jié)點j信任值的計算式如式(1)所示。
(1)
式(2)為該信任值模型的相關(guān)計算式。通過控制報文(記作ch)中的信任值tch(i,j)來判斷節(jié)點j周圍存在這一跳范圍內(nèi)的鄰居節(jié)點i的可能性,此時作為鄰居節(jié)點的i是惡意節(jié)點的概率較低,所以可以將其權(quán)值略微調(diào)低。通過路由報文(記作cp)能夠算出節(jié)點i相對于節(jié)點j的信任值tcp(i,j)??紤]到在通信過程中可能存在的其他問題,在實際應(yīng)用中將tcp(i,j)的權(quán)值調(diào)整為計算值的1.1倍。
trust(i,j)=wk×tch(i,j)+wp×tcp(i,j)
(2)
當(dāng)節(jié)點i與節(jié)點j之間尚未存在通訊記錄時,若存在未知的新節(jié)點添加進(jìn)Ad Hoc網(wǎng)絡(luò)中或存在某個節(jié)點從原來位置略微調(diào)整至其他位置,需要給新節(jié)點的初始信任值賦值為1/2,賦值過大將影響其他節(jié)點之間的信任值,賦值過小則未起到相關(guān)作用。隨著時間推移,兩者之間的信任值會伴隨相互的交流逐漸穩(wěn)定,并趨于一個值。同時設(shè)置一個閾值來判斷存在信任值低于閾值的惡意節(jié)點的可能性,若發(fā)現(xiàn)存在惡意節(jié)點則先廣播這條錯誤預(yù)警,并排除該節(jié)點,確保節(jié)點之間都是正常節(jié)點。工作流程如圖2所示。
圖2 節(jié)點信任值流程Figure 2. Flow of node trust value
在AODV路由協(xié)議的路由選擇中,對于相同的RREQ(Route Request)報文,每個節(jié)點只能接收一次。當(dāng)?shù)诙谓邮盏絉REQ報文時,該報文將被舍棄?;谠摍C(jī)制,在到達(dá)目的節(jié)點的路由路徑不止一條的情況下,目的節(jié)點只會對首個到達(dá)的請求做出應(yīng)答,隨著該請求被應(yīng)答,該請求信息會被舍棄。導(dǎo)致最后從源節(jié)點到達(dá)目的節(jié)點的路徑只存在一條,但該條路徑卻不是最可靠的。因此,為了顯示出信任值對路徑選擇的影響,在路由選擇的過程中應(yīng)該建立不止一條的備選路由路徑[9],從而選擇出最優(yōu)路徑。
各個路徑在備選路由建立路徑的途中都各自保留自身的信任值,所以在確定最優(yōu)路由時,可以通過信任值進(jìn)行相應(yīng)的衡量,同時還需將序列號以及跳數(shù)的大小一并考慮在內(nèi)。序列號和跳數(shù)越大,信任值越低。規(guī)則如下:
1)備選路由路徑的目的節(jié)點序列號需大于路由表中的路由序列號;
2)當(dāng)備選路由路徑的目的節(jié)點序列號與路由表中的路由序列號一致時,備選路由的信任值更大;
3)當(dāng)備選路由路徑的目的節(jié)點序列號與路由信任值同路由表中該路由的參數(shù)均一致時,備選路由所在的跳數(shù)更小。
目的節(jié)點在初始時遵守先進(jìn)先出的原則來決定應(yīng)答的先后順序,后續(xù)如果發(fā)現(xiàn)其他路由請求將以路由請求信任值的大小判斷先后順序,信任值高的路由請求擁有優(yōu)先權(quán)。而鄰居節(jié)點在接收到路由應(yīng)答時,會對兩者之間的信任值進(jìn)行比較,前者是其對上一跳節(jié)點的信任值,后者是當(dāng)前路由應(yīng)答的路徑信任值[10]。如果前者的信任值小于后者的信任值,那么路由應(yīng)答的信任值將由前者取代,持續(xù)進(jìn)行,直至原路返回源節(jié)點。所以,路由應(yīng)答中的路徑信任值具有關(guān)鍵性作用。
該協(xié)議的源身是AODV路由協(xié)議,是以信任機(jī)制為基礎(chǔ)對AODV路由協(xié)議進(jìn)行一定優(yōu)化。所以在路由發(fā)現(xiàn)和路由維護(hù)兩方面和AODV路由協(xié)議基本保持一致,其中的區(qū)別是每個路由節(jié)點在運作過程前均需使用信任模型進(jìn)行運算、比較、分類以及監(jiān)測。若被監(jiān)測為惡意節(jié)點就舍棄該節(jié)點,反之繼續(xù)運行。該協(xié)議選取路徑節(jié)點序列號較大、跳數(shù)較小同時信任值較大的路徑作為從源節(jié)點到目的節(jié)點的路徑,可以得出一條最優(yōu)路徑,同時路徑具有高可靠性。
以AODV路由協(xié)議為基礎(chǔ),在此基礎(chǔ)上添加路徑信任值的欄目可以得到TAODV路由協(xié)議的路由請求分組格式以及路由應(yīng)答分組格式,如圖3和圖4所示。如果在通信過程中,中間節(jié)點與鄰居節(jié)點的信任值更大,則以中間節(jié)點為準(zhǔn),取代路由中的路徑信任值。
圖3 TAODV路由請求格式Figure 3. TAODV routing request format
圖4 TAODV路由應(yīng)答格式Figure 4. TAODV route response format
TAODV對常見的幾類[11-12]惡意行為提出了對應(yīng)的抵抗措施,確保節(jié)點能夠進(jìn)行安全監(jiān)測,同時選擇信任值高的節(jié)點可以在一定程度上增強(qiáng)網(wǎng)絡(luò)的安全性[13]。
2.2.1 DoS攻擊安全監(jiān)測
AODV在發(fā)起路由請求時采用泛洪的方式,該方式較消耗網(wǎng)絡(luò)資源,易引發(fā)鏈路斷裂。鏈路斷裂的原因可能是受到DoS(Denial of Service)攻擊,也可能是節(jié)點高速移動的影響,所以AODV采取了相關(guān)措施進(jìn)行管理控制。在改進(jìn)的路由協(xié)議中,TAODV路由協(xié)議限制了單位時間里節(jié)點的發(fā)送數(shù)量。具體措施表現(xiàn)為每秒鐘每個節(jié)點發(fā)出的RREQ消息的次數(shù)要小于RREQ_RATELIMIT次,同時源節(jié)點需要遵循二的冪次遞減原則。源節(jié)點采取換搜索的方式進(jìn)行泛洪,依次增加搜索的半徑,當(dāng)超過規(guī)定的閾值后進(jìn)行全局搜索。
2.2.2 序列號攻擊的安全監(jiān)測
在AODV路由協(xié)議中,路由的新鮮程度由節(jié)點的序列號決定,序列號越大,該節(jié)點越新鮮。所以在路由控制報文中,序列號較大的目的節(jié)點可以優(yōu)先被選用,從而形成一條從源節(jié)點到目的節(jié)點的路徑。
但惡意節(jié)點可以擅自修改自身的節(jié)點序列號,而且會將自身的節(jié)點序列號修改為較大的序列號達(dá)到欺騙效果。為了監(jiān)測該類攻擊,設(shè)置一個閾值[14],當(dāng)鄰居節(jié)點收到報文時,將目的節(jié)點序列號與節(jié)點存儲的對應(yīng)的序列號進(jìn)行對比,若超過則表明發(fā)生了序列號攻擊。閾值選取序列號常規(guī)增加的最大范圍是RREQ_RATELIMIT同網(wǎng)絡(luò)總節(jié)點數(shù)的乘積。
歸一化路由開銷用來衡量到達(dá)目的節(jié)點的代價,其值是兩點之間某條路徑上所有鏈路開銷的總和,而最小路徑開銷是達(dá)到目的點的最佳路徑。跳數(shù)是指從源節(jié)點到達(dá)目的節(jié)點所經(jīng)歷節(jié)點的個數(shù),而最小跳數(shù)是指從源節(jié)點到達(dá)目的節(jié)點所經(jīng)歷的最小跳數(shù)。路徑是指從源節(jié)點到達(dá)目的節(jié)點所有路段的總和,而最優(yōu)路徑指從源節(jié)點到達(dá)目的節(jié)點所經(jīng)歷的最短的路徑長度。為了有效評估TAODV路由協(xié)議的性能[15-16],使用仿真軟件MATLAB對AODV路由協(xié)議和TAODV路由協(xié)議從歸一化路由開銷、最小跳數(shù)和最短路徑這3個方面依次進(jìn)行對比實驗,從而尋找到一條最優(yōu)路徑。對于給定的路由節(jié)點,依次進(jìn)行無信任機(jī)制的AODV路由協(xié)議仿真和有信任機(jī)制的TAODV路由協(xié)議仿真,得出兩者之間的歸一化路由開銷對比圖、最小跳數(shù)對比圖以及最短路徑對比圖。各個節(jié)點信任值的目標(biāo)結(jié)果體現(xiàn)在路由協(xié)議的性能上。由于在網(wǎng)絡(luò)安全方面還存在缺口,所以需要將信任值考慮在內(nèi)。信任度的指標(biāo)代指信任值閾值。通過對不同數(shù)值的路由節(jié)點數(shù)進(jìn)行仿真實驗,例如10、20、30、50、100、300、500,進(jìn)行多組對比實驗,從而得出結(jié)論。
如圖5所示,在路由節(jié)點個數(shù)相同時,TAODV路由協(xié)議的歸一化路由開銷總體小于AODV路由協(xié)議。當(dāng)TAODV的路由節(jié)點數(shù)由10個增加至20個時,路由開銷卻有減少的趨勢。這是因為在這個節(jié)點數(shù)量區(qū)間時,Beth算法限制了RREQ的最大傳輸范圍,丟棄了一部分超出范圍的不必要控制分組。當(dāng)路由節(jié)點數(shù)小于50時,TAODV路由協(xié)議的歸一化路由開銷明顯小于AODV路由協(xié)議,最高可相差近0.55。原因是AODV在節(jié)點運行的過程中容易受到各種惡意節(jié)點的攻擊[17],從而增加了路由開銷,而TAODV路由協(xié)議采用信任機(jī)制,可以應(yīng)對各種惡意攻擊從而起到防御抵抗作用,減少了路由開銷。隨著節(jié)點數(shù)量的增加,兩者之間的差距也逐漸平行,TAODV路由協(xié)議達(dá)到了一種平衡狀態(tài)。
圖5 AODV與TAODV的歸一化路由開銷對比Figure 5. Comparison of normalized routing overhead between AODV and TAODV
如圖6所示,在相同路由節(jié)點數(shù)的基礎(chǔ)上,TAODV路由協(xié)議的最小跳數(shù)均小于AODV路由協(xié)議,并且隨著節(jié)點數(shù)量的增加,兩者之間的差距也在不斷增大。這是因為AODV路由協(xié)議采用基于能量消耗的最小跳數(shù)方式,當(dāng)單個節(jié)點的能量耗盡時,該節(jié)點仍然可以被選中,但由于節(jié)點能量耗盡所以不能被再次使用,因此會增加一些額外的跳數(shù)。而TAODV路由協(xié)議采用基于信任機(jī)制的方式,節(jié)點之間的跳數(shù)選擇會根據(jù)信任值的計算式進(jìn)行選擇,擇優(yōu)選擇信任值高的節(jié)點選取跳數(shù),所以可以在一定程度上減少最小跳數(shù)的個數(shù)。
圖6 AODV與TAODV的最小跳數(shù)對比Figure 6. Comparison of the minimum hop count of AODV and TAODV
如圖7所示,在相同的路由節(jié)點個數(shù)下,TAODV路由協(xié)議的最優(yōu)路徑總體上小于AODV路由協(xié)議,并且隨著節(jié)點個數(shù)超過50個時,TAODV路由協(xié)議的最優(yōu)路徑與AODV路由協(xié)議的最優(yōu)路徑差距越發(fā)明顯。這是因為AODV路由協(xié)議的開銷比TAODV路由協(xié)議大,同時又由于AODV路由協(xié)議不能有效阻止DoS攻擊和序列號攻擊,所以影響報文傳輸,增加了路徑選擇的負(fù)擔(dān),從而增加了最優(yōu)路徑的長度。而TAODV路由協(xié)議由于采用信任機(jī)制的方式,可以在一定程度上減少DoS攻擊和序列號攻擊,加快報文的傳輸,從而達(dá)到最優(yōu)路徑。
圖7 AODV與TAODV的最優(yōu)路徑對比Figure 7. Comparison of the optimal path between AODV and TAODV
AODV路由協(xié)議由于不依靠固定基礎(chǔ)設(shè)施,所以使得協(xié)議的安全體系處于一個危險的區(qū)域中。而路由安全是路由協(xié)議的關(guān)鍵。本文在已有的AODV路由協(xié)議基礎(chǔ)上,采用基于信任機(jī)制的方式對AODV路由協(xié)議進(jìn)行最短路徑的研究,得出一個新的路由協(xié)議TAODV[18]。新協(xié)議基于信任機(jī)制,對每個節(jié)點的信任值進(jìn)行相應(yīng)計算,從而判斷出每個路徑上的信任值,最終尋找到一條最短路徑。由仿真結(jié)果可以看出,TAODV路由協(xié)議可以有效提高從源節(jié)點到達(dá)目的節(jié)點最短路徑的選擇,從而達(dá)到改善AODV路由協(xié)議的效果。目前的設(shè)計在AODV路由協(xié)議節(jié)點的安全性方面有一定的優(yōu)化改進(jìn),但為了更加全面地改進(jìn)AODV協(xié)議得到最優(yōu)路徑,需要從更多方面進(jìn)行研究,這是本文下一步的研究內(nèi)容。