梁 靚 張鐠丹 武彥飛 賈云健
(重慶大學(xué)微電子與通信工程學(xué)院 重慶 400044)
近年來,分布式網(wǎng)絡(luò)應(yīng)用前景越來越廣泛,與集中式網(wǎng)絡(luò)相比,分布式網(wǎng)絡(luò)能有效避免因單個重要節(jié)點(diǎn)失效而影響整個網(wǎng)絡(luò)運(yùn)行的問題。但也因?yàn)閭鹘y(tǒng)網(wǎng)絡(luò)安全措施如身份認(rèn)證、訪問控制等技術(shù)過于依賴中心節(jié)點(diǎn)的特點(diǎn),分布式網(wǎng)絡(luò)安全問題需另找一條解決途徑——信任模型。
文獻(xiàn)[1]針對p2p網(wǎng)絡(luò)中典型的信任模型Eigentrust進(jìn)行改進(jìn),保留每個節(jié)點(diǎn)與交互節(jié)點(diǎn)利用迭代得出全局信任值的優(yōu)點(diǎn),還解決了Eigentrust模型對新加入節(jié)點(diǎn)估計不準(zhǔn)確的問題。文獻(xiàn)[2]基于熵的信任模型和基于概率的信任模型提出了信任值建立和信任值更新方法并將所提出的信任模型和評估方法應(yīng)用于adhoc網(wǎng)絡(luò)。文獻(xiàn)[3]基于adhoc網(wǎng)絡(luò)的特點(diǎn)提出了分布式自適應(yīng)信任模型DATEA,分為單跳模塊與多跳模塊。單跳模塊可自適應(yīng)地設(shè)置權(quán)重來計算直接信任值與推薦信任值,多跳模塊負(fù)責(zé)間接信任值的計算。文獻(xiàn)[4]針對無線傳感器網(wǎng)絡(luò)提出了一種分布式高效信任模型EDTM,考慮了直接信任值和推薦信任值。該模型在直接信任值中提出基于數(shù)據(jù)、能量和通信的3維信任證據(jù),在推薦信任值中引入可靠性和熟悉度兩個指標(biāo)以提高推薦信任值的準(zhǔn)確性。文獻(xiàn)[5]針對水下無線傳感器網(wǎng)絡(luò)提出了一種基于C4.5決策樹的可信評估方法,該方法采用模糊邏輯信任模型收集各類信任證據(jù)并進(jìn)行分析,再采用訓(xùn)練好的C4.5決策樹完成信任值分類。文獻(xiàn)[6]基于水下傳感網(wǎng)絡(luò)易遭到混合攻擊的特點(diǎn)提出了一種分布式容錯信任模型,該模型分為3個階段。首先利用量化的環(huán)境模型反映水下環(huán)境對信任評估的影響;然后構(gòu)建一個基于強(qiáng)化學(xué)習(xí)的信任更新模型來對抗混合攻擊;最后采用一種信任恢復(fù)模型來恢復(fù)低信任值的節(jié)點(diǎn)以提高網(wǎng)絡(luò)的資源利用率。
運(yùn)用信任模型進(jìn)行可信評估雖然是解決分布式網(wǎng)絡(luò)安全問題的重要手段,但很多針對分布式網(wǎng)絡(luò)提出的信任模型依賴于節(jié)點(diǎn)過去行為的歷史信任證據(jù),可是初次對分布式網(wǎng)絡(luò)進(jìn)行可信評估時是沒有這些信任證據(jù)的。一種解決方式是對網(wǎng)絡(luò)中所有節(jié)點(diǎn)統(tǒng)一設(shè)置信任值,這是許多現(xiàn)有信任模型采用的方式,其優(yōu)點(diǎn)是設(shè)置簡單且節(jié)省能量,缺點(diǎn)是統(tǒng)一設(shè)置的信任值并不代表節(jié)點(diǎn)的真實(shí)行為。另一種方式是對節(jié)點(diǎn)進(jìn)行評估來獲取可靠的初始信任值,這種做法的優(yōu)點(diǎn)是可以在可信評估初始階段獲取節(jié)點(diǎn)的真實(shí)行為,從而對惡意節(jié)點(diǎn)和自私節(jié)點(diǎn)有更準(zhǔn)確的預(yù)測。與統(tǒng)一設(shè)置初始信任值相比,該方式的缺點(diǎn)是相對復(fù)雜而且會消耗更多能量。在文獻(xiàn)[7]中,作者提出了一種在個人空間物聯(lián)網(wǎng)中創(chuàng)建設(shè)備初始信任值的方法。
本文基于挑戰(zhàn)-響應(yīng)模型,提出了一種面向分布式網(wǎng)絡(luò)的可信評估方法。網(wǎng)絡(luò)節(jié)點(diǎn)通過該方法對挑戰(zhàn)進(jìn)行響應(yīng),形成關(guān)于節(jié)點(diǎn)的先驗(yàn)知識,用于度量其初始信任值。然后利用節(jié)點(diǎn)的初始信任值進(jìn)行分簇,在簇內(nèi)進(jìn)行信任值計算和信任值更新,完成分布式網(wǎng)絡(luò)中整個可信評估的流程。
本文所研究的分布式網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,由一個超級節(jié)點(diǎn)和大量普通節(jié)點(diǎn)組成。
圖1 分布式網(wǎng)絡(luò)結(jié)構(gòu)圖
其中,超級節(jié)點(diǎn)是擁有足夠能量的可靠節(jié)點(diǎn),主要負(fù)責(zé)與普通節(jié)點(diǎn)實(shí)行挑戰(zhàn)-響應(yīng)模型以獲取各節(jié)點(diǎn)的初始信任值。部署在一定區(qū)域范圍內(nèi)的各個節(jié)點(diǎn)ni ∈N, i=1,2,...,M都由超級節(jié)點(diǎn)分配給它們一個唯一的標(biāo)識符I Di。
攻擊者對分布式網(wǎng)絡(luò)發(fā)起的內(nèi)部惡意攻擊一般分為3個階段[8],其各個階段的攻擊過程和攻擊可能帶來的后果如表1所示。分布式網(wǎng)絡(luò)中的節(jié)點(diǎn)通常都配備有編程接口或測試接口以便對其進(jìn)行編程或者調(diào)試。其中,當(dāng)攻擊者對節(jié)點(diǎn)發(fā)起物理捕獲攻擊時,一般手段是采用一塊編程板連接到節(jié)點(diǎn)的編程接口或測試接口來獲取節(jié)點(diǎn)中的關(guān)鍵信息[9]。所以在對分布式網(wǎng)絡(luò)進(jìn)行可信評估前,必須假設(shè)當(dāng)攻擊者發(fā)起物理節(jié)點(diǎn)物理捕獲攻擊時,每個節(jié)點(diǎn)都可以檢測到被編程板連接。
表1 內(nèi)部攻擊過程及后果
在網(wǎng)絡(luò)開始運(yùn)行前,超級節(jié)點(diǎn)中需引入偽隨機(jī)數(shù)生成算法為每個節(jié)點(diǎn)生成獨(dú)一無二的挑戰(zhàn)數(shù),該挑戰(zhàn)數(shù)在網(wǎng)絡(luò)中是公開的。然后,每個節(jié)點(diǎn)需生成密鑰對來實(shí)施挑戰(zhàn)-響應(yīng)模型,運(yùn)用RSA公鑰密碼算法原理[10–12],對節(jié)點(diǎn)集合N={n1, n2,..., nM}進(jìn)行預(yù)置密鑰操作。
節(jié)點(diǎn)完成預(yù)置密鑰后,超級節(jié)點(diǎn)和普通節(jié)點(diǎn)間實(shí)行挑戰(zhàn)-響應(yīng)模型,以獲取每個普通節(jié)點(diǎn)的初始信任值。挑戰(zhàn)-響應(yīng)模型的運(yùn)作機(jī)制如圖2所示,不同顏色的線條代表不同的挑戰(zhàn)-響應(yīng)輪次。據(jù)圖2可知超級節(jié)點(diǎn)與普通節(jié)點(diǎn)ni之間實(shí)施挑戰(zhàn)-響應(yīng)模型的步驟如下:
圖2 挑戰(zhàn)-響應(yīng)模型運(yùn)作機(jī)制
(1)節(jié)點(diǎn)ni發(fā) 送[ IDi,(Ei,Ri)]給超級節(jié)點(diǎn),超級節(jié)點(diǎn)把這個對應(yīng)關(guān)系記錄在表中;
(2)超級節(jié)點(diǎn)生成一個挑戰(zhàn)數(shù)N oncei并把挑戰(zhàn)數(shù)發(fā)送給節(jié)點(diǎn)ni;
(3)節(jié)點(diǎn)ni收到挑戰(zhàn)后,結(jié)合標(biāo)識符I Di、挑戰(zhàn)數(shù)N oncei以及自己是否感應(yīng)到被編程板連接的狀態(tài)h(0表示連接狀態(tài),1表示未連接狀態(tài)),采用密鑰對(Di, Ri)生 成響應(yīng)R esponsei=Noncei //IDi//h并將(IDi,Responsei)發(fā)給超級節(jié)點(diǎn);
(4)當(dāng)超級節(jié)點(diǎn)收到響應(yīng)后采用預(yù)存的密鑰(Ei, Ri) 對Responsei進(jìn) 行解密得到消息序列I si,根據(jù)消息序列 Isi的不同,對應(yīng)的響應(yīng)結(jié)果由式(1)給出
第1種情況下,超級節(jié)點(diǎn)相信該節(jié)點(diǎn)未被捕獲;第2種情況下節(jié)點(diǎn)ni有很大可能被攻擊者的編程板連接,挑戰(zhàn)失敗且累計挑戰(zhàn)失敗次數(shù)為cnum/3次(cnum為挑戰(zhàn)的總輪數(shù));第3種情況表明這些節(jié)點(diǎn)可能是合作意愿較低的自私節(jié)點(diǎn),挑戰(zhàn)失敗且累計挑戰(zhàn)失敗次數(shù)1次。利用上述挑戰(zhàn)-響應(yīng)模型,可以獲得節(jié)點(diǎn)的響應(yīng)結(jié)果。
獲取節(jié)點(diǎn)初始信任值前,網(wǎng)絡(luò)中任一節(jié)點(diǎn)行為均具有不確定性。引入貝葉斯準(zhǔn)則來度量節(jié)點(diǎn)行為的不確定性概率x。首先給x分配一個先驗(yàn)分布p(x),p(x)取自Beta函數(shù)族[7],即
Beta(1,1)是均勻分布[13]。初次對網(wǎng)絡(luò)進(jìn)行可信評估時,節(jié)點(diǎn)的任何一個信任值都可能對應(yīng)任意概率,因此參數(shù)選擇α=β=1。在挑戰(zhàn)-響應(yīng)模型中,響應(yīng)被定義為二元事件,用r表示一輪挑戰(zhàn)結(jié)束后的響應(yīng)結(jié)果。當(dāng)r=1時,代表節(jié)點(diǎn)給超級節(jié)點(diǎn)的響應(yīng)是預(yù)期中的響應(yīng),反之亦然。每一輪挑戰(zhàn)-響應(yīng)回合后r發(fā)生的概率結(jié)合給定未知概率x如式(3)所示
當(dāng)一輪挑戰(zhàn)-響應(yīng)完成后,結(jié)合全概率式和條件概率式,利用貝葉斯準(zhǔn)則更新x的后驗(yàn)分布p(x|r)如式(4)所示
此時x的后驗(yàn)分布也為Beta分布,且參數(shù)為(α+r) 和(β+1?r)。
在隨后幾輪的挑戰(zhàn)-響應(yīng)中,x的估計將采用上一輪挑戰(zhàn)-響應(yīng)結(jié)束后的后驗(yàn)分布作為其先驗(yàn)分布,在cnum輪挑戰(zhàn)-響應(yīng)之后x 的后驗(yàn)分布為p(x|r1r2...rcnum) ,其 參 數(shù) 為( 1+cnumrˉ) 和(1+cnum?cnumrˉ)。 因此cnum輪挑戰(zhàn)-響應(yīng)結(jié)束后x的后驗(yàn)分布期望值如式(6)所示
獲取節(jié)點(diǎn)的初始信任值后,對節(jié)點(diǎn)進(jìn)行分簇:(1)將初始信任值最高的幾個節(jié)點(diǎn)選為簇頭節(jié)點(diǎn),負(fù)責(zé)簇內(nèi)管理;(2)剩下的節(jié)點(diǎn)被隨機(jī)均勻地分配到每一個簇中,形成如圖3所示的分層管理結(jié)構(gòu)。
圖3 分布式網(wǎng)絡(luò)分層管理結(jié)構(gòu)
評估節(jié)點(diǎn)A獲取被評估節(jié)點(diǎn)B信任值的步驟如下: (1)根據(jù)兩節(jié)點(diǎn)間的通信行為和節(jié)點(diǎn)B的剩余能量來計算直接信任值;(2)若節(jié)點(diǎn)A與節(jié)點(diǎn)B之間通信行為較少,則需挑選一組與節(jié)點(diǎn)A、B均有過交互的推薦節(jié)點(diǎn) {C1,C2,...,CZ}給出推薦信任值;(3)若有推薦信任值,則需對直接信任值和推薦信任值進(jìn)行加權(quán)得到整合信任值。信任值計算過程如圖4所示。
圖4 信任值計算過程
4.1.1 直接信任證據(jù)
(1) 基于通信行為的信任證據(jù)
基于主觀邏輯的信任模型引入了不確定度,比用單一數(shù)值表示節(jié)點(diǎn)間信任關(guān)系的方法更準(zhǔn)確[14],所以采用此信任模型來量化基于通信行為的信任證據(jù)。引入信任3元組 {b,d,u} , 其中b,d和u分別對應(yīng)于信任、不信任和不確定度,{b,d,u}的計算方法由式(8)給出
其中,b,d,u ∈[0,1]且b+d+u=1。s和f是指通信成功和不成功的次數(shù),λ(λ>1)表示對不成功通信的懲罰因子。u是分布式網(wǎng)絡(luò)中的不確定因素,本文將其定義為動態(tài)變量u=δc(s+f), 其中δc ∈(0,1)為不確定因素的調(diào)控因子?;谕ㄐ判袨榈男湃巫C據(jù)可表示為
(2) 基于能量的信任證據(jù)
分布式網(wǎng)絡(luò)中的節(jié)點(diǎn)依賴于它們所擁有的能量[5],能量信任值的計算由式(10)給出
其中,θ為能量閾值,Eres和Eini分別代表節(jié)點(diǎn)當(dāng)前剩余能量與未開始評估前的初始能量。若節(jié)點(diǎn)當(dāng)前剩余能量較低,可能是參與了內(nèi)部攻擊而消耗了節(jié)點(diǎn)自身過多能量,且剩余能量較低的節(jié)點(diǎn)可能無法與其他節(jié)點(diǎn)進(jìn)行交互。因此可將剩余能量作為衡量能量信任值的指標(biāo)。
基于通信信任值Tcom、能量信任值Tene,根據(jù)式(11)可獲得兩節(jié)點(diǎn)之間的直接信任值Tdir
其中,ωcom和ωene分別是通信行為信任證據(jù)和能量信任證據(jù)的權(quán)重,且ωcom+ωene=1。
4.1.2 推薦信任證據(jù)
若評估節(jié)點(diǎn)A與被評估節(jié)點(diǎn)B間通信數(shù)據(jù)包過少,還須加入推薦信任值以保證信任值計算的準(zhǔn)確性[15,16]。節(jié)點(diǎn)A想獲取節(jié)點(diǎn)B的推薦信任值時,將挑選節(jié)點(diǎn)A和B的一組公共鄰居節(jié)點(diǎn)中初始信任值較高的節(jié)點(diǎn)作為推薦節(jié)點(diǎn)Ci(i=1,2,...,Z)。節(jié)點(diǎn)A收到多個推薦值時通過檢測每個推薦值的一致性來計算其權(quán)重,計算方法如式(12)所示
其中,c pAB是評估節(jié)點(diǎn)A與被評估節(jié)點(diǎn)B之間的通信數(shù)據(jù)包數(shù)量, Thnum是定義的通信數(shù)據(jù)包閾值;ωdir和ωrecom分別是直接信任值和推薦信任值的權(quán)重,ωdir+ωrecom=1。
本文采用基于新記錄滑動窗口的信任值更新機(jī)制。基于新記錄觸發(fā)的信任值更新原理是當(dāng)有新的信任記錄產(chǎn)生時,滑動窗口移動,舊的信任記錄被移除窗口。如圖5所示窗口存儲節(jié)點(diǎn)的信任記錄,信任值更新開始后窗口隨新記錄的產(chǎn)生從左向右移動,定期清除歷史記錄。
圖5 滑動窗口示意圖
信任值更新應(yīng)保持快降慢升的準(zhǔn)則[17],引入調(diào)節(jié)因子γ(0<γ<1)來 控制信任值更新的快慢,Tnew是最新記錄中的信任值,Told是歷史信任值。信任值更新方式由式(15)給出
本文采用MATLAB進(jìn)行仿真驗(yàn)證。在100 m×100 m的區(qū)域內(nèi)隨機(jī)部署100個節(jié)點(diǎn),設(shè)置挑戰(zhàn)-響應(yīng)的輪數(shù)為10輪,經(jīng)過挑戰(zhàn)-響應(yīng)后獲取每個節(jié)點(diǎn)相應(yīng)的初始信任值,選擇初始信任值不小于0.95的節(jié)點(diǎn)作為簇頭節(jié)點(diǎn),隨機(jī)均勻地把剩下的節(jié)點(diǎn)分配到每一個簇中,簇頭節(jié)點(diǎn)擁有較多能量,簇內(nèi)節(jié)點(diǎn)與簇頭節(jié)點(diǎn)之間的通信數(shù)據(jù)包c(diǎn) pAB隨機(jī)分配。參照文獻(xiàn)[4]的仿真參數(shù)設(shè)置,將通信數(shù)據(jù)包閾值Thnum的初始值設(shè)為60,信任值更新的輪數(shù)設(shè)為3輪。
現(xiàn)對基于挑戰(zhàn)-響應(yīng)模型獲取節(jié)點(diǎn)信任值算法的復(fù)雜度進(jìn)行分析。在挑戰(zhàn)-響應(yīng)階段中,挑戰(zhàn)-響應(yīng)總輪次數(shù)為cnum,所以獲取節(jié)點(diǎn)初始信任值的循環(huán)最多執(zhí)行cnumN次。設(shè)信任值更新的輪次為Tnum輪,則獲取節(jié)點(diǎn)直接信任值和間接信任值最多循環(huán)執(zhí)行 2N+N2次,信任值更新的循環(huán)執(zhí)行TnumN次。因此基于挑戰(zhàn)-響應(yīng)模型獲取節(jié)點(diǎn)信任值算法的計算復(fù)雜度為O(cnumN+2N+N2+TnumN),可在二次時間內(nèi)求解。
在此環(huán)節(jié)中設(shè)置惡意節(jié)點(diǎn)率為25%,自私節(jié)點(diǎn)率為10%(序號76-100為惡意節(jié)點(diǎn),66-75為自私節(jié)點(diǎn)),得到經(jīng)挑戰(zhàn)-響應(yīng)后獲取的節(jié)點(diǎn)初始信任值如圖6所示。從圖中可以看到惡意節(jié)點(diǎn)的初始信任值都很低,自私節(jié)點(diǎn)的初始信任值也不高,為信任值計算提供了可靠前提。
圖6 挑戰(zhàn)-響應(yīng)后的初始信任值
圖7為經(jīng)過3輪信任值更新后每一簇節(jié)點(diǎn)的信任值變化情況。從圖7(a)—圖7(c)中可以看到大部分節(jié)點(diǎn)信任值變化的幅度不大,反映出了挑戰(zhàn)-響應(yīng)模型的誤判率較低,用初始信任值就可以較為準(zhǔn)確地預(yù)測節(jié)點(diǎn)在信任值計算階段與信任值更新階段的表現(xiàn)。
圖7 各簇更新后的信任值
為驗(yàn)證本文可信評估方法的性能,將基于挑戰(zhàn)-響應(yīng)模型的可信評估方法與基于統(tǒng)一初始信任值的方法進(jìn)行對比仿真實(shí)驗(yàn)。在統(tǒng)一初始信任值的評估方法中,把所有節(jié)點(diǎn)的初始信任值設(shè)為0.5,信任值計算與信任值更新方式均與本文所設(shè)計的方法一致。
在圖8(a)中,惡意節(jié)點(diǎn)率由5%增加到40%,步進(jìn)為5%。比較了兩種不同設(shè)置初始信任值方法下的惡意節(jié)點(diǎn)檢測率,基于挑戰(zhàn)-響應(yīng)模型的可信評估方法中隨著惡意節(jié)點(diǎn)數(shù)量的增加,其檢測率依舊較高,而統(tǒng)一信任值方法的檢測率一直在30%至50%徘徊。
在可信評估中常用信任計算誤差(TCE)來評價模型的好壞[18],TCE越小說明模型效果越好。設(shè)M是網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)量,τt(i)是時間t內(nèi)第i個節(jié)點(diǎn)的信任值,在一定時間t內(nèi)
其中,pt(i)表示時間t內(nèi)第i個節(jié)點(diǎn)為誠實(shí)節(jié)點(diǎn)的可能性,pt(i)=1 表示節(jié)點(diǎn)為正常節(jié)點(diǎn),pt(i)=0表示節(jié)點(diǎn)為惡意節(jié)點(diǎn),pt(i)=0.5表示節(jié)點(diǎn)為自私節(jié)點(diǎn)。在圖8(b)中,惡意節(jié)點(diǎn)率由5%增加到40%,步進(jìn)為5%。比較了兩種不同設(shè)置初始信任值方法下TCE的變化,可以看出基于挑戰(zhàn)-響應(yīng)模型的可信評估方法的信任計算誤差較小,模型性能更好。
圖8 基于挑戰(zhàn)-響應(yīng)與無挑戰(zhàn)-響應(yīng)方法的性能對比
文獻(xiàn)[4]針對無線傳感器網(wǎng)絡(luò)提出了一種分布式信任模型EDTM,該模型采用統(tǒng)一設(shè)置初始信任值并首次根據(jù)多維信任證據(jù)評估節(jié)點(diǎn)信任值。相關(guān)文獻(xiàn)[3,19]也將該經(jīng)典模型作為基準(zhǔn)進(jìn)行了對比。本文所設(shè)計的模型與EDTM模型的對比結(jié)果如圖9所示。其中,圖9(a)為惡意節(jié)點(diǎn)檢測率的變化圖,可以看出基于挑戰(zhàn)-響應(yīng)模型的評估算法的惡意節(jié)點(diǎn)檢測率始終高于基于EDTM模型的算法。圖9(b)為信任計算誤差的變化圖,由該圖可知基于挑戰(zhàn)-響應(yīng)模型算法的信任計算誤差始終小于基于EDTM模型的算法。由此可以說明本文提出的算法性能更優(yōu)于基于EDTM模型的算法。
圖9 本文算法與EDTM模型算法的性能對比
為了解決在分布式網(wǎng)絡(luò)中運(yùn)用信任模型進(jìn)行可信評估時缺乏歷史信任證據(jù)的問題,本文提出了基于挑戰(zhàn)-響應(yīng)模型的可信評估方法。整個可信評估過程分為兩步:第1步是在超級節(jié)點(diǎn)和普通節(jié)點(diǎn)間實(shí)施挑戰(zhàn)-響應(yīng)模型來獲取普通節(jié)點(diǎn)可靠的初始信任值。第2步是利用獲得的初始信任值進(jìn)行分簇并在簇內(nèi)實(shí)現(xiàn)信任值計算和信任值更新,以達(dá)到提早檢測惡意節(jié)點(diǎn)并降低自私節(jié)點(diǎn)信任值的目的。仿真實(shí)驗(yàn)結(jié)果表明,采用挑戰(zhàn)-響應(yīng)后獲取的初始信任值可以較為準(zhǔn)確地檢測出惡意節(jié)點(diǎn)并降低自私節(jié)點(diǎn)的信任值,使用此初始信任值完成整個可信評估流程后的惡意節(jié)點(diǎn)檢測率較高且信任計算誤差較小,所以在分布式網(wǎng)絡(luò)中運(yùn)用挑戰(zhàn)-響應(yīng)模型獲取節(jié)點(diǎn)的初始信任值并實(shí)施完整的可信評估流程是一種解決缺乏歷史信任證據(jù)問題的可靠手段。由于挑戰(zhàn)-響應(yīng)模型涉及密鑰的生成與配送問題,耗時較長,如何做到高效且可靠地獲取節(jié)點(diǎn)初始信任值來完成可信評估是未來的研究方向。