摘 要: 為了提高P2P網(wǎng)絡(luò)的安全性,提出一種P2P環(huán)境下以反饋信息評價作為可信度的信任機制,闡述了模型中的信任度的定義,并詳細介紹了信任度的計算。對仿真系統(tǒng)進行了性能測試,并對測試結(jié)果進行了分析。仿真結(jié)果表明,該模型對于信息竊取、信息篡改等類型的惡意攻擊有較好的抑制作用。
關(guān)鍵詞: 信任機制;信任度;通信成功率
隨著P2P系統(tǒng)的廣泛應(yīng)用,安全問題也隨之產(chǎn)生。主要體現(xiàn)在以下幾個方面:由于共享特性帶來的安全問題、中間節(jié)點的惡意攻擊以及針對P2P系統(tǒng)結(jié)構(gòu)安全漏洞的攻擊等。在P2P系統(tǒng)中節(jié)點的信息傳輸往往需要經(jīng)過多個中間節(jié)點的傳遞,由中間節(jié)點產(chǎn)生的威脅最大也最難防范。中間節(jié)點惡意攻擊包括信息竊取、信息篡改等。
根據(jù)建立信任關(guān)系所用的方法,P2P網(wǎng)絡(luò)的信任模型大致可分為基于可信第三方的信任模型和基于反饋/評價的信任模型兩類[1]?;诳尚诺谌降男湃文P筒捎脗鹘y(tǒng)安全體系中的PKI技術(shù),通過網(wǎng)絡(luò)中的少數(shù)超級節(jié)點來監(jiān)測整個網(wǎng)絡(luò)的運行情況,并定期通告違規(guī)節(jié)點或?qū)ζ溥M行處罰。這類系統(tǒng)往往依賴于少量中心節(jié)點,因此存在單點失效和可擴展性的問題?;诜答?評價的信任模型分為資源建立可信度和為通信節(jié)點建立可信度兩大類。為資源建立可信度的信任模型局限于信息共享的應(yīng)用,不具有廣泛的適用性。為通信節(jié)點建立可信度又分為全局信任和局部信任2種模型。全局信任模型對網(wǎng)絡(luò)中所有通信反饋進行分析并為每個節(jié)點建立唯一的可信度。在 KAMVAR S提出的EigenTrust模型中是根據(jù)節(jié)點通信的歷史計算本地的信任度,并考慮節(jié)點的推薦信任信息,通過節(jié)點間信任度的迭代來實現(xiàn)信任的傳播[2]。局部信任模型大多關(guān)注于提供機制使節(jié)點可以根據(jù)共享信息為給定節(jié)點計算局部信任值。 WANG Y提出了P2P環(huán)境下基于貝葉斯網(wǎng)絡(luò)的信任模型[3],該信任模型主要關(guān)注于描述信任的不同方面,使得節(jié)點可以根據(jù)不同的場景來按需獲取節(jié)點不同方面的性能。總之,對于信任度的計算,現(xiàn)有的信任度模型均給出了其各自的計算方法,這些方法在一定程度上提高了系統(tǒng)的安全性。
本文提出在P2P網(wǎng)絡(luò)中引入信任度評價機制來降低惡意節(jié)點攻擊,從而提高通信成功的概率。根據(jù)節(jié)點在通信交互過程中,其他節(jié)點對給定節(jié)點的評價來設(shè)定信任度,并相應(yīng)地更新路由表高速緩存器中的信任值, 使節(jié)點在以后的通信過程中有針對性地選擇信任度高的節(jié)點作為傳遞消息的中間節(jié)點。
1 信任模型
1.1 信任度
反饋信任機制中關(guān)于一個給定節(jié)點的信任度的定義,需要考慮該節(jié)點與其他節(jié)點在以往通信交互過程中,其他節(jié)點對該節(jié)點的評價。參考文獻[4]考慮了3個主要因素:
(1)給定節(jié)點收到來自其他節(jié)點的通信滿意度信息的反饋;
(2)給定節(jié)點與其他節(jié)點的通信次數(shù);
(3)反饋源信息的可信度。
本文中基于信任機制的P2P系統(tǒng)也是依賴節(jié)點的反饋信息來做出信任度評價的。反饋信息是節(jié)點在一次通信后接收到的關(guān)于通信內(nèi)容的滿意度,這反映了此節(jié)點完成其所負責(zé)部分通信的程度。
1.2 信任度的搜集、計算和更新
基于通信反饋滿意度的信任機制,每個參與通信的節(jié)點在通信結(jié)束后進行相互反饋。而關(guān)于信任度的計算本文采用計算信任度的方法并進行改進,首先定義幾個參數(shù):
I(u,v)表示節(jié)點u與節(jié)點v之間的通信次數(shù);
I(u)表示節(jié)點u與其他節(jié)點通信的總次數(shù);
P(u,i)表示其他加入的節(jié)點與u的第i次通信;
S(u,i)表示節(jié)點u從P(u,i)次通信后得到的滿意度;
Cr(v)表示節(jié)點v反饋源的可信度。
那么節(jié)點u的信任度可根據(jù)式(1)進行計算:
式(1)中反饋滿意度S(u,i)的數(shù)值在0和1之間。S(u,i)和通信次數(shù)I(u)可以在每次通信結(jié)束后自動收集,而反饋源的可信度則需要考慮節(jié)點過去的通信歷史,定義如下:
采用式(2)來計算反饋源可信度的前提是基于2個假設(shè),首先惡意節(jié)點一定會提供錯誤的或誤導(dǎo)的反饋信息以暴露自己惡意節(jié)點的身份,其次正常的節(jié)點總是提供正確的反饋信息。
其他通信節(jié)點可以通過T(u)的值來判斷節(jié)點u的可信度。簡單的判斷條件為:如果I(u)>C1并且T(u)>C2,那么節(jié)點u就是可信的。其中C1為節(jié)點u最少的通信次數(shù)門限值,C1為節(jié)點u最低的可信程度。一個容忍度較高的節(jié)點門限值C2會相對低一些。
考慮到現(xiàn)實中惡意節(jié)點并不總是提供錯誤或誤導(dǎo)的反饋信息,正常的節(jié)點有時也會提供錯誤信息,因此本文對給定節(jié)點的信任度計算式(1)進行修改,加入節(jié)點的信任率Tr,以及適當(dāng)調(diào)整參數(shù)α和β的值使得系統(tǒng)在具有惡意節(jié)點的網(wǎng)絡(luò)中能夠提高計算信任度值的準(zhǔn)確性。修改公式如下:
信任度的更新方式本文采用參考文獻[7]提到的設(shè)置高速緩存器來收集節(jié)點以往通信過程中的信任度。高速緩存器的大小取決于覆蓋網(wǎng)絡(luò)的結(jié)構(gòu),以及每個節(jié)點的有用資源等因素。
2 基于信任機制的P2P模型系統(tǒng)
2.1 系統(tǒng)模型
考慮分布式結(jié)構(gòu)化的P2P系統(tǒng),以環(huán)形P2P網(wǎng)絡(luò)為基本框架進行改進。在節(jié)點模型中添加2個模塊,即信任度管理模塊和數(shù)據(jù)定位模塊。這樣使得每個節(jié)點都參與信任度的計算。信任度管理模塊用于進行反饋信息的發(fā)送和信任度的計算,并維護本地的數(shù)據(jù)庫信息。數(shù)據(jù)定位模塊用來放置和定位P2P網(wǎng)絡(luò)中的信任值信息。
不同的P2P結(jié)構(gòu)網(wǎng)絡(luò)采用不同的數(shù)據(jù)定位方法,例如Gnutella采用基于泛洪的廣播方法來搜索信息但是不考慮消息的可靠性,基于DHT算法的Chord[8]網(wǎng)絡(luò)模型利用哈希函數(shù)將通信節(jié)點的IP地址轉(zhuǎn)變?yōu)槿治ㄒ粯?biāo)識符nodeID,并把關(guān)鍵字和存儲位置之間建立一一對應(yīng)關(guān)系,使得給定關(guān)鍵字后就可以唯一確定存儲位置。每個節(jié)點加入網(wǎng)絡(luò)都會擁有一個nodeID,并且節(jié)點的nodeID不會隨著節(jié)點改變IP地址或不定時離開覆蓋網(wǎng)絡(luò)而改變。DHT算法首先根據(jù)nodeID找到節(jié)點的目的地址,然后再把nodeID轉(zhuǎn)換成IP地址。在本文中關(guān)于一個節(jié)點u的信任數(shù)據(jù),以及節(jié)點u每次通信后獲得的反饋信息,都存儲在通過哈希函數(shù)得到的具有唯一關(guān)鍵字標(biāo)志的節(jié)點。簡單的模型結(jié)構(gòu)如圖1所示。
每一個節(jié)點都存儲許多其他節(jié)點的關(guān)鍵字信息,并且維護一張具有其他節(jié)點關(guān)鍵字信息的路由表。
2.2 路由表及路由算法
本文采用基于DHT算法的P2P模型的路由表構(gòu)建方式。路由表中存儲鄰居節(jié)點的信息包括nodeID、關(guān)鍵字Key及信任度的值。簡單的路由表設(shè)置如圖2所示。
舉例說明對圖2中網(wǎng)絡(luò)進行信息查詢。當(dāng)節(jié)點終端2接收到查詢信息Key 110,終端2沒有需要的信任度值,那么它查詢路由表尋找與Key 110有相同前綴的節(jié)點信息,這里1指向了終端6,于是根據(jù)1查詢消息發(fā)送到節(jié)點終端6,終端6也沒有需要的信任度值,繼續(xù)查詢終端6的路由表,路由表中有11指向了終端4,將查詢信息發(fā)送到終端4,終端4本地Key為110,于是返回查詢需要的信任度值。
3 系統(tǒng)仿真及測試結(jié)果
通過仿真實驗來驗證所提出的系統(tǒng)在有惡意節(jié)點的情況下通信成功的概率,并將其與式(1)涉及的信任機制模型以及沒有引入信任機制的P2P系統(tǒng)三者通信成功的概率進行比較。通過設(shè)置惡意節(jié)點的數(shù)目,以及節(jié)點的信任率,來驗證系統(tǒng)在不同條件下三者通信成功的概率。
3.1 系統(tǒng)測試環(huán)境及參數(shù)設(shè)置
仿真工具采用NetLogo 4.0.4。在仿真試驗開始時設(shè)置100個通信節(jié)點,其中惡意節(jié)點數(shù)為20個,節(jié)點的信任率Tr為40%,μ為0.6,α為0.4。為了簡單起見,在環(huán)形P2P網(wǎng)絡(luò)通信中,假設(shè)信息傳遞一圈為一次通信過程,網(wǎng)絡(luò)中的每個節(jié)點在每圈信息傳遞過程中只進行一次通信。用跳數(shù)(time steps,信息在所有節(jié)點中傳遞完一次稱為1 step)來表示仿真時間,在每一跳中每個節(jié)點都要完成信息的查詢、交換、信任度的更新以及反饋信息的發(fā)送。
3.2 仿真結(jié)果及分析
仿真結(jié)果如圖3、圖4所示,圖中橫坐標(biāo)表示通信的次數(shù),1 step代表一次通信,縱坐標(biāo)表示通信成功的概率,虛線的信任模型曲線是在式(1)的模型下得出的,呈上升趨勢的實線是改進信任模型式(3)下得出的,呈下降趨勢的實線表示沒有加入信任度的網(wǎng)絡(luò)模型。圖3試驗按照3.1節(jié)的初始條件對系統(tǒng)進行設(shè)置,設(shè)置Tr<μ(此時β=-1),使得系統(tǒng)從惡意行為較多的情況開始,可以看到改進的模型從第14次通信(忽略小數(shù)部分)開始成功的概率就超過了式(1)的信任模型,并在以后的通信過程中也有一定的優(yōu)勢。
圖4所示試驗將惡意節(jié)點數(shù)設(shè)為40個,其他條件不變,保持了節(jié)點信任率參與可信度計算的比率并且同樣從系統(tǒng)惡意行為較多的情況開始仿真。由仿真結(jié)果圖可以看到與圖3相比變化不大,即雖然惡意節(jié)點增多了,但是通過設(shè)置適當(dāng)?shù)?alpha;值還是能夠保持較高的通信成功概率。
由2次試驗結(jié)果可以看到,加入節(jié)點信任率Tr以及調(diào)整參數(shù)α和β后,節(jié)點計算信任度的準(zhǔn)確性有所提高,使得信息在選擇路由時根據(jù)信任度的高低選擇的中間節(jié)點更加可靠,進而通信成功的概率不斷地提高。
本文提出了一種基于反饋評價信任機制的模型,通過節(jié)點間在通信結(jié)束后互相反饋信任信息來計算節(jié)點的信任度,同時也考慮到節(jié)點的信任率,通過仿真試驗看出,信任機制模型通信成功的概率還是很高的。相較于改進前的模型,系統(tǒng)在抑制惡意節(jié)點的效率也有所提高。
參考文獻
[1]田慧蓉. P2P網(wǎng)絡(luò)信任模型的研究[J]. 電信網(wǎng)技術(shù), 2007,07(7):28-31.
[2] KAMVAR S , MARIO T S, HECTOR G M. The eigentrust algorithm for reputation management in P2P networks [C]. In proceedings of the 12th international conference on World Wide Web, 2003:640 - 651.
[3] WANG Y, VASSILEVA J . Bayesian network-based trust model[C]. In proceedings of the 2003 IEEE/WIC International Conference on Web Intelligence . 2003:372.
[4] LI Xiong, LIU Ling , PeerTrust: supporting reputation-based trust for Peer-to-Peer electronic communities[J]. IEEE Trans. Knowledge and Data Eng. 2004,16(7): 843-857.
[5] ALI A S, ERSIN U, MARK R P. A reputation-based trust management system for P2P networks[C]. ACM International Conference on Information and Knowledge Management (CIKM’01),2001:310-317.
[6] 蘇瀚,汪蕓. P2P環(huán)境中基于信任度的服務(wù)路由系統(tǒng)的研究[J]. 計算機應(yīng)用研究, 2006,(09):230-233.
[7]Li Xiong, LIU Ling . Building trust in decentralized peer-to-Peer electronic communities [C]. International Conference on Electronic Commerce Research (ICECR-5).2002.
[8] STOICA I , MORRIS R , KARGER D , et al. A scalable peer-to-peer lookup protocol for internet applications [J]. IEEE/ACM Transactions on Networking.2003,11(1):17-32.