張信媛++陸天波
摘要:匿名通信主要解決的問題是隱藏通信雙方的通信關(guān)系,使竊聽者無法判斷通信雙方的身份和通信關(guān)系,從而提供人們隱私保護。P2P文件共享網(wǎng)絡(luò)大多不提供匿名服務(wù),本文提出一種匿名通信方案,用于P2P文件共享網(wǎng)絡(luò),該方案采用Crowds匿名通信技術(shù)的基本思想,即“把個人隱藏在群體中”,通過概率轉(zhuǎn)發(fā)的方式,來決定消息是被直接發(fā)送給服務(wù)器還是“群體”中的其他成員。除此以外,該方案還提供可調(diào)節(jié)的匿名度,因為匿名性的獲取往往是以性能的犧牲為前提而實現(xiàn)的。因此,可調(diào)節(jié)的匿名度可以保證不同用戶對匿名度和性能的不同需求。
關(guān)鍵詞:匿名通信;P2P網(wǎng)絡(luò);Crowds協(xié)議;文件共享
中圖分類號:TP393
文獻(xiàn)標(biāo)識碼:A
DOI:10.3969/j.issn.1003-6970.2015.12.002
本文著錄格式:張信媛,陸天波一種用于P2P文件共享網(wǎng)絡(luò)的匿名通信方案[J].軟件,2015,36(12):05-08
0 引言
傳統(tǒng)的加密于段,更多地關(guān)注于消息內(nèi)容的機密性,卻忽略了對于通信雙方身份信息的保護。對于大多數(shù)加密技術(shù)來說,雖然攻擊者要想獲取通信的內(nèi)容非常閑難,但卻可以輕而易舉的發(fā)現(xiàn)通信雙方的身份信息,這是因為TCP/IP協(xié)議是將消息的發(fā)送者與接收者暴露在外的。匿名通信技術(shù),就是用于解決上述問題的。最早的匿名通信技術(shù),可以追溯到1981年,Chaum提出的Mix可以說是匿名通信技術(shù)領(lǐng)域至關(guān)重要的成果,之后許多研究人員提出的匿名通信技術(shù),都借鑒了Chaum的Mix思想。
互聯(lián)網(wǎng)的飛速發(fā)展在給人們帶來便利的同時,也使得更多的個人信息暴露在大眾之下。因此,越來越多的領(lǐng)域需要匿名通信技術(shù),以保護用戶的隱私。P2P文件共享就是其中的一個例子。P2P毫無疑問是時下最流行的文件共享方式,然而,流行的P2P文件傳輸協(xié)議并不提供用戶匿名通信服務(wù)。很多人選擇借助現(xiàn)有的匿名通信工具,如tor等,來實現(xiàn)P2P文件傳輸?shù)哪涿ㄐ?。但是,tor豐要是為web瀏覽或即時消息等低延遲的應(yīng)用提供匿名通信服務(wù)的工具,大量的P2P文件共享流量將嚴(yán)重威脅tor提供匿名通信服務(wù)的能力。因此,對于專門用于P2P文件匿名共享的匿名通信服務(wù)系統(tǒng)的需求就變得非常迫切。
本文提出一種基于Crowds的匿名通信方案,該方案可用于為P2P文件共享網(wǎng)絡(luò)提供可調(diào)節(jié)匿名度的匿名服務(wù)。
1 Crowds
1.1 Crowds原理
Crowds是一種匿名通信方案,它用來提供匿名的web服務(wù)。它是一個封閉的系統(tǒng),參與其中的節(jié)點被稱為jondos。另外,Crowds通過一個中心服務(wù)器Blender來管理所有的jondos。當(dāng)有新的節(jié)點加入到系統(tǒng)中時,Blender會將系統(tǒng)中的節(jié)點信息通知給這個新加入的節(jié)點,同時也將這個新加入的節(jié)點通知給系統(tǒng)中的其他節(jié)點。當(dāng)Crowds中的節(jié)點要向某個web服務(wù)器發(fā)送請求時,它有可能直接將請求發(fā)送給web服務(wù)器,也有可能將請求發(fā)送給系統(tǒng)中的任何jondos,其概率分別是pf和l-pf。當(dāng)系統(tǒng)中任何一個節(jié)點接受到來自其他jondos轉(zhuǎn)發(fā)的請求時,它也按照上述的方式來處理該請求。圖1表示在一個Corwds中,請求被發(fā)送出去的幾種路徑,分別是1→5→server:2→6→2→號server:3→1→6→server:4→4→server:5→4→6→server:and6→3→server。
1.2 匿名度
匿名通信系統(tǒng)都要具有一定的匿名性,而匿名度,則是衡量匿名性的指標(biāo)。Crowds的作者Reiter和Rubin在提出Crowds的同時,也第一次將匿名度劃分為六個等級。
如圖2所示,從左到右分布著六個匿名度,其匿名性依次減弱。對于各個匿名度的解釋如下:(這里為了簡單起見,對此等級劃分的描述是相對于發(fā)送者匿名的,但它完全可以延伸到接收者匿名):
Absolute privacy:意為絕對的隱私,表示最強的匿名性。此時,攻擊者完全無法判斷消息的發(fā)起者是誰。
Beyond suspicion:攻擊者可能會獲取到一些信息,但是卻無法憑借這些信息判斷消息的發(fā)起者是誰。
Probable innocence:此時,攻擊者根據(jù)已經(jīng)獲取的信息,可以判斷,某個節(jié)點是發(fā)送者的概率大于系統(tǒng)中其他潛在的發(fā)送者,但是攻擊者并不能判斷出該發(fā)送者是否是消息的發(fā)起者,其匿名度要弱于BeyondSuspicion。
Possible innocence:攻擊者根據(jù)已經(jīng)獲取的信息,可以有一定的概率去判斷消息的發(fā)起者另有其人。
Exposed:攻擊者已經(jīng)可以根據(jù)獲取到的信息,并有很大概率的正確性去判斷消息的真正發(fā)起者是誰。
Provably exposed:不具備匿名性,攻擊者可以判斷消息的真正發(fā)起者是誰。
若按照上述匿名度的劃分來看,一個系統(tǒng)若要稱為可以提供匿名服務(wù),則其至少要達(dá)到Possibleinnocence的匿名度。
2 用于P2P文件共享的匿名通信方案
P2P文件共享網(wǎng)絡(luò)通常都不能提供用戶匿名下載的功能,瓦相下載文件的兩個客戶端可以看到對方的地址。本文提出一種新的匿名通信方案,專門用于P2P文件共享網(wǎng)絡(luò),為其添加一個匿名層,提供可調(diào)節(jié)的匿名性。
2.1 匿名機制的實現(xiàn)
本文意在為P2P文件共享網(wǎng)絡(luò)提供一個匿名層,從而使其擁有一定的匿名性。它汲取Crowds匿名通信方案的豐要思想,同時兼顧效率和匿名性,為用戶提供靈活的匿名度選擇,滿足不同人對匿名性的不同需求。
眾所周知,通過P2P下載文件時,服務(wù)器會返回一個列表,其中包含該文件的發(fā)布者和其他下載者的地址。隨后,下載者會通過這個列表,聯(lián)系到其他的下載者,從而瓦相交換文件塊。這種方式大大的減輕了服務(wù)器的負(fù)擔(dān),而且越多的人下載,下載的速度越快。但與此同時,文件的下載者身份卻被暴露,從而泄露了下載者的隱私。
同Crowds系統(tǒng)一樣,本方案也采用概率轉(zhuǎn)發(fā)的方式提供匿名性。我們引入一種冗余節(jié)點,該節(jié)點不參與文件的下載,僅僅轉(zhuǎn)發(fā)其他下載者的請求‘5]。實際上,并不需要某些專門的設(shè)備作為冗余節(jié)點,P2P系統(tǒng)中的某些下載者,如果它并不參與本次文件的下載過程,那么它就可以作為冗余節(jié)點。用n表示參與一次匿名文件下載的結(jié)點數(shù),nk表示冗余節(jié)點的數(shù)量。
建立匿名通信煩的過程如下:下載者向服務(wù)器請求他要下載的文件的其他下載者列表,服務(wù)器接到請求后,并不是直接把該列表回復(fù)給下載者,而是將其發(fā)送給Blender,并向Blender請求一系列的冗余節(jié)點。Blender接到請求后,將會獲取一些冗余節(jié)點返回給服務(wù)器,服務(wù)器再將這些冗余節(jié)點連同原列表混合成一個新的列表發(fā)送給下載者。這樣當(dāng)下載者通過列表上的節(jié)點下載文件時,當(dāng)他向一個真實的節(jié)點請求文件塊時,該真實節(jié)點相應(yīng)的返回給他文件塊。當(dāng)他向冗余節(jié)點請求文件塊時,冗余節(jié)點只是簡單地轉(zhuǎn)發(fā)他的請求給其他的節(jié)點,因此當(dāng)一個節(jié)點接收到請求信息時,它并不能判斷文件的真實請求者是誰。圖3表示匿名的文件下載過程。
由于攻擊者并不能判斷某次通信請求是否是真實的請求者發(fā)起的,因此本文提出的方案具有的匿名度是Probable innocence。由此,可以看出,本方案已經(jīng)使用戶擁有了一定的匿名性。
2.2 可調(diào)節(jié)的匿名性
匿名度和性能是一對矛盾體,追求匿名性必然會帶來性能上的損失。有時,用戶希望系統(tǒng)能提供一個高的匿名性,但有時,用戶又可能會希望系統(tǒng)能提供一個好的性能,而對于匿名性的要求,則沒那么高。因此,本方案將提供一個在匿名性和性能之間可以調(diào)節(jié)的機制。
當(dāng)下載者向服務(wù)器請求列表時,他向服務(wù)器發(fā)送他期望的匿名度lk,服務(wù)器將lk連帶著文件下載者列表一同發(fā)送給Blender。Blender根據(jù)lk,得出轉(zhuǎn)發(fā)概率Pk,和nk個冗余節(jié)點。Blender將轉(zhuǎn)發(fā)概率pk,和nk個冗余節(jié)點返回給服務(wù)器,服務(wù)器將冗余節(jié)點列表及原列表重新生成一個新的列表以連同轉(zhuǎn)發(fā)概率pk返回給下載者。
匿名度為lk對應(yīng)的轉(zhuǎn)發(fā)概率為pk,冗余節(jié)點的數(shù)量為nk。當(dāng)下載者選擇較高的匿名度時,則本次匿名通信中的冗余節(jié)點的數(shù)量和轉(zhuǎn)發(fā)概率也越大,從而提供一個更好的匿名度。當(dāng)其選擇較低的匿名度時,則本次匿名通信中的冗余節(jié)點的數(shù)量和轉(zhuǎn)發(fā)概率就小,從而提供一個較低的匿名度和一個較高的性能。
3 匿名性分析
本文通過信息熵來衡量匿名度的大小。X作為概率分布函數(shù)的離散隨機輸入,則對于每一個發(fā)送者來說,它是路徑發(fā)起者的概率為:
從而可以得到如圖4所示的仿真結(jié)果。可以看出,匿名度隨著轉(zhuǎn)發(fā)概率的增加而變大,隨著攻擊者個數(shù)的增加而變小。而增加冗余節(jié)點的個數(shù),是一種有效的減少路徑中攻擊者的方式。但是也可以看出過高的轉(zhuǎn)發(fā)概率和大量的冗余節(jié)點雖然大大提高了匿名度,但是必然會影響系統(tǒng)的效率。因此,用戶可以根據(jù)具體的需求,選擇其所需要的匿名度。
4 結(jié)論
本文基于Crowds的基本思想,提出了一種用于P2P文件下載網(wǎng)絡(luò)的匿名通信方案。此方案不僅能提供匿名度為Probable innocence的匿名服務(wù),還可以調(diào)節(jié)匿名度,以滿足不同用戶對匿名性和性能的不同要求。仿真結(jié)果驗證了方案的匿名性,并展示了不同的轉(zhuǎn)發(fā)概率以及攻擊者數(shù)目對匿名性的影響。另外,本方案并不改變原有的P2P文件下載網(wǎng)絡(luò)的工作方式,只是在原有網(wǎng)絡(luò)的基礎(chǔ)上,增加了一個匿名層,因此方案實施的成本很低。