張信媛++陸天波



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