靳紫陽(yáng),劉玉梅
哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001
相比于傳統(tǒng)的端到端的通信協(xié)議,機(jī)會(huì)網(wǎng)絡(luò)具有在通信的過(guò)程中允許存在不完整的通路[1]、允許較高的時(shí)延、允許網(wǎng)絡(luò)中斷等特點(diǎn)。機(jī)會(huì)網(wǎng)絡(luò)最早源于延遲容忍網(wǎng)絡(luò)(delay-tolerant network,DTN)和移動(dòng)自組網(wǎng)(mobile ad-hoc networking,MANET),具有此2 種網(wǎng)絡(luò)的特征。機(jī)會(huì)網(wǎng)絡(luò)在進(jìn)行消息傳輸?shù)倪^(guò)程中無(wú)法預(yù)知完整的傳輸路徑,是通過(guò)使用節(jié)點(diǎn)的移動(dòng)形成的可通信機(jī)會(huì)來(lái)實(shí)現(xiàn)傳輸。它通過(guò)在傳輸層和應(yīng)用層之間加入一個(gè)束層來(lái)實(shí)現(xiàn)消息的存儲(chǔ)和轉(zhuǎn)發(fā)功能[2]。這樣的方式使得機(jī)會(huì)網(wǎng)絡(luò)在野生動(dòng)物追蹤、車聯(lián)網(wǎng)、災(zāi)難應(yīng)急或者某些惡劣條件下能夠發(fā)揮很好的作用[3]。
但是,機(jī)會(huì)網(wǎng)絡(luò)在通信過(guò)程中不存在確定的網(wǎng)絡(luò)拓?fù)?,也沒(méi)有類似基站的樞紐,這就導(dǎo)致機(jī)會(huì)網(wǎng)絡(luò)很容易遭受到攻擊。攻擊一般是由機(jī)會(huì)網(wǎng)絡(luò)內(nèi)部的節(jié)點(diǎn)發(fā)起的,可以稱之為惡意節(jié)點(diǎn)[4]。近年來(lái),越來(lái)越多的學(xué)者對(duì)機(jī)會(huì)網(wǎng)絡(luò)的安全問(wèn)題進(jìn)行了研究。文獻(xiàn)[5]中根據(jù)貝葉斯定律,提出了基于反饋節(jié)點(diǎn)信任度的信任評(píng)估模型來(lái)提高機(jī)會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)間通信的安全性與準(zhǔn)確性。文獻(xiàn)[6]提出了一種基于信譽(yù)度懲罰策略的博弈模型,以此來(lái)降低機(jī)會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)自私行為的影響。文獻(xiàn)[7]提出了節(jié)點(diǎn)的動(dòng)態(tài)信任模型來(lái)降低自私節(jié)點(diǎn)和惡意節(jié)點(diǎn)的影響。
黑洞攻擊[8]是機(jī)會(huì)網(wǎng)絡(luò)中常見的一種攻擊方式。黑洞攻擊的惡意節(jié)點(diǎn)在接收到其他節(jié)點(diǎn)傳遞的消息之后把接收到的消息進(jìn)行刪除,并不會(huì)協(xié)助其他節(jié)點(diǎn)進(jìn)行消息的傳遞。這將嚴(yán)重降低機(jī)會(huì)網(wǎng)絡(luò)的性能,甚至導(dǎo)致網(wǎng)絡(luò)的崩潰。
本文針對(duì)黑洞節(jié)點(diǎn)提出了一種基于節(jié)點(diǎn)信譽(yù)值的路由(reputation-based secure routing,RBSR)算法。RBSR 算法主要利用節(jié)點(diǎn)的歷史交互信息,基于節(jié)點(diǎn)的行為對(duì)節(jié)點(diǎn)信譽(yù)值進(jìn)行評(píng)估,根據(jù)相遇節(jié)點(diǎn)的信譽(yù)值來(lái)修改該節(jié)點(diǎn)的可信度,其他節(jié)點(diǎn)將不會(huì)傳遞消息給可信度較低的節(jié)點(diǎn)。最后在機(jī)會(huì)網(wǎng)絡(luò)仿真平臺(tái)(opportunistic network environment, ONE)上進(jìn)行仿真并與其他算法進(jìn)行對(duì)比,驗(yàn)證了該算法能夠提高機(jī)會(huì)網(wǎng)絡(luò)的安全性并保障機(jī)會(huì)網(wǎng)絡(luò)的性能。
為了評(píng)估節(jié)點(diǎn)的信譽(yù)值,需要使用所遇到節(jié)點(diǎn)的歷史交互信息。RBSR 算法中使用相遇記錄來(lái)存儲(chǔ)節(jié)點(diǎn)在之前所遇到的節(jié)點(diǎn)以及消息的轉(zhuǎn)發(fā)情況[9]。
相遇記錄由7 部分?jǐn)?shù)據(jù)組成:
式中:Ei,j為節(jié)點(diǎn)i與節(jié)點(diǎn)j相遇時(shí)的相遇記錄;iid和jid為節(jié)點(diǎn)的編號(hào);si為節(jié)點(diǎn)i給該記錄分配的編號(hào);sj為節(jié)點(diǎn)j給該記錄分配的編號(hào),可以用來(lái)防止記錄被隨意添加和刪除;t為記錄創(chuàng)建時(shí)間;NSL和NRL中存儲(chǔ)著消息的相關(guān)信息,NSL為發(fā)送的消息信息,NSL=<Mm|節(jié)點(diǎn)i發(fā)送給節(jié)點(diǎn)j的消息>,其中Mm=<mid,tTTL,ifrom_id,ito_id,tbuild>,包含了消息的名稱mid、消息的生存時(shí)長(zhǎng)tTTL、消息源節(jié)點(diǎn)ifrom_id、消息的目的節(jié)點(diǎn)ito_id和創(chuàng)建時(shí)間tbuild;NRL存儲(chǔ)的是接收到的消息信息,NRL=<mid|節(jié)點(diǎn)i從節(jié)點(diǎn)j接收的消息>。
為了防止相遇記錄被節(jié)點(diǎn)自身隨意地修改,采取了文獻(xiàn)[10]中所采用的方法,使用一對(duì)公私鑰對(duì)相遇記錄進(jìn)行加密。
對(duì)于信譽(yù)值的計(jì)算是基于節(jié)點(diǎn)的行為進(jìn)行評(píng)估的。機(jī)會(huì)網(wǎng)絡(luò)中移動(dòng)的節(jié)點(diǎn)在大多數(shù)情況下是由人來(lái)攜帶的,當(dāng)人攜帶這些終端進(jìn)行移動(dòng)時(shí),不可避免地將自己的移動(dòng)屬性代入到節(jié)點(diǎn)的移動(dòng)當(dāng)中去。因此,本算法在對(duì)節(jié)點(diǎn)的信譽(yù)值進(jìn)行評(píng)估時(shí)利用節(jié)點(diǎn)的社會(huì)屬性[11]。
對(duì)于節(jié)點(diǎn)信譽(yù)值的評(píng)估需要使用相遇記錄中收集到的信息。節(jié)點(diǎn)在移動(dòng)過(guò)程中所遇見的節(jié)點(diǎn)、進(jìn)行的消息傳遞等行為都可以在相遇記錄中進(jìn)行查詢。根據(jù)相遇信息,每個(gè)節(jié)點(diǎn)都可以對(duì)機(jī)會(huì)網(wǎng)絡(luò)中的其他節(jié)點(diǎn)進(jìn)行信譽(yù)值的評(píng)估,信譽(yù)值主要包括節(jié)點(diǎn)的相似度、節(jié)點(diǎn)的親密度、團(tuán)體合作貢獻(xiàn)度3 個(gè)部分。
節(jié)點(diǎn)相似度指的是節(jié)點(diǎn)i和節(jié)點(diǎn)j對(duì)于機(jī)會(huì)網(wǎng)絡(luò)中黑洞節(jié)點(diǎn)和可信節(jié)點(diǎn)判斷結(jié)果的相似程度。對(duì)機(jī)會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)的判斷結(jié)果越相似,該節(jié)點(diǎn)越可信,信譽(yù)值越高:
式中:VsimilarDegree為節(jié)點(diǎn)i計(jì)算得到的與節(jié)點(diǎn)j的相似度,NNumTursti,j為節(jié)點(diǎn)i和節(jié)點(diǎn)j都信任的節(jié)點(diǎn)數(shù),NNumTursti為節(jié)點(diǎn)i所信任的節(jié)點(diǎn)數(shù),NNumNoTursti,j為節(jié)點(diǎn)i和節(jié)點(diǎn)j都不信任的節(jié)點(diǎn)數(shù),NNumNoTursti為節(jié)點(diǎn)i不信任的節(jié)點(diǎn)數(shù)。節(jié)點(diǎn)i對(duì)于節(jié)點(diǎn)j的相似度評(píng)價(jià)和節(jié)點(diǎn)j相對(duì)于節(jié)點(diǎn)i的相似度評(píng)價(jià)有可能不相同。
在人的社會(huì)性活動(dòng)當(dāng)中,人與人之間的關(guān)系越親密,那么2 個(gè)人之間的信任也會(huì)越深。與此類似,節(jié)點(diǎn)之間的親密度也可以在一定程度上展示節(jié)點(diǎn)的可信任程度。因此,將節(jié)點(diǎn)的親密度也選作對(duì)于節(jié)點(diǎn)信譽(yù)度的評(píng)價(jià)標(biāo)準(zhǔn)之一:
式中:VintimateDegree為節(jié)點(diǎn)i對(duì)于節(jié)點(diǎn)j的親密度的評(píng)價(jià),NNumMessagefromj為節(jié)點(diǎn)j所接收的來(lái)自節(jié)點(diǎn)i的消息數(shù)量,NNumMessagesumj為節(jié)點(diǎn)j所接收的全部消息數(shù)量。本文中對(duì)于機(jī)會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)親密度的定義是在所有的相遇記錄中2 個(gè)節(jié)點(diǎn)間消息交換占所有消息數(shù)的比例。節(jié)點(diǎn)的親密度的評(píng)價(jià)是單向的,即節(jié)點(diǎn)i對(duì)于節(jié)點(diǎn)j的親密度評(píng)價(jià)和節(jié)點(diǎn)j對(duì)于節(jié)點(diǎn)i的親密度評(píng)價(jià)是不相同的。
在人們的社會(huì)性活動(dòng)當(dāng)中,每個(gè)人對(duì)整個(gè)團(tuán)體的貢獻(xiàn)程度都是重要的。對(duì)于機(jī)會(huì)網(wǎng)絡(luò)而言,團(tuán)體合作貢獻(xiàn)程度能夠顯示出該節(jié)點(diǎn)對(duì)整個(gè)機(jī)會(huì)網(wǎng)絡(luò)消息傳遞的作用,該參數(shù)對(duì)于辨別出黑洞節(jié)點(diǎn)能夠提供參考。對(duì)于機(jī)會(huì)網(wǎng)絡(luò)來(lái)說(shuō),丟包率是一個(gè)重要的參數(shù),可以根據(jù)丟包率來(lái)對(duì)團(tuán)體合作貢獻(xiàn)程度來(lái)進(jìn)行量化:
式中:Pi,j為節(jié)點(diǎn)i通過(guò)檢查節(jié)點(diǎn)j的相遇記錄計(jì)算的節(jié)點(diǎn)j在一段時(shí)間內(nèi)對(duì)于需要其轉(zhuǎn)發(fā)消息的丟包率,Nreceive為統(tǒng)計(jì)的節(jié)點(diǎn)j的接收消息總數(shù),Nsend為節(jié)點(diǎn)j所發(fā)送的非來(lái)自自身的消息總數(shù)。
根據(jù)丟包率計(jì)算團(tuán)體合作貢獻(xiàn)度:
式中:VcoppDegree為節(jié)點(diǎn)j的團(tuán)體合作貢獻(xiàn)度,NsendAll為發(fā)送的消息總數(shù)。當(dāng)Nreceive=0 時(shí)說(shuō)明該節(jié)點(diǎn)發(fā)送的消息全部來(lái)自于自身,因此,團(tuán)隊(duì)合作貢獻(xiàn)度應(yīng)該與其發(fā)送的消息總數(shù)成反比,即該節(jié)點(diǎn)發(fā)送的消息越少其團(tuán)隊(duì)合作貢獻(xiàn)度越高;當(dāng)Pi,j=0 時(shí),此時(shí)機(jī)會(huì)網(wǎng)絡(luò)處于理想的狀態(tài),節(jié)點(diǎn)j對(duì)于團(tuán)體的貢獻(xiàn)值的達(dá)到了最大,因此,其團(tuán)體合作貢獻(xiàn)度設(shè)置為1;當(dāng)Pi,j<1 時(shí),說(shuō)明在機(jī)會(huì)網(wǎng)絡(luò)傳遞的過(guò)程中出現(xiàn)了丟包的狀況,而且其丟包率越高則其團(tuán)體合作貢獻(xiàn)度越低,因此,團(tuán)體合作貢獻(xiàn)度應(yīng)該與節(jié)點(diǎn)的丟包率成反比,且應(yīng)該小于1;當(dāng)Pi,j=1 時(shí),說(shuō)明該節(jié)點(diǎn)將所有接收到的消息都進(jìn)行了丟棄,此節(jié)點(diǎn)處于完全不可信的狀態(tài),則可將其貢獻(xiàn)度賦值為0。
完成節(jié)點(diǎn)的相似度、親密度以及團(tuán)體合作貢獻(xiàn)度的計(jì)算之后,將此三者進(jìn)行加權(quán)求和,得出該節(jié)點(diǎn)的信譽(yù)值:
式中 α、 β、 γ為各個(gè)組成部分所占的比例,它們?nèi)叩闹刀际窃?~1 且α+β+γ=1。
RBSR 算法是通過(guò)節(jié)點(diǎn)的相遇記錄收集節(jié)點(diǎn)的行為信息,根據(jù)節(jié)點(diǎn)的行為對(duì)節(jié)點(diǎn)的信譽(yù)值進(jìn)行評(píng)估。利用信譽(yù)值可以計(jì)算節(jié)點(diǎn)的可信度,正常節(jié)點(diǎn)將不會(huì)向可信度低的節(jié)點(diǎn)傳遞消息,以此來(lái)降低消息被黑洞節(jié)點(diǎn)接收的概率,提高機(jī)會(huì)網(wǎng)絡(luò)的安全性。
RBSR 算法的路由結(jié)構(gòu)如圖1 所示,該算法主要分為3 個(gè)模塊:在第1 個(gè)模塊節(jié)點(diǎn)將會(huì)收集歷史交互信息,生成相遇記錄,并將相遇記錄存儲(chǔ)在節(jié)點(diǎn)的緩存中;第2 個(gè)模塊會(huì)通過(guò)遍歷收集到的相遇記錄進(jìn)行信譽(yù)值的計(jì)算,根據(jù)得到的信譽(yù)值來(lái)修改該節(jié)點(diǎn)的可信度;第3 個(gè)模塊將會(huì)進(jìn)行轉(zhuǎn)發(fā)判決,并將可信度較低的節(jié)點(diǎn)放入黑名單。
圖1 RBSR 路由結(jié)構(gòu)
如圖2 所示,在2 個(gè)節(jié)點(diǎn)相遇之后,可以將相遇流程分為3 步。
圖2 節(jié)點(diǎn)相遇流程
1) 首先是要獲取彼此的相遇記錄。在節(jié)點(diǎn)相遇之后,2 個(gè)節(jié)點(diǎn)可以從彼此的節(jié)點(diǎn)緩存中讀取相遇記錄的信息。
2) 在進(jìn)行相遇記錄的交換之后,要對(duì)相遇記錄進(jìn)行遍歷,獲取計(jì)算節(jié)點(diǎn)信譽(yù)值所需要的參數(shù)。根據(jù)所獲得的參數(shù)計(jì)算節(jié)點(diǎn)的相似度、親密度和團(tuán)體合作貢獻(xiàn)度。根據(jù)這3 個(gè)參數(shù)合成最終的節(jié)點(diǎn)信譽(yù)值,并根據(jù)計(jì)算得到的信譽(yù)值對(duì)節(jié)點(diǎn)的可信度進(jìn)行修改。大于閾值θ的使可信度增加0.1,否則可信度減少0.1。
3) 最后是轉(zhuǎn)發(fā)判決。對(duì)節(jié)點(diǎn)的可信度進(jìn)行修改之后,根據(jù)該節(jié)點(diǎn)的可信度進(jìn)行轉(zhuǎn)發(fā)判決。如果該節(jié)點(diǎn)滿足不在黑名單內(nèi)且其可信度大于閾值μ的要求可以直接進(jìn)行消息的傳遞。如果不滿足該要求,則需要判斷其可信度是否大于更大的閾值η,如果大于可以將其從黑名單內(nèi)移除并傳遞消息,否則將其加入黑名單。
在初始狀態(tài)下,節(jié)點(diǎn)的可信度設(shè)置為閾值θ,即處于基本可信狀態(tài)。經(jīng)過(guò)節(jié)點(diǎn)的移動(dòng),節(jié)點(diǎn)的可信度將會(huì)不斷發(fā)生變化。此外,在實(shí)現(xiàn)RBSR 算法時(shí),將RBSR 算法與Prophett[12]算法進(jìn)行了結(jié)合,在2 節(jié)點(diǎn)相遇時(shí),會(huì)首先按照RBSR 算法判斷該節(jié)點(diǎn)是否滿足轉(zhuǎn)發(fā)的要求,如果滿足則會(huì)繼續(xù)按照Prophet 算法選擇傳遞的路徑,如果不滿足則不會(huì)進(jìn)行消息的傳遞。
本文采用了機(jī)會(huì)網(wǎng)絡(luò)仿真平臺(tái)對(duì)所提出的算法進(jìn)行仿真。RBSR 算法針對(duì)的是黑洞攻擊,本次仿真參考文獻(xiàn)[13]在ONE 仿真器上對(duì)節(jié)點(diǎn)的屬性進(jìn)行了擴(kuò)展,實(shí)現(xiàn)了黑洞節(jié)點(diǎn);同時(shí),本課題對(duì)仿真器的報(bào)告部分進(jìn)行修改,使其可以統(tǒng)計(jì)黑洞節(jié)點(diǎn)的攻擊信息。
本次仿真主要是通過(guò)改變黑洞節(jié)點(diǎn)所占的比例來(lái)進(jìn)行觀測(cè),仿真所采用的參數(shù)如表1 所示。
表1 仿真參數(shù)
對(duì)于仿真結(jié)果的分析主要選擇了消息投遞率、消息刪除比例和平均交付時(shí)延這3 個(gè)指標(biāo)進(jìn)行比較。同時(shí)選擇了單副本的Prophet 算法和多副本的Epidemic[14]算法來(lái)與RBSR 算法進(jìn)行對(duì)比。同時(shí)為了降低隨機(jī)因素對(duì)仿真造成的影響,本文通過(guò)改變ONE 仿真器中的隨機(jī)種子數(shù)來(lái)進(jìn)行多次測(cè)試,求取平均值作為最終的結(jié)果。在仿真初期仿真器運(yùn)行不穩(wěn)定,舍棄前1 000 s 的仿真結(jié)果。
消息投遞率[15]是機(jī)會(huì)網(wǎng)絡(luò)中極其重要的一個(gè)評(píng)價(jià)標(biāo)準(zhǔn)。它指的是在規(guī)定時(shí)間內(nèi)成功接收的消息占所有產(chǎn)生消息總數(shù)的比例。投遞率越高說(shuō)明算法傳輸消息的效率越高。當(dāng)投遞率較低時(shí),該機(jī)會(huì)網(wǎng)絡(luò)將會(huì)失去作用。對(duì)比RBSR 算法、Prophet算法和Epidemic 算法,其結(jié)果如圖3 所示。
圖3 不同算法消息投遞率對(duì)比
由圖3 可知:隨著黑洞節(jié)點(diǎn)比例的增加,Prophet 算法的投遞率急劇減小并處于較低的水平,黑洞節(jié)點(diǎn)會(huì)大幅降低該算法的性能;而Epidemic 算法和RBSR 算法的投遞率在初期降低較慢,之后也快速下降,這是因?yàn)镋pidemic 算法是多副本路由協(xié)議,其投遞率受黑洞節(jié)點(diǎn)影響較小,但是隨著黑洞節(jié)點(diǎn)的增加,正常節(jié)點(diǎn)數(shù)不斷減小使得投遞率降低。RBSR 算法雖然是單副本協(xié)議,但是能夠識(shí)別出黑洞節(jié)點(diǎn),使其無(wú)法接收并刪除消息,因此前期投遞率也降低較慢,后期由于黑洞節(jié)點(diǎn)數(shù)過(guò)多,中繼節(jié)點(diǎn)不足,導(dǎo)致正常節(jié)點(diǎn)之間已經(jīng)無(wú)法正常傳遞消息。
消息刪除比例的定義是被黑洞節(jié)點(diǎn)所刪除的消息占所有生成消息總數(shù)的比例。為了保證算法的效能,必須盡可能地降低消息的刪除比例。消息被刪除得越多,那么該機(jī)會(huì)網(wǎng)絡(luò)受到的攻擊程度也越大。如果不向黑洞節(jié)點(diǎn)發(fā)送消息,那么消息刪除比例將不會(huì)發(fā)生大幅度的變化。
圖4給出了隨著黑洞節(jié)點(diǎn)的數(shù)目的增加,Prophet 算法中的消息被大量刪除;RBSR 算法中由于黑洞節(jié)點(diǎn)已經(jīng)被識(shí)別,無(wú)法正常接收消息,因此消息被刪除的比例較低;而Epidemic 算法是多副本路由,并未對(duì)其消息刪除比例進(jìn)行統(tǒng)計(jì)。
圖4 不同算法消息刪除比例對(duì)比
平均交付時(shí)延[16]指的是網(wǎng)絡(luò)中所有到達(dá)目的節(jié)點(diǎn)的有效數(shù)據(jù)包從創(chuàng)建到被成功接收所花費(fèi)的平均時(shí)間,也是一個(gè)重要的參數(shù)。仿真結(jié)果如圖5 所示。
圖5 不同算法平均交付時(shí)延對(duì)比
在圖5 中,RBSR 算法的平均交付時(shí)延在前期基本不發(fā)生變化,這是由于黑洞節(jié)點(diǎn)被發(fā)現(xiàn),無(wú)法接收消息并刪除;之后由于黑洞節(jié)點(diǎn)過(guò)多,正常節(jié)點(diǎn)之間傳遞消息的難度增大,傳輸時(shí)延增加。Epidemic 算法隨著黑洞節(jié)點(diǎn)比例的增加,傳輸時(shí)延不斷增大,是因?yàn)殡S著黑洞節(jié)點(diǎn)數(shù)增加,正常節(jié)點(diǎn)數(shù)不斷減少,增大了消息的投遞難度。Prophet 算法的平均傳輸時(shí)延急劇下降是因?yàn)楹诙垂?jié)點(diǎn)刪除了接收到的消息,只有經(jīng)歷較少中繼節(jié)點(diǎn)的消息才能完成投遞。
本文提出了RBSR 算法,它主要是基于節(jié)點(diǎn)的行為來(lái)計(jì)算每個(gè)節(jié)點(diǎn)的信譽(yù)值,通過(guò)信譽(yù)值判斷節(jié)點(diǎn)是否可信。在計(jì)算信譽(yù)值的時(shí)候先通過(guò)相遇記錄來(lái)收集信息,之后根據(jù)可信度和黑名單判斷是否進(jìn)行消息的傳遞,然后在ONE 仿真器上對(duì)該算法進(jìn)行了實(shí)現(xiàn)。與Prophet 算法和Epidemic算法進(jìn)行對(duì)比,通過(guò)對(duì)比消息投遞率、消息刪除比例、消息的平均傳輸時(shí)延驗(yàn)證了該算法能夠很好地抑制黑洞節(jié)點(diǎn)對(duì)單副本協(xié)議造成的影響,保障機(jī)會(huì)網(wǎng)絡(luò)的投遞率。
但是在機(jī)會(huì)網(wǎng)絡(luò)中還存在許多其他種類的惡意節(jié)點(diǎn),如泛洪攻擊、修改數(shù)據(jù)包攻擊等。為了進(jìn)一步保證機(jī)會(huì)網(wǎng)絡(luò)的安全,抑制多種惡意節(jié)點(diǎn)的攻擊也是下一步的研究方向。