虎 勇,李鑌劍,陳紫煜,茍俊卿,陳瑞東
(1.官地水力發(fā)電廠,四川 西昌 615000;2.北京信息科技大學(xué) 自動(dòng)化學(xué)院,北京 100192;3.電子科技大學(xué) 網(wǎng)絡(luò)空間與安全研究院,四川 成都 611731)
隨著網(wǎng)絡(luò)的快速發(fā)展,人們?cè)絹碓阶⒅卦诨ヂ?lián)網(wǎng)上的個(gè)人隱私,一些具有嚴(yán)格隱私要求的應(yīng)用程序需求(如網(wǎng)頁瀏覽、即時(shí)消息傳遞和電子投票等),迅速增加了研究人員和從業(yè)人員對(duì)開發(fā)可靠隱私增強(qiáng)技術(shù) (例如匿名通信網(wǎng)絡(luò)) 的興趣。設(shè)計(jì)此類網(wǎng)絡(luò)的主要目的是通過在公開網(wǎng)絡(luò)上建立匿名通信來隱藏通信方(即消息的發(fā)送方或接收方)的真實(shí)身份。自1981年Chaum[1]提出不可追蹤?quán)]件問題和Mix解決方法,設(shè)計(jì)了匿名傳輸?shù)男赂拍睢?duì)匿名系統(tǒng)提供的匿名性進(jìn)行量化,從概念提出開始一直就是重要挑戰(zhàn),Chaum[2]提出利用匿名集大小來度量匿名性。Reiter和Rubin[3]從用戶角度單獨(dú)考慮匿名性,從絕對(duì)隱私到可證明暴露,提出6級(jí)匿名。Sarjantov[4]和Diaz[5]利用熵的方法來度量匿名性。關(guān)永等[6]利用攻擊方角度對(duì)匿名性進(jìn)行度量,提供了匿名性度量的新角度[7]。迄今為止,此類網(wǎng)絡(luò)所提供最重要的匿名屬性是消息發(fā)送方的匿名性,它們通過重路由機(jī)制利用多個(gè)中間節(jié)點(diǎn)來隱藏消息發(fā)送方的真實(shí)身份,但要實(shí)現(xiàn)完全匿名的交流很難[8]。針對(duì)匿名通信問題,提出了不同解決方案,這些方案可為用戶提供多少匿名性?為了評(píng)判匿名通信網(wǎng)絡(luò)給用戶帶來了多少安全性,有必要通過一些定量指標(biāo)來評(píng)測(cè)此類網(wǎng)絡(luò)所提供的匿名度,即希望可以通過一些指標(biāo)區(qū)分可靠的匿名通信網(wǎng)絡(luò)和不可靠的匿名通信網(wǎng)絡(luò)[9]。為評(píng)估重路由機(jī)制匿名通信網(wǎng)絡(luò)的匿名度,本文提出一種用于匿名通信網(wǎng)絡(luò)安全性分析的概率模型。
在建模過程之前,需要聲明潛在的假設(shè),以便能夠基于這些假設(shè)構(gòu)建模型。因?yàn)椴⒉幌M摱攘糠椒▋H局限于特定網(wǎng)絡(luò),其應(yīng)該適用于各類匿名通信網(wǎng)絡(luò),故假設(shè)時(shí)考慮更一般化的條件。而從攻擊方來評(píng)估匿名網(wǎng)絡(luò),必須同時(shí)考慮匿名通信網(wǎng)絡(luò)和攻擊者兩方面。
一個(gè)典型的匿名通信網(wǎng)絡(luò)由多個(gè)節(jié)點(diǎn)組成,這些節(jié)點(diǎn)之間彼此協(xié)作形成從源到目的地的隨機(jī)路徑,以便向用戶提供匿名屬性。在本文設(shè)置中,匿名通信網(wǎng)絡(luò)的主要任務(wù)是隱藏消息發(fā)送者的身份。這項(xiàng)研究處理的是“多跳”匿名通信網(wǎng)絡(luò),而不是“單跳” 網(wǎng)絡(luò)。從匿名的角度來看,單跳網(wǎng)絡(luò)只有一個(gè)中繼節(jié)點(diǎn),重路由路徑?jīng)]有不確定性,達(dá)不到匿名通信的需求。
為研究“多跳”網(wǎng)絡(luò)[10-12],假設(shè)有一組潛在發(fā)送者、一組中繼節(jié)點(diǎn)和一個(gè)特定的接受者,其中S代表發(fā)送者,I代表中繼節(jié)點(diǎn),R代表接受者。由于本文只對(duì)量化發(fā)送者的匿名感興趣,同時(shí)又不失一般性,假定接收方已被攻擊者所控制。在許多重要的應(yīng)用中,這是一個(gè)現(xiàn)實(shí)的假設(shè)[13]。例如,考慮諸如匿名電子郵件和網(wǎng)頁瀏覽等應(yīng)用程序,大多數(shù)訪問特殊網(wǎng)頁的人都希望對(duì)網(wǎng)頁服務(wù)器(即接收者)隱藏他們的身份(即IP地址)。在這種情況下,網(wǎng)絡(luò)服務(wù)器被假定為受到威脅[14]。
將匿名通信網(wǎng)絡(luò)建模為無向圖G=(V,E),其中V=S∪I∪R,是潛在發(fā)送者、中間節(jié)點(diǎn)和接收者的頂點(diǎn)集,E?V×V是這些頂點(diǎn)對(duì)的邊集,代表頂點(diǎn)之間的直接聯(lián)系[15]。本文更傾向通過鄰接矩陣來表示的相應(yīng)圖G(為方便起見,假設(shè)S∩I=φ)。假設(shè)有n個(gè)中間節(jié)點(diǎn)和m個(gè)潛在發(fā)送者,并且匿名通信網(wǎng)絡(luò)的中間節(jié)點(diǎn)被標(biāo)記為1,2,…,n,并且潛在發(fā)送者被標(biāo)記為n+1,n+2,…,n+m。I和S的集合定義如下:I={I1,I2,…,In},S={sn+1,sn+2,…,sn+m}。
圖1展示了一個(gè)無向圖,表示由5個(gè)中間節(jié)點(diǎn)、3個(gè)潛在發(fā)送者和1個(gè)接收機(jī)組成的匿名通信網(wǎng)絡(luò)。假設(shè)在任何2個(gè)頂點(diǎn)之間都有一條邊,為簡單起見,在圖中未示出邊緣。
圖1 匿名通信網(wǎng)絡(luò)示意圖Fig.1 Diagram of anonymous communication network
對(duì)其進(jìn)行概率分析,有必要描述匿名通信網(wǎng)絡(luò)如何根據(jù)某些概率分布隨機(jī)選擇重路由路徑的中間節(jié)點(diǎn)。由于匿名通信網(wǎng)絡(luò)在逐個(gè)節(jié)點(diǎn)的基礎(chǔ)上構(gòu)建重路由路徑,因此“選擇概率”是分配給它們相應(yīng)圖形的邊。因此,將圖G=(V,E)的鄰接矩陣P=(pij)稱為重路由矩陣。當(dāng)兩節(jié)點(diǎn)為同一節(jié)點(diǎn)時(shí),pij=0;當(dāng)兩節(jié)點(diǎn)不同且都為兩節(jié)點(diǎn)連線屬于邊集E時(shí),pij為邊集中選定該連線的概率;當(dāng)兩節(jié)點(diǎn)連線不屬于邊集E時(shí),pij=∞,即為:
(1)
任何匿名通信網(wǎng)絡(luò)的核心都是其重路由路徑選擇策略,只能根據(jù)特定的網(wǎng)絡(luò)路徑選擇策略來選擇特定的網(wǎng)絡(luò),即如果攻擊者可以識(shí)別傳輸過程中所選路徑,則通過此路徑進(jìn)行的所有通信都將暴露給攻擊者。同時(shí),任何路徑選擇策略都必須滿足一些約束條件。本文從匿名的角度來看問題,可以對(duì)策略施加許多約束,最關(guān)鍵的約束條件是“網(wǎng)絡(luò)拓?fù)洹薄奥窂酵負(fù)洹薄奥窂介L度”,通過過去對(duì)匿名通信網(wǎng)絡(luò)的研究可知,這些約束條件可以被識(shí)別和確定[16]。
網(wǎng)絡(luò)拓?fù)淠涿ㄐ啪W(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)與標(biāo)準(zhǔn)計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)有很大不同,對(duì)網(wǎng)絡(luò)匿名級(jí)別具有重要影響。對(duì)于匿名通信網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),需要各節(jié)點(diǎn)之間鏈接更密集,避免攻擊者輕易識(shí)別各節(jié)點(diǎn)通信狀態(tài)。
路徑拓?fù)渎窂降耐負(fù)浣Y(jié)構(gòu)可以反映路徑的復(fù)雜程度,最重要的是確定預(yù)定路徑是否有重復(fù)。將不經(jīng)過同一節(jié)點(diǎn)的路徑認(rèn)定為簡單路徑,即一條簡單路徑上的所有節(jié)點(diǎn)必須是不同的;將多次經(jīng)過同一節(jié)點(diǎn)的路徑認(rèn)定為自由路徑,即該路徑不止一次地遍歷某些節(jié)點(diǎn)。相比簡單路徑,訪問者更傾向于使用自由路徑的拓?fù)浞绞?,因其更難被攻擊者所識(shí)別,匿名性更高。
路徑長度路徑長度定義為路徑頂點(diǎn)序列中的頂點(diǎn)總數(shù)減去1,在未確定完整路徑時(shí),路徑長度可變。設(shè)L是一條均勻分布的可變路徑的長度,并假設(shè)M和m分別是L的上界和下界,其概率質(zhì)量函數(shù)為:
(2)
為了對(duì)匿名通信網(wǎng)絡(luò)進(jìn)行安全性分析,決定用潛在攻擊者的視角來分析匿名通信網(wǎng)絡(luò),并盡可能真實(shí)地描述攻擊者的能力。攻擊者的主要任務(wù)是預(yù)測(cè)重路由路徑,從而識(shí)別消息的真正發(fā)送者。因此,“匿名集”被定義為所有可能發(fā)送者的集合。潛在的攻擊者可以通過各種方式獲得大量有效信息來縮小該集合[17]。因此,希望擁有一個(gè)強(qiáng)大的匿名通信網(wǎng)絡(luò),這里“強(qiáng)大”是指攻擊者知道該網(wǎng)絡(luò)的路徑選擇策略,并且破壞了它的一個(gè)或多個(gè)中間節(jié)點(diǎn),卻不能精準(zhǔn)地確定它的實(shí)際重路由路徑。
設(shè)計(jì)的初衷是希望該網(wǎng)絡(luò)可以廣泛部署并使用,因此,假設(shè)攻擊者能夠利用現(xiàn)有的方法和工具推斷出路徑選擇策略(即網(wǎng)絡(luò)拓?fù)?、路徑拓?fù)浜吐窂介L度)。同時(shí),假設(shè)攻擊者將能夠控制部分中間節(jié)點(diǎn)和潛在發(fā)送者,并利用已破壞的中間節(jié)點(diǎn)和潛在發(fā)送者所捕獲的信息來揭示真正發(fā)送者身份。已知在通信網(wǎng)絡(luò)中,每個(gè)路由節(jié)點(diǎn)都知道它在該路徑上的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)。因此,如果某一被控節(jié)點(diǎn)是路徑的一部分,攻擊者至少可以識(shí)別該路徑上的3個(gè)節(jié)點(diǎn)。但此時(shí),攻擊者只能捕獲通信通道上的流量,卻無法更改這些信息,故該攻擊者模型只考慮被動(dòng)攻擊。如果在進(jìn)行某一信息傳輸時(shí)多次遍歷被破壞節(jié)點(diǎn),攻擊者可以利用節(jié)點(diǎn)的相對(duì)順序創(chuàng)建一個(gè)遍歷節(jié)點(diǎn)的排序列表,并實(shí)時(shí)更新該匿名通信網(wǎng)絡(luò)的初始信息。
攻擊者的最終目標(biāo)是利用所捕獲到的信息,重構(gòu)從發(fā)送方到接收方的消息重路由的實(shí)際路徑。例如,考慮圖2中的重路由路徑(6,5,3,R),由于接收方已經(jīng)被攻擊,攻擊者只知道路徑上的節(jié)點(diǎn)3。假設(shè)攻擊者已經(jīng)破壞了節(jié)點(diǎn)3,攻擊者可以根據(jù)節(jié)點(diǎn)3所得到的信息知道節(jié)點(diǎn)5也在該傳輸路徑上。另一個(gè)例子,考慮重路由路徑(7,1,2,3,1,4,R),假設(shè)攻擊者已經(jīng)破壞了節(jié)點(diǎn)1,他知道節(jié)點(diǎn)2、3、4和7也在該路徑上。根據(jù)消息到達(dá)和離開的時(shí)間,可以得到路徑上節(jié)點(diǎn)的正確順序,即7、1、2、3、1、4。
圖2 路徑拓?fù)銯ig.2 Path topology
到目前為止,已經(jīng)給出了該模型的基本假設(shè)。該模型由一個(gè)匿名通信網(wǎng)絡(luò)子模型和一個(gè)攻擊者子模型組成。對(duì)于該模型,將演示匿名通信網(wǎng)絡(luò)的概率分析及其匿名損失的量化過程。通過以下幾個(gè)步驟進(jìn)行評(píng)估:
第一步,定義匿名指標(biāo),來量化匿名通信網(wǎng)絡(luò)提供的發(fā)送者匿名級(jí)別。為了計(jì)算度量,需要計(jì)算潛在發(fā)送者的概率分布。
第二步,構(gòu)造一種尋徑樹。尋徑樹表示滿足匿名通信網(wǎng)絡(luò)路徑選擇策略約束的所有重路由路徑,它可以系統(tǒng)地生成所有感興趣的路徑。
第三步,用重路由概率參數(shù)化尋徑樹,并利用其計(jì)算潛在發(fā)送者的概率分布,再利用概率分布計(jì)算其他指標(biāo)。
設(shè)S為消息M的潛在發(fā)送者的離散隨機(jī)變量,對(duì)其進(jìn)行評(píng)估,主要定量匿名度量定義是潛在發(fā)送者為真正發(fā)送者的概率。首先,在沒有任何信息的情況下,考慮潛在發(fā)送者為離散均勻分布:
(3)
通過分析匿名網(wǎng)絡(luò)的行為,攻擊者可以得到更準(zhǔn)確的潛在發(fā)送者分布。這個(gè)分布將描述每個(gè)候選者成為真正的發(fā)送者的概率[18]:
p′(S=si)=p′i,
其中,
(4)
首先計(jì)算隨機(jī)變量S的初始熵:
(5)
攻擊者通過捕獲信息后得到新的分布:
(6)
為了表示初始分布和通過利用先驗(yàn)知識(shí)得到的新分布之間的區(qū)別,利用“相對(duì)熵”來量化。
(7)
對(duì)于該問題:
(8)
這種度量是一種描述偏差的度量,表明攻擊者的估計(jì)與事實(shí)的差距。一些研究已引入了這種度量方法[19]。本文的主要新穎之處在于建模方法的基本假設(shè)和度量標(biāo)準(zhǔn)的過程評(píng)估。
假設(shè)消息M從潛在的發(fā)送方發(fā)送到特定的接收方。為了識(shí)別消息真正的發(fā)送方,攻擊者嘗試重建從源到目的地的路徑,將概率地選擇潛在的路徑。攻擊者的成功主要取決于兩個(gè)因素:被攻擊者攻擊節(jié)點(diǎn)的數(shù)量和節(jié)點(diǎn)之間的鏈路信息的數(shù)量。假定基礎(chǔ)圖是完整的,攻擊者必須考慮所有可能的路徑。事實(shí)上,攻擊者需要解決兩個(gè)主要問題:表示一個(gè)匿名通信網(wǎng)絡(luò)的兩個(gè)指定節(jié)點(diǎn)之間有多少條路徑?如何系統(tǒng)地生成這些路徑?
攻擊者將猜測(cè)消息的潛在發(fā)送者并通過執(zhí)行窮舉搜索得到概率分布,再考慮其中滿足所有約束條件的路徑,然后確定潛在發(fā)送者的理想分布。如果要計(jì)算路徑的數(shù)量,將面臨兩個(gè)嚴(yán)重的障礙:① 路徑的數(shù)量可能會(huì)隨著圖的大小呈指數(shù)增長;② 生成所有路徑并非易事。本文通過使用一種類型的狀態(tài)空間樹來克服,將其稱為尋徑樹。
推導(dǎo)概率分布的思想是基于構(gòu)造狀態(tài)空間樹的變體,其節(jié)點(diǎn)反映了重路由路徑的節(jié)點(diǎn)所做的特定選擇,它可以系統(tǒng)地生成所有感興趣的路徑。因此沒有必要生成一個(gè)完整的尋徑樹,只要保證考慮節(jié)點(diǎn)的后續(xù)節(jié)點(diǎn)不可能存在完整路徑,便進(jìn)行“剪枝”,不再考慮其后續(xù)節(jié)點(diǎn)的情況以減小任務(wù)量。尋徑樹的根代表在開始搜索可能路徑之前被破壞的消息接收方,從根到葉的任何路徑都是候選路徑;樹中第一級(jí)節(jié)點(diǎn)代表路徑第二個(gè)中間節(jié)點(diǎn)的選擇(由于攻擊者是要揭露發(fā)送方的身份,從接收方反向溯源,故節(jié)點(diǎn)選擇為反向選擇)。將以寬度優(yōu)先搜索的方式構(gòu)建樹,如果當(dāng)前節(jié)點(diǎn)是有希望的,則將路徑的下一跳備選節(jié)點(diǎn)作為其子節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)被證明是沒有希望的,算法回溯到節(jié)點(diǎn)的父節(jié)點(diǎn),為它的父節(jié)點(diǎn)考慮下一個(gè)可能的選項(xiàng);如果沒有這樣的選項(xiàng),它將回溯到樹的上一級(jí),以此類推。最后,算法在獲得從源到目標(biāo)的完整路徑后,繼續(xù)搜索其他可能的路徑。預(yù)計(jì)路徑搜索方法將能夠根據(jù)網(wǎng)絡(luò)拓?fù)浜吐窂降男畔ⅲ藜糇銐蚨嗟穆窂讲檎覙涞姆种А?/p>
利用尋徑樹可以得到潛在發(fā)送者的概率分布。由于路徑是基于概率分布構(gòu)造的,所以攻擊者可以為任意給定的一對(duì)頂點(diǎn)之間的網(wǎng)絡(luò)鏈路分配選擇概率。也就是說,通信鏈路的選擇是基于這些概率的,這些概率可以根據(jù)一些觀察得到,例如利用一些指標(biāo),如中間節(jié)點(diǎn)的地理位置和網(wǎng)絡(luò)鏈路的帶寬來確定這些值。這些轉(zhuǎn)移概率可以簡單地表示為(m+n) × (m+n)轉(zhuǎn)移概率矩陣S:
(9)
式中,m和n分別為潛在發(fā)送者和中間節(jié)點(diǎn)的數(shù)量。對(duì)于所有i,j∈V,在這個(gè)矩陣的第i行和第j列中,元素0≤sij≤1表示節(jié)點(diǎn)i在重路由路徑上是節(jié)點(diǎn)j的“直接后繼”的概率。由于圖是完整的,因此在圖的任意一對(duì)頂點(diǎn)之間均存在一條邊。設(shè)隨機(jī)變量Yn是從目的地到源的“反向”路徑上的第n個(gè)節(jié)點(diǎn)。因此,sij可以表示為:
sij=P(Yn=j|Yn-1=i)。
(10)
在這樣的矩陣中,有些行和列是統(tǒng)一的。也就是說,矩陣S的元素滿足以下約束條件:
(11)
顯然,被破壞的頂點(diǎn)的存在改變了矩陣的某些元素。設(shè)C為被妥協(xié)的潛在發(fā)送者和中間節(jié)點(diǎn)的集合,有C?V,設(shè)j∈C為妥協(xié)頂點(diǎn)。如果j不在路徑上,矩陣S對(duì)應(yīng)的元素保持不變。如果j在路徑上,相應(yīng)的元素被更新,這意味著頂點(diǎn)j不再有不確定性了。尋徑樹用重路由概率參數(shù)化,概率值被分配到樹的邊緣。從根到葉的路徑是滿足約束的重路由路徑,且重路由路徑計(jì)算的所有概率值加起來為1。對(duì)于一般情況下的尋徑樹,設(shè)X和Y為兩個(gè)離散隨機(jī)變量,分別表征在尋徑樹的第1層和第2層中所做的選擇。根據(jù)定義,在樹的第1層,有:
(12)
設(shè)P(x,y)為這些隨機(jī)變量的聯(lián)合概率質(zhì)量函數(shù)。根據(jù)定義,在樹的第2層,Y(X)的條件概率質(zhì)量函數(shù)為:
且
(13)
將其推廣到整個(gè)樹,則在樹的最底層(葉節(jié)點(diǎn))可得:
(14)
假設(shè)路徑L=(si,nj,…,nr,ns,R),長度為L的路徑是從發(fā)送方si到接收方R的路徑。為了計(jì)算該算法溯源找到路徑L的概率,可以將條件概率P(A∩B)=P(B)P(A|B)推廣得到路徑選擇的概率:
P(Yl=R,Yl-1=ns,Yl-2=nr,…,Y1=nj,Y0=si)=
P(Yl-1=ns,Yl-2=nr,…,Y1=nj,Y0=si)×
P(Yl=R|Yl-1=ns,Yl-2=nr,…,Y1=nj,Y0=si)=
P(Yl-1=ns,Yl-2=nr,…,Y1=nj,Y0=si)×pRs=
P(Yl-2=nr,…,Y1=nj,Y0=si)×psr×pRs=
?
pji×…×psr×pRs。
(15)
樹的每個(gè)分支都被標(biāo)記為特定的選擇概率,這樣從根到任何葉的所有分支概率的乘積就等于選擇相應(yīng)路徑的概率。因此,可以為每條可能的路徑L分配一個(gè)選擇概率,其組成邊的概率的乘積為:
(16)
對(duì)于尋徑樹的定義,網(wǎng)絡(luò)的中間節(jié)點(diǎn)和潛在發(fā)送者分別是樹的內(nèi)部節(jié)點(diǎn)和葉節(jié)點(diǎn)。由于樹的葉子部分代表消息的潛在發(fā)送者,所以在使用尋徑樹指定新的分布時(shí),需要將潛在發(fā)送者分成兩組,屬于樹葉的發(fā)送者頂點(diǎn)和不屬于樹葉的發(fā)送者頂點(diǎn)(即被妥協(xié)的發(fā)送者)。假設(shè)i是一個(gè)潛在的發(fā)送端頂點(diǎn),它是樹的葉子,可能出現(xiàn)多次。為了得到該節(jié)點(diǎn)為真正發(fā)送者的相應(yīng)概率,需要考慮該節(jié)點(diǎn)從根到該葉的所有對(duì)應(yīng)路徑。設(shè)L(i)={L1(i),L2(i),…,Lt(i)}為發(fā)送端頂點(diǎn)i對(duì)應(yīng)的路徑集合,其中t為這樣路徑的個(gè)數(shù),故有:
(17)
最后,利用了全概率定理的一種形式。設(shè)L(T)=[L(1),L(2),…,L(k)]為發(fā)送者的“路徑向量”,其中T為尋徑樹。所有葉節(jié)點(diǎn)對(duì)應(yīng)的概率之和必須是1,因?yàn)樗鼈兏采w了選擇路徑的所有可能性:
(18)
式中,k為所有潛在發(fā)送者的數(shù)量。
至此,攻擊方可得到任意路徑被選擇的概率,并可以通過此概率計(jì)算潛在發(fā)送者的概率,定量分析該網(wǎng)絡(luò)的匿名性。
本文引入一個(gè)概率模型來測(cè)量匿名通信網(wǎng)絡(luò)提供的匿名性水平,其主要目的是提出一種用于評(píng)估匿名度量的建模方法,而不是對(duì)模型進(jìn)行精確的參數(shù)化。換句話說,主要關(guān)注的是發(fā)展一種定量分析匿名通信網(wǎng)絡(luò)匿名性的理論方法,而不是精確分析模型的評(píng)估。該模型可以簡單地進(jìn)行擴(kuò)展,用于量化匿名通信網(wǎng)絡(luò)的其他匿名屬性(如接收者匿名)。尋徑樹可以系統(tǒng)地搜索所有可能的重路由路徑,故肯定能找到感興趣的路徑,從而保證分析方法的正確性。