摘 要: 為了提高P2P網(wǎng)絡(luò)的安全性,提出一種P2P環(huán)境下以反饋信息評(píng)價(jià)作為可信度的信任機(jī)制,闡述了模型中的信任度的定義,并詳細(xì)介紹了信任度的計(jì)算。對(duì)仿真系統(tǒng)進(jìn)行了性能測(cè)試,并對(duì)測(cè)試結(jié)果進(jìn)行了分析。仿真結(jié)果表明,該模型對(duì)于信息竊取、信息篡改等類型的惡意攻擊有較好的抑制作用。
關(guān)鍵詞: 信任機(jī)制;信任度;通信成功率
隨著P2P系統(tǒng)的廣泛應(yīng)用,安全問(wèn)題也隨之產(chǎn)生。主要體現(xiàn)在以下幾個(gè)方面:由于共享特性帶來(lái)的安全問(wèn)題、中間節(jié)點(diǎn)的惡意攻擊以及針對(duì)P2P系統(tǒng)結(jié)構(gòu)安全漏洞的攻擊等。在P2P系統(tǒng)中節(jié)點(diǎn)的信息傳輸往往需要經(jīng)過(guò)多個(gè)中間節(jié)點(diǎn)的傳遞,由中間節(jié)點(diǎn)產(chǎn)生的威脅最大也最難防范。中間節(jié)點(diǎn)惡意攻擊包括信息竊取、信息篡改等。
根據(jù)建立信任關(guān)系所用的方法,P2P網(wǎng)絡(luò)的信任模型大致可分為基于可信第三方的信任模型和基于反饋/評(píng)價(jià)的信任模型兩類[1]?;诳尚诺谌降男湃文P筒捎脗鹘y(tǒng)安全體系中的PKI技術(shù),通過(guò)網(wǎng)絡(luò)中的少數(shù)超級(jí)節(jié)點(diǎn)來(lái)監(jiān)測(cè)整個(gè)網(wǎng)絡(luò)的運(yùn)行情況,并定期通告違規(guī)節(jié)點(diǎn)或?qū)ζ溥M(jìn)行處罰。這類系統(tǒng)往往依賴于少量中心節(jié)點(diǎn),因此存在單點(diǎn)失效和可擴(kuò)展性的問(wèn)題。基于反饋/評(píng)價(jià)的信任模型分為資源建立可信度和為通信節(jié)點(diǎn)建立可信度兩大類。為資源建立可信度的信任模型局限于信息共享的應(yīng)用,不具有廣泛的適用性。為通信節(jié)點(diǎn)建立可信度又分為全局信任和局部信任2種模型。全局信任模型對(duì)網(wǎng)絡(luò)中所有通信反饋進(jìn)行分析并為每個(gè)節(jié)點(diǎn)建立唯一的可信度。在 KAMVAR S提出的EigenTrust模型中是根據(jù)節(jié)點(diǎn)通信的歷史計(jì)算本地的信任度,并考慮節(jié)點(diǎn)的推薦信任信息,通過(guò)節(jié)點(diǎn)間信任度的迭代來(lái)實(shí)現(xiàn)信任的傳播[2]。局部信任模型大多關(guān)注于提供機(jī)制使節(jié)點(diǎn)可以根據(jù)共享信息為給定節(jié)點(diǎn)計(jì)算局部信任值。 WANG Y提出了P2P環(huán)境下基于貝葉斯網(wǎng)絡(luò)的信任模型[3],該信任模型主要關(guān)注于描述信任的不同方面,使得節(jié)點(diǎn)可以根據(jù)不同的場(chǎng)景來(lái)按需獲取節(jié)點(diǎn)不同方面的性能??傊?,對(duì)于信任度的計(jì)算,現(xiàn)有的信任度模型均給出了其各自的計(jì)算方法,這些方法在一定程度上提高了系統(tǒng)的安全性。
本文提出在P2P網(wǎng)絡(luò)中引入信任度評(píng)價(jià)機(jī)制來(lái)降低惡意節(jié)點(diǎn)攻擊,從而提高通信成功的概率。根據(jù)節(jié)點(diǎn)在通信交互過(guò)程中,其他節(jié)點(diǎn)對(duì)給定節(jié)點(diǎn)的評(píng)價(jià)來(lái)設(shè)定信任度,并相應(yīng)地更新路由表高速緩存器中的信任值, 使節(jié)點(diǎn)在以后的通信過(guò)程中有針對(duì)性地選擇信任度高的節(jié)點(diǎn)作為傳遞消息的中間節(jié)點(diǎn)。
1 信任模型
1.1 信任度
反饋信任機(jī)制中關(guān)于一個(gè)給定節(jié)點(diǎn)的信任度的定義,需要考慮該節(jié)點(diǎn)與其他節(jié)點(diǎn)在以往通信交互過(guò)程中,其他節(jié)點(diǎn)對(duì)該節(jié)點(diǎn)的評(píng)價(jià)。參考文獻(xiàn)[4]考慮了3個(gè)主要因素:
(1)給定節(jié)點(diǎn)收到來(lái)自其他節(jié)點(diǎn)的通信滿意度信息的反饋;
(2)給定節(jié)點(diǎn)與其他節(jié)點(diǎn)的通信次數(shù);
(3)反饋源信息的可信度。
本文中基于信任機(jī)制的P2P系統(tǒng)也是依賴節(jié)點(diǎn)的反饋信息來(lái)做出信任度評(píng)價(jià)的。反饋信息是節(jié)點(diǎn)在一次通信后接收到的關(guān)于通信內(nèi)容的滿意度,這反映了此節(jié)點(diǎn)完成其所負(fù)責(zé)部分通信的程度。
1.2 信任度的搜集、計(jì)算和更新
基于通信反饋滿意度的信任機(jī)制,每個(gè)參與通信的節(jié)點(diǎn)在通信結(jié)束后進(jìn)行相互反饋。而關(guān)于信任度的計(jì)算本文采用計(jì)算信任度的方法并進(jìn)行改進(jìn),首先定義幾個(gè)參數(shù):
I(u,v)表示節(jié)點(diǎn)u與節(jié)點(diǎn)v之間的通信次數(shù);
I(u)表示節(jié)點(diǎn)u與其他節(jié)點(diǎn)通信的總次數(shù);
P(u,i)表示其他加入的節(jié)點(diǎn)與u的第i次通信;
S(u,i)表示節(jié)點(diǎn)u從P(u,i)次通信后得到的滿意度;
Cr(v)表示節(jié)點(diǎn)v反饋源的可信度。
那么節(jié)點(diǎn)u的信任度可根據(jù)式(1)進(jìn)行計(jì)算:
式(1)中反饋滿意度S(u,i)的數(shù)值在0和1之間。S(u,i)和通信次數(shù)I(u)可以在每次通信結(jié)束后自動(dòng)收集,而反饋源的可信度則需要考慮節(jié)點(diǎn)過(guò)去的通信歷史,定義如下:
采用式(2)來(lái)計(jì)算反饋源可信度的前提是基于2個(gè)假設(shè),首先惡意節(jié)點(diǎn)一定會(huì)提供錯(cuò)誤的或誤導(dǎo)的反饋信息以暴露自己惡意節(jié)點(diǎn)的身份,其次正常的節(jié)點(diǎn)總是提供正確的反饋信息。
其他通信節(jié)點(diǎn)可以通過(guò)T(u)的值來(lái)判斷節(jié)點(diǎn)u的可信度。簡(jiǎn)單的判斷條件為:如果I(u)>C1并且T(u)>C2,那么節(jié)點(diǎn)u就是可信的。其中C1為節(jié)點(diǎn)u最少的通信次數(shù)門限值,C1為節(jié)點(diǎn)u最低的可信程度。一個(gè)容忍度較高的節(jié)點(diǎn)門限值C2會(huì)相對(duì)低一些。
考慮到現(xiàn)實(shí)中惡意節(jié)點(diǎn)并不總是提供錯(cuò)誤或誤導(dǎo)的反饋信息,正常的節(jié)點(diǎn)有時(shí)也會(huì)提供錯(cuò)誤信息,因此本文對(duì)給定節(jié)點(diǎn)的信任度計(jì)算式(1)進(jìn)行修改,加入節(jié)點(diǎn)的信任率Tr,以及適當(dāng)調(diào)整參數(shù)α和β的值使得系統(tǒng)在具有惡意節(jié)點(diǎn)的網(wǎng)絡(luò)中能夠提高計(jì)算信任度值的準(zhǔn)確性。修改公式如下:
信任度的更新方式本文采用參考文獻(xiàn)[7]提到的設(shè)置高速緩存器來(lái)收集節(jié)點(diǎn)以往通信過(guò)程中的信任度。高速緩存器的大小取決于覆蓋網(wǎng)絡(luò)的結(jié)構(gòu),以及每個(gè)節(jié)點(diǎn)的有用資源等因素。
2 基于信任機(jī)制的P2P模型系統(tǒng)
2.1 系統(tǒng)模型
考慮分布式結(jié)構(gòu)化的P2P系統(tǒng),以環(huán)形P2P網(wǎng)絡(luò)為基本框架進(jìn)行改進(jìn)。在節(jié)點(diǎn)模型中添加2個(gè)模塊,即信任度管理模塊和數(shù)據(jù)定位模塊。這樣使得每個(gè)節(jié)點(diǎn)都參與信任度的計(jì)算。信任度管理模塊用于進(jìn)行反饋信息的發(fā)送和信任度的計(jì)算,并維護(hù)本地的數(shù)據(jù)庫(kù)信息。數(shù)據(jù)定位模塊用來(lái)放置和定位P2P網(wǎng)絡(luò)中的信任值信息。
不同的P2P結(jié)構(gòu)網(wǎng)絡(luò)采用不同的數(shù)據(jù)定位方法,例如Gnutella采用基于泛洪的廣播方法來(lái)搜索信息但是不考慮消息的可靠性,基于DHT算法的Chord[8]網(wǎng)絡(luò)模型利用哈希函數(shù)將通信節(jié)點(diǎn)的IP地址轉(zhuǎn)變?yōu)槿治ㄒ粯?biāo)識(shí)符nodeID,并把關(guān)鍵字和存儲(chǔ)位置之間建立一一對(duì)應(yīng)關(guān)系,使得給定關(guān)鍵字后就可以唯一確定存儲(chǔ)位置。每個(gè)節(jié)點(diǎn)加入網(wǎng)絡(luò)都會(huì)擁有一個(gè)nodeID,并且節(jié)點(diǎn)的nodeID不會(huì)隨著節(jié)點(diǎn)改變IP地址或不定時(shí)離開(kāi)覆蓋網(wǎng)絡(luò)而改變。DHT算法首先根據(jù)nodeID找到節(jié)點(diǎn)的目的地址,然后再把nodeID轉(zhuǎn)換成IP地址。在本文中關(guān)于一個(gè)節(jié)點(diǎn)u的信任數(shù)據(jù),以及節(jié)點(diǎn)u每次通信后獲得的反饋信息,都存儲(chǔ)在通過(guò)哈希函數(shù)得到的具有唯一關(guān)鍵字標(biāo)志的節(jié)點(diǎn)。簡(jiǎn)單的模型結(jié)構(gòu)如圖1所示。
每一個(gè)節(jié)點(diǎn)都存儲(chǔ)許多其他節(jié)點(diǎn)的關(guān)鍵字信息,并且維護(hù)一張具有其他節(jié)點(diǎn)關(guān)鍵字信息的路由表。
2.2 路由表及路由算法
本文采用基于DHT算法的P2P模型的路由表構(gòu)建方式。路由表中存儲(chǔ)鄰居節(jié)點(diǎn)的信息包括nodeID、關(guān)鍵字Key及信任度的值。簡(jiǎn)單的路由表設(shè)置如圖2所示。
舉例說(shuō)明對(duì)圖2中網(wǎng)絡(luò)進(jìn)行信息查詢。當(dāng)節(jié)點(diǎn)終端2接收到查詢信息Key 110,終端2沒(méi)有需要的信任度值,那么它查詢路由表尋找與Key 110有相同前綴的節(jié)點(diǎn)信息,這里1指向了終端6,于是根據(jù)1查詢消息發(fā)送到節(jié)點(diǎn)終端6,終端6也沒(méi)有需要的信任度值,繼續(xù)查詢終端6的路由表,路由表中有11指向了終端4,將查詢信息發(fā)送到終端4,終端4本地Key為110,于是返回查詢需要的信任度值。
3 系統(tǒng)仿真及測(cè)試結(jié)果
通過(guò)仿真實(shí)驗(yàn)來(lái)驗(yàn)證所提出的系統(tǒng)在有惡意節(jié)點(diǎn)的情況下通信成功的概率,并將其與式(1)涉及的信任機(jī)制模型以及沒(méi)有引入信任機(jī)制的P2P系統(tǒng)三者通信成功的概率進(jìn)行比較。通過(guò)設(shè)置惡意節(jié)點(diǎn)的數(shù)目,以及節(jié)點(diǎn)的信任率,來(lái)驗(yàn)證系統(tǒng)在不同條件下三者通信成功的概率。
3.1 系統(tǒng)測(cè)試環(huán)境及參數(shù)設(shè)置
仿真工具采用NetLogo 4.0.4。在仿真試驗(yàn)開(kāi)始時(shí)設(shè)置100個(gè)通信節(jié)點(diǎn),其中惡意節(jié)點(diǎn)數(shù)為20個(gè),節(jié)點(diǎn)的信任率Tr為40%,μ為0.6,α為0.4。為了簡(jiǎn)單起見(jiàn),在環(huán)形P2P網(wǎng)絡(luò)通信中,假設(shè)信息傳遞一圈為一次通信過(guò)程,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)在每圈信息傳遞過(guò)程中只進(jìn)行一次通信。用跳數(shù)(time steps,信息在所有節(jié)點(diǎn)中傳遞完一次稱為1 step)來(lái)表示仿真時(shí)間,在每一跳中每個(gè)節(jié)點(diǎn)都要完成信息的查詢、交換、信任度的更新以及反饋信息的發(fā)送。
3.2 仿真結(jié)果及分析
仿真結(jié)果如圖3、圖4所示,圖中橫坐標(biāo)表示通信的次數(shù),1 step代表一次通信,縱坐標(biāo)表示通信成功的概率,虛線的信任模型曲線是在式(1)的模型下得出的,呈上升趨勢(shì)的實(shí)線是改進(jìn)信任模型式(3)下得出的,呈下降趨勢(shì)的實(shí)線表示沒(méi)有加入信任度的網(wǎng)絡(luò)模型。圖3試驗(yàn)按照3.1節(jié)的初始條件對(duì)系統(tǒng)進(jìn)行設(shè)置,設(shè)置Tr<μ(此時(shí)β=-1),使得系統(tǒng)從惡意行為較多的情況開(kāi)始,可以看到改進(jìn)的模型從第14次通信(忽略小數(shù)部分)開(kāi)始成功的概率就超過(guò)了式(1)的信任模型,并在以后的通信過(guò)程中也有一定的優(yōu)勢(shì)。
圖4所示試驗(yàn)將惡意節(jié)點(diǎn)數(shù)設(shè)為40個(gè),其他條件不變,保持了節(jié)點(diǎn)信任率參與可信度計(jì)算的比率并且同樣從系統(tǒng)惡意行為較多的情況開(kāi)始仿真。由仿真結(jié)果圖可以看到與圖3相比變化不大,即雖然惡意節(jié)點(diǎn)增多了,但是通過(guò)設(shè)置適當(dāng)?shù)?alpha;值還是能夠保持較高的通信成功概率。
由2次試驗(yàn)結(jié)果可以看到,加入節(jié)點(diǎn)信任率Tr以及調(diào)整參數(shù)α和β后,節(jié)點(diǎn)計(jì)算信任度的準(zhǔn)確性有所提高,使得信息在選擇路由時(shí)根據(jù)信任度的高低選擇的中間節(jié)點(diǎn)更加可靠,進(jìn)而通信成功的概率不斷地提高。
本文提出了一種基于反饋評(píng)價(jià)信任機(jī)制的模型,通過(guò)節(jié)點(diǎn)間在通信結(jié)束后互相反饋信任信息來(lái)計(jì)算節(jié)點(diǎn)的信任度,同時(shí)也考慮到節(jié)點(diǎn)的信任率,通過(guò)仿真試驗(yàn)看出,信任機(jī)制模型通信成功的概率還是很高的。相較于改進(jìn)前的模型,系統(tǒng)在抑制惡意節(jié)點(diǎn)的效率也有所提高。
參考文獻(xiàn)
[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]. 計(jì)算機(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.