張 帆,高 航,劉 亮,李寧偉,彭劍飛
(南京航空航天大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,南京 210000)
隨著科學(xué)技術(shù)的進步與發(fā)展,無人機因為其功能多樣,飛行動作靈活,安裝容易和操作簡單等優(yōu)點被廣泛應(yīng)用于各個領(lǐng)域,例如影視拍攝,農(nóng)業(yè)檢測,野火監(jiān)視,貨物運輸?shù)?為了適應(yīng)一些復(fù)雜任務(wù)場景,現(xiàn)階段通常通過在無人機上安裝無線傳感器組成無人機群來協(xié)同作業(yè).無人機之間通過構(gòu)建無人機自組織網(wǎng)絡(luò)來進行數(shù)據(jù)交互、融合和處理.
無人機自組織網(wǎng)絡(luò)采用多跳轉(zhuǎn)發(fā)的數(shù)據(jù)傳輸機制,每架無人機都需要參與路由的建立和數(shù)據(jù)的傳輸.一般的無人機都自覺承擔(dān)系統(tǒng)分配的任務(wù)且沒有惡意行為.然而,無人機群中可能存在一些惡意的內(nèi)部攻擊者和被捕獲的節(jié)點,它們作為間諜使得無人機網(wǎng)絡(luò)容易受到各種各樣的攻擊.如黑洞攻擊,污水攻擊,女巫攻擊,消息篡改攻擊等[1].這些攻擊不但影響整個網(wǎng)絡(luò)的性能,縮短網(wǎng)絡(luò)的生存時間,而且會丟棄,篡改任務(wù)數(shù)據(jù),給用戶造成無法彌補的損失.因此,安全的無人機網(wǎng)絡(luò)路由是目前急需解決的關(guān)鍵技術(shù).現(xiàn)階段安全的無人機網(wǎng)絡(luò)路由技術(shù)主要有兩個難點:
1)惡意節(jié)點的識別.無人機網(wǎng)絡(luò)缺乏長期穩(wěn)定鏈接,對惡意行為的檢測具有挑戰(zhàn)性.Qinghua Li等人提出利用交互記錄來識別惡意節(jié)點[2],主要思想是節(jié)點在收發(fā)報文時會記錄其與其他節(jié)點的交互情況(接收和發(fā)送的報文個數(shù))并生成交互記錄.在后續(xù)的報文轉(zhuǎn)發(fā)時,這些交互記錄會作為該節(jié)點證明自身可信度的重要依據(jù).然而該算法僅可檢測系統(tǒng)內(nèi)的黑洞/灰洞攻擊,無法抵御針對交互記錄的篡改或者偽造攻擊.
2)證據(jù)的收集與共享.因為在無人機網(wǎng)絡(luò)中節(jié)點稀疏分散且不經(jīng)常相遇,對檢測到的證據(jù)進行收集與共享就顯得尤為重要.Cho J H等人提出將證據(jù)嵌入到任務(wù)報文中伴隨報文傳播進行證據(jù)收集[3],以減少資源損耗.該算法解決了延時容忍網(wǎng)絡(luò)(Delay Tolerant Network,DTN)下證據(jù)收集的問題,仍然存在如下不足:1)觀測證據(jù)只有目的節(jié)點可以讀取,其利用率較低;2)對消息篡改攻擊的識別不夠準(zhǔn)確;3)若報文傳播路徑中存在丟包攻擊節(jié)點,所有的證據(jù)將伴隨報文一起被丟棄.
起源信任模型是一種能夠很好地反映數(shù)據(jù)與節(jié)點之間相互依賴性的循環(huán)框架:數(shù)據(jù)的完整性影響創(chuàng)建和操縱數(shù)據(jù)的網(wǎng)絡(luò)節(jié)點的信任值,反之亦然[4].在無人機網(wǎng)絡(luò)中基于報文的完整性可以對報文創(chuàng)建和操作者的行為做出有效評判并生成觀測證據(jù)[5],通過收集網(wǎng)絡(luò)中的觀測證據(jù),可以對證據(jù)指向節(jié)點做出信任評估.考慮到系統(tǒng)的安全性,在證據(jù)傳遞過程中,必須保證數(shù)據(jù)在可讀的前提下任何對數(shù)據(jù)的更改都是可被檢測的.本文利用節(jié)點的交互記錄和起源信息來識別網(wǎng)絡(luò)內(nèi)部攻擊并生成觀測證據(jù),使用非對稱密碼技術(shù)根據(jù)數(shù)據(jù)的哈希值生成數(shù)字簽名(Digital Signature,DS)來保證數(shù)據(jù)的共享性和完整性.基于以上思想提出了一種起源信息感知的無人機信任評估模型(UAVNpro),旨在實現(xiàn)準(zhǔn)確的對等信任評估,在最大化報文交付率的同時減少資源受限的網(wǎng)絡(luò)環(huán)境下的消息時延和通信成本.該模型可有效抵御無人機網(wǎng)絡(luò)中的黑洞攻擊、灰洞攻擊、假身份攻擊、信息篡改攻擊等.UAVNpro結(jié)合數(shù)字簽名和交互記錄對網(wǎng)絡(luò)內(nèi)的攻擊行為進行識別,觀測得到的證據(jù)被嵌入報文中并伴隨報文傳遞完成證據(jù)收集,最終目的節(jié)點利用現(xiàn)有證據(jù)對網(wǎng)絡(luò)內(nèi)節(jié)點進行信任評估.系統(tǒng)基于節(jié)點的信任值進行路由來保證系統(tǒng)的安全性,具有良好信任值的節(jié)點的消息將被其他節(jié)點接受和轉(zhuǎn)發(fā),而具有低信任值的節(jié)點將被從網(wǎng)絡(luò)中隔離.最后本文通過實驗將UAVNpro和現(xiàn)有的安全路由模型進行了對比分析,結(jié)果表明UAVNpro對不同密度的惡意節(jié)點具有較高的識別率,且在報文的投遞率和系統(tǒng)能耗上都要優(yōu)于現(xiàn)有模型.
本文第二節(jié)講述了現(xiàn)階段無人機安全路由算法的研究現(xiàn)狀.第三節(jié)描述了網(wǎng)絡(luò)模型和攻擊模型.第四節(jié)提出了起源信息感知的無人機信任評估模型,并給出了系統(tǒng)從攻擊檢測、證據(jù)收集到利用收集到的證據(jù)進行信任評估的整個處理過程.第五節(jié)將現(xiàn)有算法與UAVNpro進行實驗對比,并分析實驗結(jié)果.第六節(jié)總結(jié)全文.
延遲容忍網(wǎng)絡(luò)(Delay-tolerant Networking—DTN)機制已經(jīng)被很多研究證明能夠應(yīng)用到多無人機自組網(wǎng)通信中[6],關(guān)于DTN的路由算法的研究有很多.因為其不能保證端到端連接的特性,基于洪泛或者部分洪泛的方法在被廣泛利用,例如Epidemic[7]和PRoPHET[8].然而,這些方法往往導(dǎo)致網(wǎng)絡(luò)的擁塞和高額的資源消耗.RelayCast算法根據(jù)節(jié)點的歷史信息選擇中繼節(jié)點進行路由[9],EWMA算法通過將移動模型相似的節(jié)點組成集群進行路由[10].Jones E P C等人提出了MEED算法通過度量和預(yù)測下一跳節(jié)點的報文攜帶時間進行路由[11].Zekkori H等人提出了通過利用擺渡節(jié)點和集群進行路由以適應(yīng)環(huán)境的動態(tài)變化[12].這些路由協(xié)議采用歷史信息對未來進行概率預(yù)測,路由效率較高.
然而,以上路由協(xié)議在最初設(shè)計時,僅僅針對DTN網(wǎng)絡(luò)的特點,將提高報文投遞率,減少投遞延時,減少節(jié)點能量損耗和延長網(wǎng)絡(luò)生生存時間作為主要目標(biāo),卻沒有考慮對惡意節(jié)點的防范,因而這些路由協(xié)議存在嚴(yán)重的安全問題.安全路由協(xié)議不僅要在節(jié)約節(jié)點能量的前提下完成報文傳輸?shù)挠行酚蓻Q策,而且要保證報文從源節(jié)點到目的節(jié)點的傳輸過程中,每一個中間節(jié)點對報文的數(shù)據(jù)傳輸和處理時的安全.Asokan N提出采用傳統(tǒng)無線網(wǎng)絡(luò)的端到端數(shù)據(jù)加密技術(shù)來保證數(shù)據(jù)安全[13],但數(shù)據(jù)加密僅能保護系統(tǒng)免受外部攻擊者的攻擊,無法識別混入系統(tǒng)內(nèi)部的攻擊者.鄰域監(jiān)控方法通過引入一些獨立的監(jiān)視節(jié)點來監(jiān)控鄰居節(jié)點的流量,識別其惡意行為.Watchdog MDS[14]和CONFIDANT[15]結(jié)合信任機制和鄰域檢測來識別惡意節(jié)點.然而由于無人機網(wǎng)絡(luò)缺乏長期穩(wěn)定鏈接,因此不可能持續(xù)監(jiān)控鄰居節(jié)點.根據(jù)節(jié)點的行為反饋計算出信任值,然后根據(jù)信任進行路由是一種有效的安全措施.Zhu H提出了一種名為iTrust的基于信任的安全路由協(xié)議[16],引入可信機構(gòu)TA周期性的評估各個節(jié)點的信任.Asuquo P設(shè)計了一個分散的信任管理方案DTMS[17],通過對比節(jié)點的轉(zhuǎn)發(fā)數(shù)與能量消耗速率之間的關(guān)系來獲取信任值.Raj R V提出了一種名為MAXTRUST的概率性不良行為檢測方案[18],通過定期檢查節(jié)點的轉(zhuǎn)發(fā)歷史來檢測節(jié)點行為.Ayday和Fekri提出了一種迭代信任機制(ITRM)[19].其基本思想是:對于一個被評估者,所有評估者都給出評價,評價中與其他節(jié)點偏離最多的節(jié)點被視為惡意評估者.系統(tǒng)迭代執(zhí)行該過程,直到所有評估者給出的評價收斂到被評估者的全局信任.但以上方法都存在一個問題,為了收集證據(jù)系統(tǒng)間存在大量的通信開銷,獲取信任的代價過高.
Jin-Hee Cho等人針對該問題提出了一種內(nèi)嵌式的證據(jù)收集模型PROVEST[3].該模型根據(jù)報文的完整性來反向推斷報文產(chǎn)生節(jié)點或操作節(jié)點的信任值,節(jié)點在轉(zhuǎn)發(fā)報文之前先查驗報文,根據(jù)報文的完整性生成對前驅(qū)節(jié)點的觀測證據(jù).然后將證據(jù)嵌入到報文中一并傳輸,證據(jù)通過搭乘報文的順風(fēng)車到達目的節(jié)點.為防止前驅(qū)節(jié)點插入的證據(jù)被惡意篡改,對證據(jù)采用非對稱加密.存在一條加密秘鑰伴隨報文進行傳播,每個節(jié)點向報文插入證據(jù)之前首先利用該秘鑰對證據(jù)進行加密,然后將秘鑰進行單項哈希后與報文一起向后傳播.這種證據(jù)收集方式極大提高了信任準(zhǔn)確性和網(wǎng)絡(luò)安全性,又不會產(chǎn)生高額的通信開銷.但依舊存在如下問題:
1)算法效率問題:如果傳播途中惡意節(jié)點對密鑰進行了篡改,后續(xù)插入的證據(jù)將無法被解析,這將影響系統(tǒng)效率.
2)識別準(zhǔn)確率問題:算法在識別信息篡改攻擊時,僅利用前驅(qū)節(jié)點的信任值來判斷任務(wù)報文是否被篡改,判斷結(jié)果存在誤差.
3)無法抵御黑洞或灰洞攻擊:若網(wǎng)絡(luò)中存在黑洞或灰洞攻擊,證據(jù)將伴隨報文一起被丟棄,沒有證據(jù)支撐的系統(tǒng)將無法識別惡意節(jié)點.
本文以無人機群執(zhí)行搜索偵察任務(wù)為應(yīng)用場景,為了對一定區(qū)域進行持續(xù)偵察,無人機群需要對該區(qū)域進行覆蓋.每架無人機在按照航線飛行的同時拍攝具有地理標(biāo)記的圖像數(shù)據(jù)并選擇最快的路由路線傳回地面站.節(jié)點使用存儲轉(zhuǎn)發(fā)機制進行消息傳遞,即無人機大多數(shù)時間存儲信息,并攜帶信息移動,在進入其他無人機的通信范圍時通過路由協(xié)議判斷是否進行數(shù)據(jù)傳輸.本文參考已有的混合網(wǎng)絡(luò)技術(shù),不僅利用高通量鏈接來傳輸任務(wù)數(shù)據(jù)(圖片,視頻),還引入帶外信道來控制無人機行動.與文獻[20,21]功能類似,帶外信道采用XBee-PRO(IEEE 802.15.4)技術(shù)(覆蓋半徑長達1.5km,吞吐量小于80kbit/s),用來傳遞GPS數(shù)據(jù)、控制消息和無人機信任信息等.高通量信道采用Wi-Fi(IEEE 802.11n)技術(shù),用于傳遞視頻或圖像數(shù)據(jù)(Wi-Fi通信范圍為200-300m,UDP通量為80-100Mbit/s,為了防止和XBee-PRO干擾,Wi-Fi頻率可以與XBee-PRO設(shè)置不同的頻率).
除此之外,無人機的移動可以描述為一個線性的移動模型,無人機的移動方向是確定的,其速度在給定的范圍內(nèi)具有隨機性.無人機節(jié)點的模型較為復(fù)雜,不同無人機具有不同的航線、速度、監(jiān)視能力(即觀察證據(jù)的錯誤率)、協(xié)作能力、惡意行為概率如下:
1)航線:無人機節(jié)點的航線在任務(wù)分配時已經(jīng)確定,每個節(jié)點按照給定的 航線進行偵察.特殊情況下,無人機航線會根據(jù)環(huán)境變化進行重規(guī)劃.
2)速度:由于空中環(huán)境的影響(如風(fēng)力因素),現(xiàn)實中無人機節(jié)點的速度是不確定的,本文中節(jié)點的實時速度在給定的速度范圍U[v,v′]內(nèi)隨機取值.
3)監(jiān)視能力(Ppe,Pne):節(jié)點的監(jiān)視能力指的是形容節(jié)點的監(jiān)視錯誤率,即無人機節(jié)點可能會因為自身原因給出錯誤的證據(jù).節(jié)點的監(jiān)視錯誤率在(0,Pd]之間取值,其中0≤pd<1.
4)行為概率:無人機節(jié)點中加入惡意行為的觸發(fā)概率,代表其惡意程度.其中Pt表示丟棄報文的概率,Pi表示其身份攻擊的概率,Pm表示其篡改任務(wù)報文的概率.本文通過行為概率在[0,1]范圍內(nèi)取值來對無人機節(jié)點進行建模.節(jié)點中行為概率都為0的節(jié)點代表優(yōu)良節(jié)點,否則具有惡意性.
無人機群之中存在一些惡意節(jié)點對無人機網(wǎng)絡(luò)進行破壞,影響任務(wù)執(zhí)行,UAVNpro模型中主要考慮了以下攻擊行為:
1)身份攻擊:本文協(xié)議要求節(jié)點在給出證據(jù)時要在證據(jù)上簽署自己的ID作為身份識別.但是攻擊者可能為了隱藏身份而插入虛假ID,如果攻擊成功,此攻擊者的惡意行為將會被解釋為另一個節(jié)點的惡意行為,從而引起不準(zhǔn)確的信任評估.本文對身份攻擊的識別在4.2.3節(jié)敘述.
2)假證據(jù)攻擊:攻擊節(jié)點向優(yōu)良節(jié)點提供負(fù)面證據(jù)或者向惡意節(jié)點提供正面證據(jù),導(dǎo)致優(yōu)良節(jié)點的信任值降低,惡意節(jié)點的信任值提高,這嚴(yán)重影響信任評估的準(zhǔn)確性.本文對假證據(jù)攻擊的識別在4.2.3節(jié)敘述.
3)信息篡改:信息篡改攻擊主要分為兩種,對報文的篡改攻擊和對證據(jù)的篡改攻擊.其中報文篡改攻擊通過篡改任務(wù)報文來影響任務(wù)執(zhí)行結(jié)果,給用戶造成無法彌補的損失.本文對報文篡改攻擊的識別在4.2.2節(jié)敘述.證據(jù)篡改攻擊發(fā)生在證據(jù)收集的階段,惡意節(jié)點通過篡改前驅(qū)節(jié)點已經(jīng)插入的證據(jù)形成假證據(jù),從而在影響系統(tǒng)評估準(zhǔn)確性的同時隱藏自身身份.本文對證據(jù)篡改攻擊的識別在4.1節(jié)敘述.
4)黑洞攻擊:惡意節(jié)點將收到的報文丟棄不轉(zhuǎn)發(fā),造成傳輸空洞,影響任務(wù)正常執(zhí)行.
5)灰洞攻擊:此類攻擊是黑洞攻擊的改進,若攻擊者將收到的報文全部丟棄,利用網(wǎng)絡(luò)的冗余性就能很快發(fā)現(xiàn)評估者并將其隔離.但如果攻擊者選擇性丟棄報文,因為無人機自組織網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動態(tài)性,部分丟包是正常的,這樣可以降低鄰居節(jié)點對攻擊者的懷疑,使得攻擊者可以繼續(xù)對網(wǎng)絡(luò)進行破壞.本文對黑洞/灰洞攻擊的識別在4.2.1節(jié)敘述.
6)注包攻擊:攻擊節(jié)點通過給網(wǎng)絡(luò)注入大量數(shù)據(jù)包來產(chǎn)生額外通信開銷,消耗其他節(jié)點能量,減少網(wǎng)絡(luò)壽命并引起網(wǎng)絡(luò)癱瘓.本文對注包攻擊的識別在4.2.1節(jié)敘述.
在攻擊觸發(fā)階段每個節(jié)點會根據(jù)自身的攻擊模型進行行為選擇,圖1結(jié)合本文中所考慮的攻擊情形描述了每個節(jié)點的行為路線.攻擊模型中為每種攻擊行為都設(shè)定有觸發(fā)概率,惡意節(jié)點會因觸發(fā)概率的不同而表現(xiàn)出不同的惡意程度,它們會以隨機攻擊的方式來逃避檢測,本文在第五節(jié)通過實驗分析了模型對不同惡意程度節(jié)點的檢測率.在安全檢查階段,報文攜帶節(jié)點會對其他節(jié)點進行行為檢查,生成觀測證據(jù)并嵌入報文之中.惡意節(jié)點會以一定的概率生成假證據(jù)來影響信任評估,合法節(jié)點也有幾率因為觀測失誤生成假證據(jù),兩種行為以一定閾值作為區(qū)分.
圖1 無人機節(jié)點攻擊行為圖Fig.1 UAV attack scenarios graph
在無人機網(wǎng)絡(luò)中,由于節(jié)點之間的接觸時間短,節(jié)點無法在相遇時正確監(jiān)視鄰居節(jié)點,尤其是無法監(jiān)測鄰居節(jié)點攜帶的報文是否被轉(zhuǎn)發(fā).因此本文提出了一種起源信息感知的信任評估模型用于無人機自組織網(wǎng)絡(luò)中的安全路由(UAVNpro),根據(jù)起源信息生成觀測證據(jù),并以此來進行信任評估.UAVNpro對節(jié)點信任的計算都是基于證據(jù)的,證據(jù)存在于其整個生命周期之中.由于DTN網(wǎng)絡(luò)間歇性連接的特點,節(jié)點之間接觸時間過短可能存在誤判.根據(jù)節(jié)點的行為可以將證據(jù)分為兩類:1)正面證據(jù):指觀察到節(jié)點的正面行為,進行積極推薦,但不排除有假陽性.2)負(fù)面證據(jù):觀察到節(jié)點的負(fù)面行為,不排除有假陰性.系統(tǒng)會識別出故意產(chǎn)生虛假證據(jù)的惡意節(jié)點并給予信任懲罰.本文模型不允許節(jié)點生成指向自身的證據(jù)進行進自我推薦,后繼節(jié)點在收到報文后會對前驅(qū)節(jié)點插入的證據(jù)進行檢查.
為了防止外部設(shè)備對網(wǎng)絡(luò)數(shù)據(jù)的監(jiān)聽,本文無人機網(wǎng)絡(luò)的通訊采用密文通訊,對通訊數(shù)據(jù)采用公鑰密碼進行加密.在公鑰加密技術(shù)里,每一個使用者有一對密鑰:一把公鑰和一把私鑰.公鑰可以自由發(fā)布,但私鑰則秘密保存.在任務(wù)開始時,每架無人機都存儲有整個無人機網(wǎng)絡(luò)中其他節(jié)點的公鑰,兩個節(jié)點通訊時發(fā)送方使用接收方的公鑰對數(shù)據(jù)進行加密處理,收到數(shù)據(jù)后接收方使用自己的私鑰進行解密.私鑰的私密性可以保護整個無人機網(wǎng)絡(luò)抵御外部攻擊.
針對系統(tǒng)內(nèi)部攻擊,本節(jié)從證據(jù)傳輸、攻擊識別和信任評估由三個方面對UAVNpro進行了描述.4.1節(jié)講述了整個系統(tǒng)如何對網(wǎng)絡(luò)中的證據(jù)進行收集.4.2節(jié)講述了如何對無人機網(wǎng)絡(luò)中節(jié)點的惡意行為進行識別并生成負(fù)面證據(jù).4.3節(jié)講述了地面站如何根據(jù)收集到的證據(jù)對各個節(jié)點進行信任評估.為了便于參考,表1匯總了所有使用的符號及其含義.
每個報文節(jié)點在任務(wù)執(zhí)行期間都會產(chǎn)生對其他節(jié)點的觀察證據(jù)Ob,在報文轉(zhuǎn)發(fā)期間將Ob插入報文之中一并轉(zhuǎn)發(fā).報文結(jié)構(gòu)如式(1)所示,MT表示傳輸報文,即節(jié)點之間存儲轉(zhuǎn)發(fā)的報文.MM表示任務(wù)報文,Obi表示MT傳輸過程途徑節(jié)點i收集的觀察證據(jù),內(nèi)嵌于傳輸報文之中伴隨任務(wù)報文進行傳遞.MT表示傳輸報文,是一個由MM打頭的順序隊列,在傳遞的過程中報文攜帶節(jié)點依次將其生成的MM插入隊尾.本文設(shè)定Ob由一個三元組(idc,t,E)組成.idc表示證據(jù)產(chǎn)生節(jié)點的id,t代表證據(jù)的生成時間,E表示該節(jié)點在報文攜帶期間基于該報文所收集到的證據(jù)集.E中的每條證據(jù)都是由一個二元組(idt,ev)組成,其中idt表示該證據(jù)指向的目標(biāo)節(jié)點,ev表示證據(jù)內(nèi)容.
MT=(MM,Ob1,Ob2,…,Obm,)
Ob=(idc,t,E)
E={(idt,ev)|Observationevidenceevofidc}
(1)
表1 符號說明Table 1 Symbolic explanation
通常,每個中繼節(jié)點向報文中添加元數(shù)據(jù)可能會導(dǎo)致報文數(shù)據(jù)量過大的問題,但在UAVNpro協(xié)議中,每個節(jié)點在報文攜帶期間觀察范圍有限,且每條Ob的數(shù)據(jù)量很小,因此由于添加證據(jù)所帶來的通訊開銷相比系統(tǒng)本身的任務(wù)開銷可忽略不計.而在路由層次,本文利用信任閾值來過濾不可信的中繼節(jié)點以縮短路徑長度,在一定程度上為系統(tǒng)節(jié)約了能耗.如果存在攻擊者添加多個偽造證據(jù)導(dǎo)致報文大小超出正常范圍,該消息將被檢測為異常,并被合法節(jié)點拋棄.
為了防止插入的Ob被篡改,本文采用數(shù)字簽名對Ob進行簽名認(rèn)證.與公鑰密碼相反,Ob的生成者使用私鑰對Ob進行加密,后續(xù)的驗證者使用生成者的公鑰進行解密.如若存在惡意節(jié)點對生成者插入的Ob進行了更改,因為其無法使用生成者的私鑰對修改后的Ob進行重新加密,所以該行為很快會被后面的驗證者發(fā)現(xiàn),這樣保證了證據(jù)在可讀的前提下任何對數(shù)據(jù)的更改都是可被檢測的.
Ob的生成與驗證過程如圖2所示.為防止惡意節(jié)點對Ob進行篡改,生成者將Ob用哈希函數(shù)進行散列得到散列碼.接著使用自身的私鑰對其加密作為簽名,最后將簽名與Ob進行組合,插入到傳輸報文之中.為防止網(wǎng)絡(luò)外部攻擊,生成者在路由發(fā)送時使用接收者的公鑰對傳輸報文進行二次加密.而接收者收到報文時,需先用自身私鑰進行解密才能得到傳輸報文.接收者在進行簽名驗證時,從傳輸報文中取出前驅(qū)節(jié)點插入的Ob與其對應(yīng)的簽名,并對其分別進行哈希與解密處理得到散列值.最后接受者將兩個散列值進行比對,若比對無誤,則證明Ob沒有沒修改.
除非攻擊者從Ob生成者那里竊取到其私鑰,否則Ob無法被篡改.攻擊者之間可以串通交換自身私鑰,這樣Ob的修改僅會發(fā)生在攻擊者之間,而對整體攻擊行為沒有影響.如果UC發(fā)現(xiàn)Ob的加密散列值使用生成者的公鑰無法解密,那么則認(rèn)定PUC發(fā)生了篡改攻擊.UC首先會將被篡改的Ob從傳輸報文中刪除,然后將觀察到PUC發(fā)生篡改攻擊的證據(jù)加入到其正在生成的Ob中.因此,智能的攻擊者多數(shù)會遵循Ob秘鑰協(xié)議來獲取信任,但是使用Ob密鑰協(xié)議并不能保證每個UC都能夠提供正確的Ob,因為受損的UC可能無法插入Ob或者會生成錯誤的Ob.
圖2 Ob的生成與驗證過程Fig.2 Generation and verification process of Ob
本節(jié)描述了如何對網(wǎng)絡(luò)中惡意節(jié)點的攻擊行為進行有效的判斷.其中4.2.1節(jié)描述了根據(jù)交互記錄識別節(jié)點的丟包行為.4.2.2節(jié)描述了根據(jù)起源信息和數(shù)字簽名技術(shù)驗證報文是否被篡改.4.2.3節(jié)描述了針對惡意節(jié)點的假身份、假證據(jù)攻擊進行識別.
4.2.1 丟包與注包攻擊
檢驗網(wǎng)絡(luò)中的丟包攻擊,最直觀的方法就是根據(jù)節(jié)點的丟包率進行判斷.但由于惡意節(jié)點可能具備欺騙性,無法要求其給出自身真實的丟包率.本文提出了一種基于交互記錄(Interactive Record,IR)的丟包攻擊識別方法,設(shè)定無人機節(jié)點每次完成報文傳輸之后將生成IR對這次交互進行記錄.在路由決策時可通過檢驗?zāi)繕?biāo)節(jié)點IR計算其丟包率.因為本文中IR不可偽造的特性,計算出的丟包率接近真實值.
造成網(wǎng)絡(luò)丟包的原因有很多,特別是對于無人機網(wǎng)絡(luò),網(wǎng)絡(luò)擁塞、鏈路質(zhì)量問題和節(jié)點的惡意行為都會導(dǎo)致網(wǎng)絡(luò)丟包.而惡意行為根據(jù)其丟包率的不同分為灰洞攻擊和黑洞攻擊.為了對以上行為進行區(qū)分,本文設(shè)定了丟包概率閾值PT,丟包率小于PT的節(jié)點,被視為網(wǎng)絡(luò)原因?qū)е碌膩G包,不納入觀察范圍.丟包率大于PT且小于1的節(jié)點則被視為是具有灰洞攻擊行為的惡意節(jié)點.
IR的結(jié)構(gòu)如式(2)所示,在此使用無人機節(jié)點i和j作為示例來說明IR構(gòu)造過程.
(2)
IRi,j表示簽名前的交互記錄,其中包含有兩個節(jié)點的身份信息idi,idj和IR序號ci,cj.每個無人機節(jié)點都擁有一個序列號c作為IR的序號,c在任務(wù)開始時被置為1并在每次交互之后遞增.t表示IRi,j的生成時間.ni→j表示這次交互中i向j發(fā)送的報文數(shù),nsi表示在這些報文中i產(chǎn)生的報文數(shù).nj→i表示j向i發(fā)送的報文數(shù),nsj表示在這些報文中j產(chǎn)生的報文數(shù).
(3)
可能存在一些惡意節(jié)點通過自己生成的報文來掩蓋被其丟棄的任務(wù)報文,以此來逃避檢查.本文檢測節(jié)點生成報文在發(fā)送報文中的占比,節(jié)點的自報文轉(zhuǎn)發(fā)率β的計算公式如(4)所示.若β>SPT表示該節(jié)點更傾向于發(fā)送自己產(chǎn)生的報文,且存在丟包攻擊或注包攻擊的風(fēng)險.
(4)
算法1.節(jié)點丟包或注包攻擊檢查方法
輸入:目標(biāo)檢測節(jié)點UT
輸出:UC的IR驗證結(jié)果
1.IRList?getIRList(UT); //從UT獲取IR列表
2. //若UT給出的IR序列存在缺失或重復(fù)
3.if! IsInOrder(IRList)then
4. Reject(UT) ?拒絕發(fā)送并生成證據(jù)
5.else
6. //若存在IR的數(shù)字簽名未驗證通過
7.if!IRSignCheck (IRList)then
8. Reject(UT) ?拒絕發(fā)送生成證據(jù)
9.else
10. //根據(jù)公式(3)計算UT丟包率
11.α?formula(3);
12.ifα>PTthen
13. Reject(UT) ?拒絕發(fā)送并生成證據(jù)
14.else
15. //根據(jù)公式(4)計算UT轉(zhuǎn)發(fā)率
16.β?formula(4);
17.ifβ>SPTthen
18. Reject(UT) ?拒絕發(fā)送并生成證據(jù)
19.else
20. CheckPass(UT); ?驗證通過
21.endif
22.endif
23.endif
24.endif
交互記錄可非常直觀的反應(yīng)網(wǎng)絡(luò)內(nèi)節(jié)點的歷史報文收發(fā)狀況,基于該信息報文攜帶節(jié)點可獨立的檢測惡意節(jié)點,并生成相應(yīng)證據(jù)給予惡意節(jié)點直接的信任懲罰.數(shù)字簽名的引入使得該方案具有較強的安全性和準(zhǔn)確性.傳輸開始前的IR驗證階段和傳輸結(jié)束后新IR的生成階段都伴隨有節(jié)點之間的數(shù)據(jù)交互.但IR的大小遠小于任務(wù)報文,由IR交互所造成系統(tǒng)能耗增加微乎其微.此外在多副本的路由協(xié)議下,通過檢測并從網(wǎng)絡(luò)中排除惡意節(jié)點,可以使得任務(wù)報文盡快抵達目的節(jié)點,不但提升系統(tǒng)傳遞速率而且間接為系統(tǒng)節(jié)省能耗.
4.2.2 篡改攻擊
本文中篡改攻擊主要分為對任務(wù)報文MM的篡改攻擊和對觀測證據(jù)Ob的篡改攻擊兩種,對Ob的篡改攻擊檢測已經(jīng)在4.1節(jié)進行敘述,本節(jié)主要講述對MM的篡改攻擊.
在報文傳輸途中,惡意節(jié)點可能會對MM進行篡改使得地面站收集到虛假的消息影響任務(wù)執(zhí)行.當(dāng)節(jié)點UC收到PUC轉(zhuǎn)發(fā)的報文時,采用算法2進行任務(wù)報文篡改檢查.
算法2.報文篡改攻擊檢查方法
輸入:前驅(qū)節(jié)點PUC轉(zhuǎn)發(fā)的報文MT
輸出:報文篡改攻擊檢測結(jié)果
1. //檢查接收到的任務(wù)報文是否被篡改
2. //從傳輸報文中分離出任務(wù)報文
3.takeMMfromMT
4.//驗證任務(wù)報文的數(shù)字簽名
5.ifMMSignChekPass(MT)then
6. Receive(MT); ?校驗通過,接收報文
7.else//數(shù)字簽名校驗未通過,任務(wù)報文被篡改
8. genNEvid(PUC); ?生成前驅(qū)節(jié)點負(fù)面證據(jù)
9. //刪除被篡改的任務(wù)報文,節(jié)約系統(tǒng)能耗
10. removeMMfromMT
11. Receive(MT); ?接收證據(jù)信息,供信任評估
12.endif
4.2.3 虛假證據(jù)
智能的惡意節(jié)點可能會給出虛假的Ob來影響系統(tǒng)信任評估的結(jié)果,其攻擊方式主要分為身份攻擊和假證據(jù)兩種.
對于身份攻擊,本文設(shè)定轉(zhuǎn)發(fā)節(jié)點在從上一跳節(jié)點處收到報文之后需對報文進行拆箱檢查,驗證報文中上一跳節(jié)點插入Ob的id與其真實id相同.否則認(rèn)定為身份攻擊,將該條證據(jù)加入自身Ob中.地面站在信任評估時會判定身份攻擊節(jié)點所插入的Ob無效.
對于假證據(jù)檢測,地面站將結(jié)合證據(jù)生成節(jié)點的信任值和證據(jù)指向節(jié)點的歷史行為進行綜合判斷,若證據(jù)生成節(jié)點的信任值較低而其指向節(jié)點的歷史行為無異常,則該條證據(jù)會被認(rèn)定為假證據(jù).對于發(fā)生誤報的節(jié)點地面站會進行統(tǒng)計,若誤報率大于誤報閾值PA會被判定為假證據(jù)攻擊.反之則認(rèn)為是由于觀測失誤而導(dǎo)致的證據(jù)誤報.
由于UAVNpro中的信任評估是基于證據(jù)而進行的,證據(jù)的準(zhǔn)確性與安全性就尤其重要.本文首先根據(jù)節(jié)點的誤報概率對節(jié)點的觀測失誤和惡意攻擊予以區(qū)分,確保了證據(jù)生成時的準(zhǔn)確性,接著利用安全簽名對證據(jù)進行簽名認(rèn)證,保證了證據(jù)的傳輸安全.通過以上方法,在確保了信任評估正確性的同時提高了系統(tǒng)的魯棒性.
無人機網(wǎng)絡(luò)各個節(jié)點在收到報文后和發(fā)送報文前都會進行安全檢查.其中篡改攻擊和身份攻擊在收到報文后進行檢查,以此保證傳輸報文的正確性.丟包攻擊和注包攻擊在報文轉(zhuǎn)發(fā)之前對鄰居節(jié)點進行檢查,以確保報文在未來不會被丟棄.假證據(jù)攻擊在地面站接收報文之后進行檢查,以確保系統(tǒng)信任評估的準(zhǔn)確性.對于每項檢查若通過,檢查節(jié)點將會生成一條目標(biāo)節(jié)點的正面證據(jù),否則生成一條負(fù)面證據(jù).這些證據(jù)將與報文一起抵達地面站成為信任評估的依據(jù).
地面站從傳輸報文中獲取證據(jù),并對各個節(jié)點的證據(jù)數(shù)進行統(tǒng)計.對于節(jié)點j,設(shè)tj表示報文中指向j的正面證據(jù)數(shù),fj表示報文中指向j的負(fù)面證據(jù)數(shù),t′j表示指向j的歷史正面證據(jù)總數(shù),f′j表示指向j的歷史負(fù)面證據(jù)總數(shù).對等信任估計遵循基于正面證據(jù)量和負(fù)面證據(jù)量的貝葉斯更新[21],節(jié)點j的信任值計算公式如式(5)所示.
(5)
網(wǎng)絡(luò)每個節(jié)點都存有一張描述全網(wǎng)所有節(jié)點信任值的信任表TrustTable,地面站在信任評估后利用帶外信道將該表給廣播全網(wǎng)所有節(jié)點,全網(wǎng)節(jié)點隨即進行更新.該表是網(wǎng)絡(luò)節(jié)點進行安全路由的依據(jù).無人機基于TrustTable進行路由的過程如算法3所示.
算法3.基于信任的路由轉(zhuǎn)發(fā)算法
輸入:前驅(qū)節(jié)點PUC轉(zhuǎn)發(fā)的報文MT
輸出:路由決策結(jié)果
1.//無人機節(jié)點UC收到報文MT后的處理流程
2.//從傳輸報文中分離出PUB插入的證據(jù)
3.takeObfromMT
4.//若algorithm2 和Ob簽名驗證通過
5.ifalgorithm2Check (MT)andObSignCheck (Ob) pass
6.thengenPEvid(PUC); ?生成前驅(qū)節(jié)點正面證據(jù)
7.do
8. //根據(jù)路由協(xié)議獲取下一跳節(jié)點
9.ifhasRoutingPaththen
10. n?routingProtocol();
11.else
12. carryMessage(MT) ?攜帶報文
13.endif
14. //調(diào)用算法1和參考信任表對節(jié)點n進行檢查
15.while!algorithm1Check (n)orTrustTable(n) 16. genPEvid(n) ?生成節(jié)點n正面證據(jù) 17. SendMessage(n) ?發(fā)送報文 18.endif 為了驗證本文模型的有效性,基于ONE(Opportunistic Networking Environment)仿真器構(gòu)建仿真平臺[22],在真實的任務(wù)環(huán)境下,建立800m×800m的仿真場景,13架無人機按照設(shè)定的航線對任務(wù)區(qū)域進行覆蓋偵察,無人機自組網(wǎng)采用DTN路由協(xié)議進行數(shù)據(jù)傳輸.實驗方案是對PROVEST和UAVNpro兩種模型在不同路由協(xié)議、不同節(jié)點密度、不同惡意行為概率下進行性能分析. 圖3 基于One的仿真平臺Fig.3 Simulation platform based on One 本文在Epidemic(多副本)和DTNgeo[20](單副本)路由協(xié)議基礎(chǔ)上進行模擬實驗,在節(jié)點中隨機選擇10%,20%和30%的惡意節(jié)點獨立的攻擊系統(tǒng),惡意行為概率從0.4-1遞增,對兩種安全模型的檢測率、投遞率和系統(tǒng)能耗進行比較分析,最終的呈現(xiàn)結(jié)果是10次實驗結(jié)果的平均.實驗仿真場景如圖3所示,實驗的有關(guān)參數(shù)如表2所示. 表2 實驗參數(shù)Table 2 Experimental parameters 5.2.1 檢測率 檢測率表示檢測到惡意節(jié)點數(shù)與網(wǎng)絡(luò)中惡意節(jié)點數(shù)的比值,是衡量模型對惡意行為的敏感性重要參數(shù).本文在惡意節(jié)點密度一定的情況下分別基于Epidemic和DTNgeo協(xié)議研究了UAVNpro的檢測率與惡意行為概率、惡意節(jié)點密度的關(guān)系.實驗結(jié)果如圖4所示,惡意行為概率代表惡意節(jié)點的攻擊強度,隨著攻擊強度的增加,UAVNpro對惡意節(jié)點的檢測率也隨之增加.UAVNpro與多副本和單副本路由協(xié)議都具有良好的兼容性.對于具有高攻擊強度的惡意節(jié)點,UAVNpro具有高達96%的檢測率.對于低攻擊強度的惡意節(jié)點,UAVNpro在多副本協(xié)議上的表現(xiàn)不如單副本,但當(dāng)模擬時間足夠長時,UAVNpro依舊能對其準(zhǔn)確識別.在同一路由協(xié)議下,隨著惡意節(jié)點密度的增加識別率逐漸下降.因為惡意節(jié)點增多影響到了地面站證據(jù)的收集,導(dǎo)致信任評估不夠準(zhǔn)確.在網(wǎng)絡(luò)內(nèi)存在30%的惡意節(jié)點的時候,UAVNpro的識別率也能達到80%. 圖4 UAVNpro對惡意節(jié)點的檢測率Fig.4 UAVNpro detection rate 5.2.2 投遞率 投遞率表示成功傳輸?shù)膱笪呐c生成的報文總量的比值,是衡量網(wǎng)絡(luò)性能最重要的參數(shù).系統(tǒng)的投遞率受路由協(xié)議、丟包攻擊、篡改攻擊的影響較大,本文使用不同的惡意節(jié)點密度研究了投遞率與攻擊強度的關(guān)系.對比算法設(shè)置了不考慮安全的原始路由協(xié)議Epidemic和DTNgeo,以及分別了結(jié)合PROVEST和UAVNpro模型的路由協(xié)議. 圖5 惡意節(jié)點密度20%時的報文投遞率Fig.5 Delivery rate when the density of malicious nodes is 20% DTNgeo路由協(xié)議下的仿真結(jié)果如圖5所示,可以看出UAVNpro在DTNgeo下表現(xiàn)較為理想,可實現(xiàn)高達90%的投遞率.結(jié)合檢測率實驗可分析出UAVNpro在多副本協(xié)議下對網(wǎng)絡(luò)中惡意行為較為敏感,對高攻擊強度節(jié)點和低攻擊強度節(jié)點都有良好的識別度.Epidemic協(xié)議下UAVNpro識別惡意節(jié)點所用的時間有所增長,投遞率為85%,相比DTNgeo稍有下降.因為多副本協(xié)議中被篡改的報文經(jīng)過節(jié)點的復(fù)制轉(zhuǎn)發(fā)最終會在網(wǎng)絡(luò)中泛濫,影響系統(tǒng)投遞率. 相比UAVNpro,PROVEST性能稍遜,因為其無法抵御丟包攻擊,對于篡改攻擊僅根據(jù)節(jié)點的歷史信任對當(dāng)前行為做出判斷,容易出現(xiàn)錯判誤判.PROVEST在僅存在丟包攻擊和報文篡改攻擊的網(wǎng)絡(luò)中無法識別出惡意節(jié)點,在混合多種攻擊的網(wǎng)絡(luò)中識別速度和準(zhǔn)確性較低.PROVEST的性能受網(wǎng)絡(luò)中惡意節(jié)點密度影響較大,當(dāng)節(jié)點密度為0.2時,能夠識別行為概率接近0.7的惡意性較強的節(jié)點. 5.2.3 系統(tǒng)能耗 無人機的能源受限,是由其移動性決定的.由于尺寸和重量受到約束,無人機在處理能力、內(nèi)存容量、網(wǎng)絡(luò)連接和電池容量等方面受到限制.系統(tǒng)能耗指的是系統(tǒng)在任務(wù)期間的能量消耗,與系統(tǒng)報文中繼數(shù)密切相關(guān).本文在惡意節(jié)點密度一定的情況下使用不同的路由協(xié)議研究了報文中繼數(shù)與惡意節(jié)點攻擊強度的關(guān)系.實驗結(jié)果如圖6、圖7所示,x軸表示惡意節(jié)點攻擊強度,y軸表示報文中繼數(shù). 圖6 惡意節(jié)點密度20%時的網(wǎng)絡(luò)中繼數(shù)Fig.6 Hop count when the density of malicious nodes is 20% 如圖6所示,對于單副本路由協(xié)議DTNgeo,因為全網(wǎng)只存在一個報文副本,若該副本被惡意節(jié)點篡改或丟棄,系統(tǒng)的投遞率也將會直接受到影響.單副本協(xié)議中丟包攻擊在丟棄網(wǎng)絡(luò)報文后變相減少了網(wǎng)絡(luò)報文的中繼數(shù),但這種以付出投遞率乃至任務(wù)成功率所換來的系統(tǒng)能耗減少并不是我們所希望的.UAVNpro和PROVEST在高攻擊強度下的中繼數(shù)相近,但在攻擊強度較低時,UAVNpro相比PROVEST耗能更低. 如圖7所示,對于多副本路由協(xié)議Epidemic,注包攻擊和篡改攻擊會導(dǎo)致報文中繼數(shù)急劇增加,大幅度提升系統(tǒng)能耗.與純的Epidemic相比,UAVNpro始終保持相對少量的報文中繼數(shù),通過識別網(wǎng)絡(luò)中的惡意節(jié)點,UAVNpro很好的遏制了虛假報文的轉(zhuǎn)發(fā),節(jié)省了系統(tǒng)能量.當(dāng)系統(tǒng)中存在20%的攻擊者時,UAVNpro為系統(tǒng)節(jié)省了約25.6%的能量.PROVEST因為攻擊識別方式的原因在攻擊強度較低時無法有效識別惡意節(jié)點,導(dǎo)致系統(tǒng)能耗較高. 圖7 惡意節(jié)點密度20%時的網(wǎng)絡(luò)中繼數(shù)Fig.7 Hop count when the density of malicious nodes is 20% 現(xiàn)有的無人機網(wǎng)絡(luò)安全路由模型能量消耗大且安全性不高,本文針對無人機自組織網(wǎng)絡(luò)中的安全問題,提出了一種起源信息感知的無人機信任評估模型UAVNpro,利用每個中間消息載體添加的觀察信息作為消息轉(zhuǎn)發(fā)過程中的證據(jù)來評估節(jié)點的信任.本文考慮了多種惡意攻擊行為,并設(shè)計了相對應(yīng)的檢測方法生成觀測證據(jù).利用數(shù)字簽名將證據(jù)嵌入到任務(wù)報文載體進行證據(jù)的收集,在提升系統(tǒng)安全性的同時降低了系統(tǒng)能耗.實驗結(jié)果表明UAVNpro不但有效保證了無人機協(xié)同任務(wù)期間的任務(wù)質(zhì)量,而且對不同的路由協(xié)議都具有良好的兼容性.隨著惡意節(jié)點攻擊強度增大,UAVNpro的投遞率和對惡意節(jié)點的識別率顯著提高,尤其惡意節(jié)點密度較大時UAVNpro也能保持較高的識別效率.因此在絕大多數(shù)情況下,本文提出的模型優(yōu)于現(xiàn)有的PROVEST模型.5 仿真實驗及其實驗結(jié)果分析
5.1 實驗場景及參數(shù)設(shè)置
5.2 實驗結(jié)果與分析
6 總 結(jié)