李龍海,付少鋒,蘇銳丹,車向泉
(西安電子科技大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710071)
隨著 Internet應(yīng)用范圍的不斷擴(kuò)大和信息量的爆炸性增長,對用戶隱私性的保護(hù)已經(jīng)成為一個(gè)至關(guān)重要的問題。在很多應(yīng)用中,隱私不僅意味著通信內(nèi)容的秘密性,而且意味著不能泄漏“誰和誰”、“在什么時(shí)間”、“通信量大小”等通信上下文信息。匿名通信技術(shù)主要研究如何隱藏消息發(fā)送者和接收者的身份以及通信雙方的對應(yīng)關(guān)系,即如何實(shí)現(xiàn)發(fā)送者匿名性、接收者匿名性和不可關(guān)聯(lián)性。該技術(shù)被廣泛應(yīng)用在匿名電子郵件、匿名Web瀏覽、電子商務(wù)、電子選舉等對隱私保護(hù)要求較高的Internet應(yīng)用系統(tǒng)中。
匿名通信技術(shù)的研究可以追溯到 1981年Chaum發(fā)表的開創(chuàng)性論文[1],其中,提出了混合網(wǎng)絡(luò)(Mix-net)的概念。目前已提出的大多數(shù)匿名通信系統(tǒng)都是基于 Mix-net思想設(shè)計(jì)的。一個(gè) Mix-net包含若干個(gè)Mix服務(wù)器。發(fā)送者的消息首先被多層加密形成類似于“洋蔥”的結(jié)構(gòu),然后經(jīng)過多個(gè)Mix服務(wù)器的轉(zhuǎn)發(fā)傳遞給接收者。每個(gè)Mix服務(wù)器對收到的報(bào)文進(jìn)行單層解密并轉(zhuǎn)發(fā)給下一個(gè)Mix服務(wù)器。接收者最終獲得消息的明文。根據(jù)轉(zhuǎn)發(fā)路徑構(gòu)成方式的不同,Mix-net可以分為固定路由和自由路由2種。自由路由式Mix-net中的發(fā)送者隨機(jī)選取若干個(gè)Mix服務(wù)器構(gòu)成轉(zhuǎn)發(fā)路徑,并將這些服務(wù)器的網(wǎng)絡(luò)地址依次封裝在洋蔥報(bào)文的各個(gè)層中,最內(nèi)層是接收者的地址和消息明文。發(fā)送者首先將報(bào)文發(fā)送給第一個(gè)Mix服務(wù)器。該服務(wù)器對收到的報(bào)文進(jìn)行單層解密之后即可獲得第二個(gè)Mix服務(wù)器的網(wǎng)絡(luò)地址,并繼續(xù)將解密后的報(bào)文發(fā)送給下一個(gè)服務(wù)器。依此類推,直至最終的接收者。該轉(zhuǎn)發(fā)過程類似于剝洋蔥的過程,因此也被稱為“洋蔥路由”系統(tǒng)。其中,每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)僅知道自己上一跳和下一跳的地址。只要轉(zhuǎn)發(fā)路徑中有一個(gè)以上的節(jié)點(diǎn)是誠實(shí)的(不泄露自己上一跳和下一跳的地址),攻擊者就無法將所截獲消息的發(fā)送者和接收者關(guān)聯(lián)到一起。
重放攻擊是一種針對洋蔥路由系統(tǒng)的十分有效的攻擊。攻擊者將截獲的洋蔥報(bào)文復(fù)制多次發(fā)送給目標(biāo)Mix服務(wù)器,則在該服務(wù)器的某個(gè)輸出鏈路上必然出現(xiàn)多個(gè)內(nèi)容重復(fù)的報(bào)文。攻擊者由此可追蹤該報(bào)文的流動(dòng)方向,直至接收者。早期的洋蔥路由系統(tǒng)一般采用檢查重復(fù)輸入并丟棄的方法對抗重放攻擊[2],其缺點(diǎn)是需要緩存大量的歷史數(shù)據(jù),并且每個(gè)輸入都要與緩存數(shù)據(jù)比對,造成報(bào)文處理時(shí)間的逐漸增長。另外一些系統(tǒng)采用了定期更換密鑰[3]、加入時(shí)間戳[4]等方法,但分別存在密鑰管理復(fù)雜、需要嚴(yán)格時(shí)間同步等問題。2004年Gomulkiewicz等提出了一種新型的基于通用重加密(URE, universal re-encryption)算法[5]的洋蔥路由方案URE-Onion[6]。URE-Onion服務(wù)器對收到的報(bào)文除了進(jìn)行部分解密,還要實(shí)施隨機(jī)化重加密。該方法能夠保證重復(fù)的報(bào)文輸入同一Mix服務(wù)器之后輸出也是不同的,使得攻擊者無法繼續(xù)追蹤下去,因此不再需要緩存歷史記錄。但不久Danezis等提出了一種針對 URE-Onion的繞路攻擊(detour attack)[7]表明該方案存在嚴(yán)重安全漏洞。隨后Klonowski等對URE-Onion進(jìn)行了改進(jìn)[8],利用為每個(gè)服務(wù)器分配雙重密鑰的方法阻止攻擊者隨意修改轉(zhuǎn)發(fā)路徑,使其無法實(shí)施繞路攻擊。然而,Borisov等在文獻(xiàn)[9, 10]中又給出了針對URE-Onion改進(jìn)方案的多種攻擊,并分別提出了基于上下文敏感加密(context sensitive encryption)和基于標(biāo)簽加密(tag-based encryption)的2種改進(jìn)方法。陸天波等也指出了基本的通用重加密算法對于選擇密文攻擊的脆弱性,并設(shè)計(jì)了基于ElGamal算法重加密特性的匿名系統(tǒng)WGRe[11]。
URE-Onion及其多種改進(jìn)方案雖然能夠抵御重放攻擊,但由于完全基于非對稱加密算法,效率都很低。如果匿名轉(zhuǎn)發(fā)路徑長度為λ,則每個(gè)服務(wù)器收到報(bào)文之后都要進(jìn)行 O(λ)次大素?cái)?shù)群上的指數(shù)運(yùn)算,并且長度為O(λ)的報(bào)文中只有1/λ被真正用于加密用戶消息,而其他的部分都被用來加密路由信息。針對上述缺點(diǎn),時(shí)金橋等[12]設(shè)計(jì)了一種混合結(jié)構(gòu)洋蔥報(bào)文機(jī)制 HS-Onion。該設(shè)計(jì)僅用 URE算法加密路由信息部分,而消息正文部分采用更高效的對稱加密算法加密,因此在傳送長消息時(shí)具有很大的優(yōu)勢。該方案的另一個(gè)創(chuàng)新點(diǎn)是采用了2種代數(shù)結(jié)構(gòu)不同的公鑰加密算法對路由信息部分進(jìn)行雙層加密,以實(shí)現(xiàn)對報(bào)文的完整性保護(hù)進(jìn)而防止攻擊者修改路由并實(shí)施繞路攻擊。
本文發(fā)現(xiàn)時(shí)金橋等提出的洋蔥路由方案[12]存在的安全漏洞,主要表現(xiàn)在報(bào)文結(jié)構(gòu)具有可展性(malleability),攻擊者可以改變洋蔥消息的路由或在其中嵌入標(biāo)簽以追蹤消息路由。由于沒有對惡意行為的調(diào)查機(jī)制,Mix服務(wù)器很容易被攻擊者用作解密預(yù)言機(jī)(decryption oracle)以獲取有利信息。本文展示了基于這些安全漏洞的 3種不同的攻擊方法,這些攻擊都能夠?qū)⑾⒌陌l(fā)送者和接收者以不可忽略的概率關(guān)聯(lián)到一起。最后本文給出了針對原方案的修正方法,并對修正后系統(tǒng)的安全性和效率進(jìn)行了討論。
ElGamal算法是一種具有同態(tài)特性的概率性公鑰加密算法。在已知接收者公鑰的條件下任何人都可以對ElGamal密文進(jìn)行重加密(re-encryption),重加密得到的密文與原密文對應(yīng)相同的明文。在不知道私鑰的情況下,攻擊者能夠?qū)⒅丶用芮昂蟮?個(gè)密文匹配到一起的難度等同于解 Diffie-Hellman Decision問題。
通用重加密算法(URE)[5]是對 ElGamal算法的改進(jìn)。在不知道接收者公鑰的情況下,URE密文也可以被重加密。該算法的詳細(xì)描述如下。
系統(tǒng)建立 構(gòu)造q階循環(huán)群G,滿足q為素?cái)?shù),且在群G上離散對數(shù)及Diffie-Hellman Decision問題難解。隨機(jī)選取G的一個(gè)生成元g。最后將G和g作為公共參數(shù)向所有用戶公布。
密鑰生成 Alice任取 x ∈Zq作為其私鑰,計(jì)算y = gx作為其公鑰。
加密 設(shè)明文為m,為構(gòu)造針對Alice的密文,Bob任取 k0,k1∈Zq,然后計(jì)算四元組作為輸出。
下文中用符號UREx(m)表示關(guān)于消息m的URE密文,解密密鑰為x。由于URE是概率性加密算法,所以UREx(m)實(shí)際表示對應(yīng)m的密文集合中的某一個(gè)成員。
可以用多個(gè)用戶的公鑰對同一消息 m進(jìn)行多層URE加密。令xi表示用戶Si的私鑰,yi為對應(yīng)的公鑰,則表示密文。
顯然,經(jīng)過S1部分解密后得到的密文可表示為
基于URE的洋蔥路由方案[6,8]主要利用了URE的2個(gè)特性:1)在不知道接收者公鑰的情況下也可以對URE密文進(jìn)行重加密;2)可利用多個(gè)接收者的公鑰對同一消息m進(jìn)行多層加密,每個(gè)接收者可以對密文進(jìn)行部分解密以去除相應(yīng)的加密層(類似于剝洋蔥)。這些方案的基本思想為:設(shè)接收者為Sλ+1,匿名消息發(fā)送者首先構(gòu)造一條到達(dá)目的主機(jī)的匿名路徑其中,為中間Mix服務(wù)器。發(fā)送者構(gòu)造如下格式的洋蔥報(bào)文:該報(bào)文由 λ+1個(gè)URE密文塊組成,前λ塊保存了路由信息,最后一塊保存了消息m。發(fā)送者將這λ+1個(gè)密文塊的順序隨機(jī)打亂,然后發(fā)送給 S1。匿名路徑上第個(gè)服務(wù)器Sj收到報(bào)文后進(jìn)行如下操作。
1) 部分解密。利用自己的私鑰xj將報(bào)文中每一個(gè)密文塊進(jìn)行部分解密,正常情況下必有一個(gè)密文塊解密結(jié)果為可識別的Mix服務(wù)器地址Sj+1,即Sj的下一跳路由地址。該密文塊在下一步被重加密之前被Sj替換成隨機(jī)數(shù)。
2) 重加密。Sj生成新的隨機(jī)因子并對報(bào)文中的每個(gè)密文塊進(jìn)行重加密,最后將重加密結(jié)果發(fā)送給Sj+1。
以為S1例,S1對輸入報(bào)文解密后獲得下一跳路由地址S2,再進(jìn)行隨機(jī)數(shù)替換和重加密操作獲得輸出報(bào)文 :該報(bào)文經(jīng)過的處理和轉(zhuǎn)發(fā)最后到達(dá)接收者Sλ+1時(shí)具有如下格式:{random, random, …, random, U RExλ+1(m)}。Sλ+1利用私鑰xλ+1將各個(gè)密文塊解密,只有最后一塊解密結(jié)果為消息m,其他為⊥。
在上述URE-Onion方案中,每個(gè)中間Mix服務(wù)器僅知道自己的上一跳和下一跳的地址,只要轉(zhuǎn)發(fā)路徑中有一個(gè)以上的節(jié)點(diǎn)是誠實(shí)的,就可以實(shí)現(xiàn)發(fā)送者和接收者之間的不可關(guān)聯(lián)性。由于 Sj每次都生成新的隨機(jī)因子對報(bào)文進(jìn)行URE重加密,之后再輸出,因此相同的報(bào)文輸入同一服務(wù)器之后的輸出也是不同的。這是該方案能抵御重放攻擊的關(guān)鍵所在。
2.3.1 符號與假設(shè)
由于URE-Onion方案存在效率和安全性問題,文獻(xiàn)[12]提出了基于混合結(jié)構(gòu)報(bào)文的改進(jìn)方案HS-Onion。其主要?jiǎng)?chuàng)新點(diǎn)是在報(bào)文格式設(shè)計(jì)上引入對稱加密機(jī)制,提高了報(bào)文處理效率,并且在不同密文塊之間引入鏈?zhǔn)郊用?,使得攻擊者無法隨意篡改密文塊,因此避免了針對原方案的繞路攻擊[7]?,F(xiàn)將該方案所定義的相關(guān)符號及攻擊者模型總結(jié)如下。
相關(guān)符號 HS-Onion系統(tǒng)由N個(gè)Mix服務(wù)器構(gòu)成,分別用符號S0, S1,…,SN-1表示。每臺服務(wù)器既充當(dāng)用戶,又為其他節(jié)點(diǎn)提供匿名轉(zhuǎn)發(fā)服務(wù)。任意服務(wù)器 Si生成 2 對密鑰—(yi, xi)和(yi′,xi′),并發(fā)布公鑰部分。其中, yi= gxi為URE公鑰, yi′為另一種具有CCA安全性的非對稱加密算法E的公鑰。Ex′(m )表示利用該非對稱加密算法對消息 m加密所生成的密文,解密密鑰為x′。H表示一個(gè)偽隨機(jī)數(shù)生成器,以輸入?yún)?shù)r為種子生成偽隨機(jī)數(shù)H(r)。ek(m)表示利用對稱加密算法對 m加密所生成的密文,解密密鑰為k。tag和tag′為2個(gè)約定好的標(biāo)記字符串,如果Mix服務(wù)器對某個(gè)密文塊的解密結(jié)果以tag或tag′作為前綴,則表明該密文塊解密成功。
攻擊者模型 HS-Onion方案假設(shè)攻擊者能夠監(jiān)聽所有網(wǎng)絡(luò)鏈路并且能夠控制部分Mix服務(wù)器,即采用了全局攻擊者模型。
2.3.2 HS-Onion機(jī)制描述
設(shè)匿名消息發(fā)送者為S0,接收者為Sλ+1。發(fā)送者從Mix服務(wù)器集合中任選λ個(gè)構(gòu)成匿名轉(zhuǎn)發(fā)路徑中的節(jié)點(diǎn),不妨設(shè)這些節(jié)點(diǎn)為。
洋蔥報(bào)文結(jié)構(gòu) 為匿名發(fā)送消息 m,S0構(gòu)造一個(gè)包含λ+3個(gè)密文塊的洋蔥報(bào)文P。為方便表示,定義函數(shù)其中,為S0選取的長度合適的隨機(jī)數(shù)。當(dāng)s=t時(shí),定義。報(bào)文P的具體格式如下:
該報(bào)文中前λ塊用于加密路由信息,第λ+1塊包含了對稱加密密鑰k,第λ+3塊包含了用密鑰k加密的消息m。第λ+2塊的作用見下面“路由協(xié)議”的5)。
路由協(xié)議 S0將上述報(bào)文的前λ+1塊的順序打亂,然后發(fā)送給 S1。匿名路徑上第個(gè)服務(wù)器Sj收到報(bào)文后進(jìn)行如下操作。
1) 利用私鑰xj對前λ+2塊密文進(jìn)行部分解密,正常情況下會(huì)從其中的一個(gè)密文塊中得到稱該塊為屬于服務(wù)器Sj的密文塊Bj。
2) 利用私鑰 x ′j解密獲得下一跳路由地址Sj+1及隨機(jī)數(shù)Rj。
3) 用Rj作為解密密鑰對除Bj之外的前λ+2塊密文進(jìn)行部分解密。
4) 隨機(jī)生成種子rj,計(jì)算偽隨機(jī)串H(rj)并與第λ+ 3 塊進(jìn)行異或,因此,最后一個(gè)密文塊等于
6) 將前λ+2塊密文進(jìn)行重加密。
7) 將前λ+1個(gè)密文塊的順序隨機(jī)打亂,最后將報(bào)文發(fā)送給下一跳Mix服務(wù)器Sj+1。
接收者的處理 Sλ+1收到報(bào)文之后用私鑰xλ+1對前λ+1塊密文進(jìn)行解密,正常情況下會(huì)從其中的一個(gè)塊中得到,從其他塊中得到 λ個(gè)隨機(jī)種子用x′j解密Ex′λ+1( k )獲得對稱密鑰k。利用k及很容易對最后一個(gè)密文塊進(jìn)行解密獲得消息m。
本節(jié)將首先描述HS-Onion方案的2個(gè)主要安全漏洞,然后展示基于這些漏洞的4種攻擊方法。其中,解密預(yù)言機(jī)攻擊用作其他攻擊的基本手段,而另外3種攻擊的目標(biāo)是破壞HS-Onion的基本安全屬性——通信雙方的不可關(guān)聯(lián)性,即以不可忽略的概率將所截獲報(bào)文的發(fā)送者和接收者匹配到一起。
下面所展示的攻擊主要利用了 HS-Onion方案的2個(gè)安全性漏洞。
1) 報(bào)文中包含路由信息的URE密文塊具有可展性。攻擊者在不知道明文m和私鑰x的情況下,可以利用生成關(guān)于消息m′的有效密文,即令實(shí)際上,2.3.2節(jié)HS-Onion路由協(xié)議的5)也利用了該特性。同理,攻擊者還可以由生成密文UREx(Rm)=,其中,R為攻擊者者選定的值。攻擊者可以利用該特性在報(bào)文中嵌入標(biāo)簽以追蹤報(bào)文的路由。
2) HS-Onion的Mix服務(wù)器對輸入報(bào)文進(jìn)行解密之前沒有對其效性做任何驗(yàn)證,并且解密結(jié)束后發(fā)現(xiàn)非法報(bào)文也沒有相應(yīng)的反向追蹤機(jī)制,因此,誠實(shí)服務(wù)器很容易被攻擊者用作解密預(yù)言機(jī)以獲取有利信息。
假設(shè)惡意服務(wù)器 Sa截獲到的報(bào)文中含有密文URExb(m′),則Sa可以通過如下攻擊方法把誠實(shí)服務(wù)器Sb用作解密預(yù)言機(jī),將解密獲得m′。
Step1 Sa任取隨機(jī)數(shù)R′,并用作為公鑰對 U RExb(m′)進(jìn)行加密,即將其轉(zhuǎn)化為密文,其中,xa為Sa的私鑰。
Step2 Sa任取隨機(jī)數(shù)并構(gòu)造包含 λ+3個(gè)塊的報(bào)文,最后,Sa將該報(bào)文發(fā)送給Sb。
Step3 根據(jù)HS-Onion路由協(xié)議,Sb接收到該報(bào)文之后首先用私鑰xb對其進(jìn)行解密,則必然從第一塊中得到,再用 xb′解密后得到下一跳路由地址Sa和隨機(jī)數(shù)R′。之后Sb按照2.3.2節(jié)協(xié)議規(guī)定步驟對該報(bào)文進(jìn)行處理,并將處理后的報(bào)文重新發(fā)回給Sa。當(dāng)然,為了避免Sb的懷疑也可以通過修改報(bào)文下一跳地址令Sb將報(bào)文發(fā)往Sa的同謀者。
Step4 上述報(bào)文回到服務(wù)器Sa時(shí)具有如下格式:(前λ+1個(gè)密文塊的順序可能是被打亂的)。Sa利用私鑰 xa對前 λ+1塊密文進(jìn)行解密可得到即便這些解密結(jié)果的順序是隨機(jī)的,Sa也能從中識別出m′,因?yàn)槎?/p>
是Sa已知的值。
3.3.1 前提條件
實(shí)施“數(shù)據(jù)指紋追蹤攻擊”要求攻擊者能夠監(jiān)聽系統(tǒng)的所有鏈路,并且控制了匿名轉(zhuǎn)發(fā)路徑中的最后一個(gè)節(jié)點(diǎn)。HS-Onion定義的全局攻擊者模型完全可以滿足這些條件。
另外,對于基于 Internet的匿名通信系統(tǒng),要求攻擊者能監(jiān)聽系統(tǒng)所有鏈路是很難滿足的,因此,一般采用更實(shí)際的局部攻擊者模型,即假定攻擊者能夠控制系統(tǒng)的部分服務(wù)器,并且只能夠監(jiān)聽惡意服務(wù)器自己的輸入和輸出鏈路。如果采用局部攻擊者模型,“數(shù)據(jù)指紋追蹤攻擊”則要求攻擊者能夠控制匿名轉(zhuǎn)發(fā)路徑中的第一個(gè)和最后一個(gè)節(jié)點(diǎn)。
3.3.2 攻擊過程
該攻擊的基本思想是攻擊者記錄每個(gè)發(fā)送者輸出報(bào)文的數(shù)據(jù)指紋(因?yàn)楣粽呖梢员O(jiān)聽網(wǎng)絡(luò)的所有鏈路),然后由匿名轉(zhuǎn)發(fā)路徑中的最后一個(gè)節(jié)點(diǎn)利用協(xié)議漏洞提取每個(gè)轉(zhuǎn)發(fā)報(bào)文的指紋,如果發(fā)現(xiàn)與此前記錄的某個(gè)指紋相等,那么就能將發(fā)送者和接收者匹配到一起。
設(shè)發(fā)送者為S0,接收者為Sλ+1,匿名轉(zhuǎn)發(fā)路徑由節(jié)點(diǎn)為構(gòu)成且Sλ為惡意服務(wù)器。S0構(gòu)造關(guān)于消息m的報(bào)文P,其格式如式(1)所示,然后發(fā)送給S1。攻擊者利用如下的攻擊過程將發(fā)送者S0、接收者Sλ+1和報(bào)文P關(guān)聯(lián)到一起。
Step1 攻擊者計(jì)算報(bào)文 P的最后一個(gè)密文塊ek(m)的數(shù)據(jù)指紋,即散列值 SHA1(ek(m)),并記錄二元組(S0, SHA1(ek(m)))。
上述記錄報(bào)文指紋的工作也可由惡意節(jié)點(diǎn) S1完成。值得注意的是,S1此時(shí)無法確定自己是否為第一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),因?yàn)槠淝膀?qū)S0既可能是源節(jié)點(diǎn)也可能是中間轉(zhuǎn)發(fā)節(jié)點(diǎn)。直到攻擊完成時(shí),尾節(jié)點(diǎn)Sλ獲得路徑相關(guān)信息才能驗(yàn)證S1是否為首節(jié)點(diǎn)。
Step2 攻擊者控制的惡意服務(wù)器Sλ每接收到一個(gè)報(bào)文P′,首先按照原協(xié)議規(guī)定對其解密獲得下一跳服務(wù)器地址Sλ+1,然后判斷自己是否為匿名路徑的最后一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),具體采取的方法是將Sλ+1用作解密預(yù)言機(jī)將報(bào)文中第λ+2塊密文進(jìn)行解密。如果解密結(jié)果為1,則證明自己為路徑尾節(jié)點(diǎn)。
下面解釋這樣做的原因。根據(jù) HS-Onion路由協(xié)議,如果Sλ是關(guān)于報(bào)文P′的最后一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),則P′經(jīng)過Sλ處理之后必然具有如下形式:
因此,如果第λ+2塊密文URExλ+1(1)解密為1,則Sλ必為最后一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)。
Step3 如果發(fā)現(xiàn)自己是最后一個(gè)節(jié)點(diǎn),則Sλ利用Sλ+1的解密預(yù)言機(jī)服務(wù)將式(2)所示報(bào)文的前λ+1個(gè)密文解密,獲得由隨機(jī)種子r1, r2,…,rλ和密文很容易計(jì)算出ek(m)及指紋SHA1(ek(m))。
Step4 Sλ從Step1中記錄的二元組集合中找到(S0, SHA1(ek(m)))就可以將報(bào)文P、P′以及發(fā)送者S0、接收者1λS+關(guān)聯(lián)到一起。λS在Step3中得到了λ個(gè)tag′的事實(shí)也說明S0與λS之間的路徑長度為λ,并且S1確實(shí)為第一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)。
3.3.3 分析
設(shè)構(gòu)成系統(tǒng)的N個(gè)Mix服務(wù)器中被攻擊者控制的惡意服務(wù)器所占百分比為δ,并且構(gòu)成轉(zhuǎn)發(fā)路徑的節(jié)點(diǎn)是發(fā)送者從全體服務(wù)器集合中隨機(jī)選取的,那么在全局攻擊者模型下,上述攻擊能夠成功匹配發(fā)送者和接收者的概率為δ。在局部攻擊者模型下,該攻擊要求轉(zhuǎn)發(fā)路徑的首節(jié)點(diǎn)和尾節(jié)點(diǎn)都是惡意的,因此,攻擊成功的概率為2δ。
3.4.1 前提條件
實(shí)施“標(biāo)簽追蹤攻擊”要求攻擊者能夠控制匿名轉(zhuǎn)發(fā)路徑的第一個(gè)節(jié)點(diǎn)和最后一個(gè)節(jié)點(diǎn)。該攻擊在全局攻擊者模型和局部攻擊者模型下都適用。
3.4.2 攻擊過程
標(biāo)簽追蹤攻擊的基本思想是由處于匿名轉(zhuǎn)發(fā)路徑上游的惡意節(jié)點(diǎn)Sa利用URE算法的可展性在報(bào)文中嵌入“標(biāo)簽”。處于下游的另一惡意節(jié)點(diǎn) Sb如果在收到的報(bào)文中發(fā)現(xiàn)了相同的標(biāo)簽則可以判斷自己與Sa處于同一轉(zhuǎn)發(fā)路徑。如果Sa、Sb恰為該路徑的首尾節(jié)點(diǎn),則該攻擊成功地將發(fā)送者和接收者匹配到一起。
設(shè)發(fā)送者為S0,接收者為1λS+,匿名轉(zhuǎn)發(fā)路徑由S1, S2,…,λS構(gòu)成,且S1、λS為惡意服務(wù)器。S0將消息m包裝成洋蔥報(bào)文P,然后發(fā)送給S1,P的格式如式(1)所示?;谏鲜黾僭O(shè),標(biāo)簽追蹤攻擊的具體攻擊過程如下。
Step1 S1接收到報(bào)文 P后,首先按原協(xié)議規(guī)定對其進(jìn)行解密和再加密,獲得下一跳路由地址S2及如下格式的報(bào)文P′:
其中,前λ+1塊密文的順序是隨機(jī)的。S1從P′的前λ+ 1 個(gè)密文中除外)任取一塊,不妨設(shè)該塊為并在其中嵌入能唯一標(biāo)識S1的標(biāo)簽θ1∈G,即將其替換為。之后,S1將加入標(biāo)簽的報(bào)文發(fā)送給S2。
Step2 惡意服務(wù)器Sλ每接收到一個(gè)報(bào)文P′,首先用私鑰xλ進(jìn)行解密,如果在前λ+1個(gè)密文中發(fā)現(xiàn)某個(gè)解密結(jié)果具有形式則可以認(rèn)定自己與上游的S1處于同一轉(zhuǎn)發(fā)路徑。
在上述攻擊中,雖然S1、Sλ還需借助其他手段確定自己是否為首尾節(jié)點(diǎn),但處于S1與Sλ之間的其他Mix服務(wù)器的路由隱藏作用被完全抵消,這為關(guān)聯(lián)發(fā)送者和接收者提供了幫助。
3.4.3 分析
在Step1中,S1從報(bào)文P′中任取了一個(gè)密文塊并猜測該塊是關(guān)于某個(gè)下游惡意節(jié)點(diǎn)的路由信息塊。如果猜測失敗,則該報(bào)文到達(dá)某個(gè)誠實(shí)節(jié)點(diǎn)時(shí)會(huì)被解釋為非法報(bào)文而丟棄,但 HS-Onion并沒有反向追蹤機(jī)制,S1不用擔(dān)心受到懲罰。因此,為了提高成功率,S1可以將P′復(fù)制λ份,然后在每一份中任取一個(gè)不同的密文塊嵌入標(biāo)簽,并將這些復(fù)制報(bào)文都發(fā)送給下一個(gè)服務(wù)器。處于下游的惡意節(jié)點(diǎn)識別出標(biāo)簽后,還可以繼續(xù)嵌入自己的標(biāo)簽,以方便更下游的惡意節(jié)點(diǎn)識別。以此類推,報(bào)文P轉(zhuǎn)發(fā)路徑上的多個(gè)惡意節(jié)點(diǎn)可以利用標(biāo)簽追蹤攻擊確定它們在路徑中的相對位置和上下游關(guān)系。下面的定理給出了系統(tǒng)中所有節(jié)點(diǎn)協(xié)作,并利用這種更復(fù)雜的標(biāo)簽追蹤攻擊能準(zhǔn)確關(guān)聯(lián)特定消息發(fā)送者和接收者的概率。
定理1 假設(shè)Sa、Sb利用標(biāo)簽追蹤攻擊確定它們分別為同一路徑中最上游和最下游的惡意節(jié)點(diǎn),系統(tǒng)中惡意節(jié)點(diǎn)所占百分比為δ,轉(zhuǎn)發(fā)路徑采用固定長度λ。如果直接猜測Sa的前驅(qū)和Sb的后繼分別為發(fā)送者和接收者,則猜測正確的概率為
證明 已知整個(gè)轉(zhuǎn)發(fā)路徑中存在一個(gè)惡意節(jié)點(diǎn) Sa,首先嵌入標(biāo)簽,而 Sb是路徑中最后一個(gè)追蹤到標(biāo)簽的惡意節(jié)點(diǎn)。該事件發(fā)生的概率等同于長為λ的路徑(不包括發(fā)送者和接收者)中包含2個(gè)及2個(gè)以上惡意節(jié)點(diǎn)的概率,即,其中,(1 - δ )λ和 λ δ(1 - δ )λ-1分別為“不包含任何惡意節(jié)點(diǎn)”和“僅包含一個(gè)惡意節(jié)點(diǎn)”的概率。如果直接猜測 Sa的前驅(qū)節(jié)點(diǎn)和 Sb的后繼節(jié)點(diǎn)分別為發(fā)送者和接收者,則存在一定的誤差,因?yàn)?Sa和 Sb未必是轉(zhuǎn)發(fā)路徑的第一個(gè)節(jié)點(diǎn)和最后一個(gè)節(jié)點(diǎn)。
轉(zhuǎn)發(fā)路徑首、尾節(jié)點(diǎn)都是惡意節(jié)點(diǎn)的概率為δ2,因此在存在2個(gè)惡意節(jié)點(diǎn)并利用標(biāo)簽追蹤攻擊確定它們分別為最上游和最下游的惡意節(jié)點(diǎn)的條件下,它們的前驅(qū)節(jié)點(diǎn)和后繼節(jié)點(diǎn)分別為發(fā)送者和接收者的概率為
3.5.1 前提條件
猜測接收者攻擊僅要求攻擊者能夠控制匿名轉(zhuǎn)發(fā)路徑的第一個(gè)節(jié)點(diǎn),該攻擊同時(shí)適用于全局攻擊者模型和局部攻擊者模型。
3.5.2 攻擊過程
該攻擊的基本思想是攻擊者隨機(jī)猜測報(bào)文接收者的地址,然后利用誠實(shí)Mix服務(wù)器的無意識轉(zhuǎn)發(fā)服務(wù)和解密預(yù)言機(jī)服務(wù)驗(yàn)證猜測是否正確。如此反復(fù)猜測直到找出真正的接收者。
設(shè)發(fā)送者為S0,接收者為Sλ+1,轉(zhuǎn)發(fā)路徑由S1,S2, …,Sλ構(gòu)成,且S1為惡意服務(wù)器。S0發(fā)送報(bào)文P到S1,P的格式如式(1)所示。猜測接收者攻擊的具體攻擊過程如下。
Step1 S1接收到報(bào)文 P后首先對其進(jìn)行解密和再加密,獲得下一跳路由地址S2及如式(3)所示的報(bào)文P′。S1將P′保存以備后面重復(fù)實(shí)施猜測攻擊。
注意此時(shí)S1并不能確定自己為第一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)。Step2 S1做2個(gè)猜測:1)P的接收者為St;2)從P′的前λ+1個(gè)密文中除外)任取一塊,不妨設(shè)為并假定該塊是關(guān)于St的密文。
基于以上猜測 S1對P′做如下修改:1)利用 URE算法的可展性,根據(jù) Bj構(gòu)造密文 U REK(2,j)(tag||,并用該密文替換Bj;2)將第λ+2個(gè)密文塊 U REK(2,λ+1)(1)替換為)將UREK(2,λ+1)( tag′||r1)替換為
最后,S1將修改過的P′發(fā)送給S2。
Step3 經(jīng)過一段時(shí)間,如果 S1從某個(gè)服務(wù)器Sλ+1接收到報(bào)文P′,并且利用私鑰 x1將其解密后具有形式:,則證明Sλ+1是接收者。將P′解密獲得λ+1個(gè)tag′的事實(shí)也證明S1是第一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),并且其前驅(qū)S0是發(fā)送者。至此,HS-Onion方案的不可關(guān)聯(lián)性被完全破壞。
如果 S1長時(shí)間內(nèi)沒有收到任何符合上述條件的報(bào)文,則說明Step2的2個(gè)猜測中至少有一個(gè)是錯(cuò)的。S1重新猜測接收者地址和相應(yīng)密文塊 Bj并重復(fù)上述攻擊直至找到接收者。
實(shí)際上,上述攻擊經(jīng)過修改后可以用于確定構(gòu)成匿名路徑的任意節(jié)點(diǎn)。
3.5.3 分析
首先分析3.5.2節(jié)攻擊的原理。在Step2中如果S1猜測正確,即那么Step2中經(jīng)過修改的P′必然具有如下形式:
這相當(dāng)于將匿名路徑延長了一個(gè)節(jié)點(diǎn),S1作為終點(diǎn),Sλ+1被當(dāng)作最后一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)。由于報(bào)文中不含路徑長度信息,因此這些修改不會(huì)被其他轉(zhuǎn)發(fā)節(jié)點(diǎn)發(fā)現(xiàn)。
如果 S1猜測錯(cuò)誤,則P′在轉(zhuǎn)發(fā)過程中會(huì)被某個(gè)誠實(shí)節(jié)點(diǎn)視為非法報(bào)文而丟棄,但由于沒有反向追蹤機(jī)制,S1不用擔(dān)心受到懲罰。
下面分析“猜測接收者攻擊”的代價(jià)。假設(shè)系統(tǒng)包含N個(gè)Mix服務(wù)器,轉(zhuǎn)發(fā)路徑采用固定長度λ,則S1最多需要進(jìn)行 λ(N - 2 )次猜測驗(yàn)證過程。在N不算太大時(shí),該攻擊是非常有效的。為了縮短攻擊時(shí)間,S1還可以將多個(gè)猜測驗(yàn)證過程并行進(jìn)行,但需要在P′中針對不同的猜測加入不同的標(biāo)記,具體過程就不再詳細(xì)敘述了。
為了避免所提的3種攻擊,在此提出對HS-Onion方案的兩點(diǎn)修正措施。在原協(xié)議框架下,很難完全消除 URE算法的可展性,因?yàn)樵撎匦允菆?bào)文能夠被隨機(jī)化重加密和中間轉(zhuǎn)發(fā)節(jié)點(diǎn)能夠?qū)⒆约旱膶ΨQ密鑰ri添加到報(bào)文的關(guān)鍵。因此,這些修正的主要目的是提高攻擊者隨意篡改報(bào)文的代價(jià),盡量避免關(guān)鍵節(jié)點(diǎn)為攻擊者提供解密預(yù)言機(jī)服務(wù)器。
修正 1 限制 Mix服務(wù)器只提供匿名轉(zhuǎn)發(fā)服務(wù),本身不作為通信用戶。類似于被廣泛使用的洋蔥路由系統(tǒng)Tor[13],修正后HS-Onion由匿名路由核心網(wǎng)絡(luò)和外圍用戶群構(gòu)成。N個(gè)Mix服務(wù)器構(gòu)成核心網(wǎng)絡(luò)。發(fā)送者和接收者都屬于外圍用戶群,它們利用核心網(wǎng)能夠隱藏路由的轉(zhuǎn)發(fā)服務(wù)來實(shí)現(xiàn)匿名通信。在全局攻擊者模型下,匿名集合由同一時(shí)刻接入核心網(wǎng)的所有用戶構(gòu)成。
修正 2 增加對惡意節(jié)點(diǎn)的反向追蹤機(jī)制。誠實(shí)Mix服務(wù)器在發(fā)現(xiàn)某個(gè)報(bào)文非法之后可以啟動(dòng)反向追蹤機(jī)制,沿匿名路徑回溯查找制造非法報(bào)文的源頭。在調(diào)查過程中,從發(fā)現(xiàn)非法報(bào)文的節(jié)點(diǎn)Sj開始,沿路徑逆向依次要求其前驅(qū)節(jié)點(diǎn)Sj-1, Sj-2,…提交證據(jù)證明自己正確處理了被追蹤報(bào)文,直至找到惡意節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)的證明過程不能破壞其他報(bào)文的匿名性。目前已知的幾種URE洋蔥路由方案[6,8~10]都采用了基于零知識證明技術(shù)的反向追蹤機(jī)制,使得Mix服務(wù)器可以在不公開密鑰xi的條件下證明自己合法地處理了報(bào)文。由于HS-Onion采用了2種代數(shù)結(jié)構(gòu)不同的公鑰算法,所以直接采用該方法較為困難。在此筆者設(shè)計(jì)了公開部分解密密鑰和零知識證明相結(jié)合的證明方法。
證明 修正協(xié)議要求Mix服務(wù)器為每個(gè)輸出報(bào)文增加數(shù)字簽名之后再轉(zhuǎn)發(fā)給下一個(gè)服務(wù)器,這樣可以防止惡意節(jié)點(diǎn)對自己的攻擊行為進(jìn)行抵賴。設(shè)服務(wù)器 Sj從前驅(qū)節(jié)點(diǎn) Sj-1接收到的報(bào)文,經(jīng)過解密和再加密處理后轉(zhuǎn)發(fā)給下一級的報(bào)文為用符號ZK{x∶A(x)}表示關(guān)于秘密x的零知識證明,A(x)是一個(gè)關(guān)于x的斷言,該證明能夠在不暴露x的條件下證明斷言A(x)取真。下文的證明中x在A(x)中都以離散指數(shù)形式存在,構(gòu)造該類證明主要用到基于離散對數(shù)的零知識證明技術(shù),具體構(gòu)造方法可以參考文獻(xiàn)[14]。
Sj證明自己正確處理了報(bào)文Pj-1的具體過程如下。
1) Sj公布如下內(nèi)容:私鑰jx′,下一跳地址Sj+1,Rj,rj,Pj-1中屬于 Sj的密文塊 Bu,j-1,Pj中屬于 Sj的密文塊 Bv,j以及由 Pj-1生成 Pj時(shí)所使用的所有URE再加密隨機(jī)參數(shù)。
2) 為證明 x ′j、Sj+1和 Rj的合法性,Sj公布
4) 為證明 Bv,j和 rj的合法性,Sj公布密文并證明Bλ′+2,j經(jīng)過URE再加密可以生成Bλ+2,j,且密文經(jīng)過再加密可以生成Bv,j。
5) 針對Bλ+3,j的合法性,Sj需要證明成立。
在證明過程中,Sj只公開了私鑰 x′j而沒有公開 xj,因此并不會(huì)對Sj過去轉(zhuǎn)發(fā)報(bào)文的匿名性造成影響。
4.2.1 安全性
下面具體分析修正措施對本文所提3種攻擊的防范作用。
1) 關(guān)于數(shù)據(jù)指紋追蹤攻擊。經(jīng)過修正1之后,接收者Sλ+1不再提供匿名轉(zhuǎn)發(fā)服務(wù),因此在數(shù)據(jù)指紋追蹤攻擊中惡意節(jié)點(diǎn)Sλ無法利用Sλ+1的解密預(yù)言機(jī)服務(wù)獲得ek(m)及其數(shù)據(jù)指紋。但僅有修正1是不夠的,攻擊者可以采用由轉(zhuǎn)發(fā)路徑首尾節(jié)點(diǎn) S1和Sλ合謀實(shí)施的指紋追蹤方法:作為第一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的惡意服務(wù)器S1從報(bào)文P的前λ+1個(gè)密文中任取一個(gè)并猜測它是屬于Sλ的密文S1由構(gòu)造,并將第λ+2塊密文替換成。如果S1猜測正確,則在該報(bào)文到達(dá)惡意節(jié)點(diǎn)Sλ時(shí),Sλ仍然可以從中獲得ek(m),從而將S1和Sλ關(guān)聯(lián)到一起,S1的前驅(qū)和Sλ的后繼作為發(fā)送者和接收者也被關(guān)聯(lián)到一起。和改進(jìn)之前比,指紋追蹤攻擊必須依賴于隨機(jī)猜測。如果猜測錯(cuò)誤,則攻擊者將被反向調(diào)查機(jī)制捕獲。
設(shè)系統(tǒng)中惡意節(jié)點(diǎn)所占百分比為δ,轉(zhuǎn)發(fā)路徑采用固定長度λ,下面的定理描述了在局部攻擊者模型下修正方案抵抗指紋追蹤攻擊的能力。
定理 2 修正方案中攻擊者利用數(shù)據(jù)指紋追蹤攻擊能成功關(guān)聯(lián)發(fā)送者和接收者的概率為δ2/λ,而攻擊者被捕獲的概率為1-δ。
證明 基于隨機(jī)猜測的指紋追蹤攻擊能夠成功的條件是:① 路徑首尾節(jié)點(diǎn)S1和Sλ都是惡意節(jié)點(diǎn);② S1能夠猜中對應(yīng)Sλ的密文塊。這2個(gè)條件成立的概率分別為 δ2和1/λ,并且它們?yōu)橄嗷オ?dú)立的隨機(jī)事件,因此,攻擊能夠成功的概率為δ2/λ。
在攻擊中,S1從前λ+1個(gè)密文塊中隨機(jī)選擇了并將第λ+2個(gè)密文塊替換成在該報(bào)文到達(dá)節(jié)點(diǎn)Sj時(shí),Sj將發(fā)現(xiàn)第λ+2個(gè)密文的解密結(jié)果為1,因此很容易發(fā)現(xiàn)該報(bào)文為非法報(bào)文。如果Sj為誠實(shí)節(jié)點(diǎn),將會(huì)觸發(fā)反向調(diào)查過程,惡意節(jié)點(diǎn)S1必然被捕獲。如果Sj為惡意節(jié)點(diǎn),只會(huì)將該非法報(bào)文簡單丟棄。因此,S1是否被捕獲決定于它隨機(jī)選擇的密文Bj所對應(yīng)節(jié)點(diǎn)Sj是否為惡意節(jié)點(diǎn)。因?yàn)闃?gòu)成轉(zhuǎn)發(fā)路徑的節(jié)點(diǎn)是發(fā)送者從全體服務(wù)器集合中隨機(jī)選取的,所以Sj為惡意節(jié)點(diǎn)的概率為δ,而S1被捕獲的概率為1-δ。
2) 關(guān)于標(biāo)簽追蹤攻擊。在修正方案中,標(biāo)簽追蹤攻擊也必須由轉(zhuǎn)發(fā)路徑的首尾節(jié)點(diǎn)合謀實(shí)施,即由第一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)嵌入標(biāo)簽,由最后一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)從流經(jīng)報(bào)文中提取標(biāo)簽。另外,標(biāo)簽追蹤攻擊也依賴于隨機(jī)猜測。如果猜測錯(cuò)誤,則攻擊者將被反向調(diào)查機(jī)制捕獲。定理3描述了在局部攻擊者模型下修正方案抵抗標(biāo)簽追蹤攻擊的能力。
定理 3 修正方案中攻擊者利用標(biāo)簽追蹤攻擊能成功關(guān)聯(lián)發(fā)送者和接收者的概率為δ2/λ,而攻擊者被捕獲的概率為1-δ。
證明 標(biāo)簽追蹤攻擊成功的條件是:1) 路徑首尾節(jié)點(diǎn)S1和Sλ都是惡意節(jié)點(diǎn);2) S1嵌入標(biāo)簽的密文塊恰好對應(yīng)節(jié)點(diǎn)Sλ。這2個(gè)條件能夠成立的概率分別為 δ2和1/λ,因此,攻擊能夠成功的概率為δ2/λ。如果與嵌入標(biāo)簽的密文塊相對應(yīng)的節(jié)點(diǎn)Sj為誠實(shí)節(jié)點(diǎn),則S1必然被反向調(diào)查機(jī)制捕獲。如果Sj為惡意節(jié)點(diǎn),則只會(huì)將該非法報(bào)文簡單丟棄。因此,S1是否被捕獲決定于它隨機(jī)選擇的密文Bj所對應(yīng)節(jié)點(diǎn)Sj是否為惡意節(jié)點(diǎn),即S1被捕獲的概率為1-δ。
3) 關(guān)于猜測接收者攻擊。修正1使得攻擊者無法再利用接收者Sλ+1的匿名轉(zhuǎn)發(fā)服務(wù)驗(yàn)證自己對接收者的猜測,但攻擊者可以利用類似的攻擊思想猜測和驗(yàn)證構(gòu)成轉(zhuǎn)發(fā)路徑的各個(gè)中間節(jié)點(diǎn)。這樣做同樣存在隨機(jī)猜測過程,即需要攻擊者隨機(jī)選擇密文塊Bj,并將其篡改為如果Bj對應(yīng)的節(jié)點(diǎn)Sj是誠實(shí)的,攻擊者制造的非法報(bào)文將會(huì)被發(fā)現(xiàn),因此,攻擊者被捕獲的概率同樣為1-δ。
由以上分析可以看出,對原方案的兩點(diǎn)修正雖然無法完全消除Mix服務(wù)器的解密預(yù)言機(jī)漏洞,但在很大程度上提高了攻擊者篡改密文和利用解密預(yù)言機(jī)的代價(jià)。在典型的 Internet分布式匿名系統(tǒng)中,一般認(rèn)為惡意節(jié)點(diǎn)所占比例δ的上限為0.2[15]。在該條件下,根據(jù)定理2和定理3的結(jié)論,惡意節(jié)點(diǎn)在實(shí)施3種攻擊時(shí)被捕獲的概率不低于1-δ,即80%。為了進(jìn)一步提高反向追蹤對攻擊的抑制作用,還可以采用制定嚴(yán)厲懲罰措施等非技術(shù)性手段。
4.2.2 效率
在正常情況下,每收到一個(gè)報(bào)文,修正方案中的Mix服務(wù)器除了需要進(jìn)行原協(xié)議規(guī)定的2λ+3次URE解密、λ+2次URE再加密操作以及一次公鑰算法E的解密操作之外,只需額外進(jìn)行一次數(shù)字簽名操作,因此服務(wù)器運(yùn)算量增加很小。
在發(fā)現(xiàn)有非法報(bào)文的異常情況下,該報(bào)文轉(zhuǎn)發(fā)路徑上的部分節(jié)點(diǎn)時(shí)被迫參與反向追蹤過程。每個(gè)相關(guān)節(jié)點(diǎn)為構(gòu)造自己的合法性證明,需要進(jìn)行3(λ+2)次群G上的指數(shù)運(yùn)算,而驗(yàn)證該證明則需要進(jìn)行10λ+24次指數(shù)運(yùn)算和一次公鑰算法E的解密操作。在異常情況下,最大的額外開銷在于每個(gè)參與調(diào)查的服務(wù)器都要更換密鑰,并向系統(tǒng)其他節(jié)點(diǎn)廣播新密鑰。因此,為了防止頻繁攻擊行為對性能的影響,可以采用加重懲罰力度的方法來降低服務(wù)器作弊的概率。
另外,為了能夠在反向追蹤中證明自己在上一級輸出報(bào)文基礎(chǔ)上做了正確的處理,每個(gè)服務(wù)器還需對包含數(shù)字簽名的輸入報(bào)文進(jìn)行緩存。如果要求誠實(shí)服務(wù)器發(fā)現(xiàn)非法報(bào)文后必須立即啟動(dòng)反向追蹤機(jī)制,那么Mix服務(wù)器只需緩存較短時(shí)間段內(nèi)收到的報(bào)文,因此修正方案中緩存數(shù)據(jù)量較小,并且不需要將輸入與緩存數(shù)據(jù)進(jìn)行比對以檢查是否有重復(fù)報(bào)文。與傳統(tǒng)的基于緩存法對抗重放攻擊的洋蔥路由系統(tǒng)相比,基于HS-Onion仍然具有很大優(yōu)勢。
基于通用重加密算法的洋蔥路由系統(tǒng)能夠有效抵御重放攻擊,但存在嚴(yán)重的效率問題。為此,時(shí)金橋等提出了一種綜合利用通用重加密和對稱加密算法的混合結(jié)構(gòu)洋蔥路由方案HS-Onion,降低了傳輸長消息時(shí)的計(jì)算復(fù)雜度。本文指出了HS-Onion方案的2處安全漏洞,并展示了3種能夠完全破壞發(fā)送者和接收者不可關(guān)聯(lián)性的攻擊方法。這些攻擊采用了與匿名通信系統(tǒng)中一些典型攻擊類似的思想,如關(guān)系攻擊[16]、路徑猜測攻擊[9]、分組計(jì)數(shù)器攻擊[17]等,因此,對分析其他匿名通信系統(tǒng)的安全性具有一定的借鑒作用。近年來出現(xiàn)了很多針對匿名通信系統(tǒng)的關(guān)聯(lián)攻擊[15,18,19],它們主要面向基于虛電路的低延時(shí)匿名通信系統(tǒng)(如Tor[13]),并且大都采用了基于時(shí)域或頻域的通信流量統(tǒng)計(jì)分析。與這些攻擊方法相比,本文的攻擊直接利用了 HS-Onion方案的密碼學(xué)漏洞,不需要連續(xù)緩存多個(gè)報(bào)文進(jìn)行綜合分析,因此要準(zhǔn)確和高效得多。本文另一貢獻(xiàn)是給出了針對 HS-Onion方案的修正方法。這些修正以較小的代價(jià)在很大程度上降低了攻擊者篡改密文和利用解密預(yù)言機(jī)獲得有利信息的概率。
HS-Onion及此前的所有基于通用重加密的洋蔥路由方案都采用了啟發(fā)式的安全性分析方法,而其中很多方案在提出后不久即被攻破,該事實(shí)表明在嚴(yán)格定義的模型下給出形式化安全性證明是十分必要的。這也是大多數(shù)匿名通信系統(tǒng)在進(jìn)行安全性分析時(shí)所遇到的問題。因此,下一步的工作應(yīng)該包括為混合結(jié)構(gòu)洋蔥路由系統(tǒng)建立能夠正確反映系統(tǒng)安全屬性及敵手攻擊能力的安全模型,并在該模型下對方案的安全性進(jìn)行證明。
[1] CHAUM D. Untraceable electronic mail, return addresses, and digital pseudonyms[J]. Communications of the ACM, 1981, 24(2)∶84-88.
[2] MOLLER U, COTTRELL L, PALFRADER P. Mixmaster protocol-version 2[EB/OL]. http∶//www.eskimo.com/rowdenw/crypt/Mix/draft-moeller-mixmaster2-protocol-00.txt, 2003.
[3] DANEZIS G, DINGLEDINE R, MATHEWSON N. Mixminion∶ design of a type III anonymous remailer protocol[A]. Proceedings of the 2003 IEEE Symposium on Security and Privacy[C]. Oakland, California, USA, 2003.2-15.
[4] KESDOGAN D, EGNER J, BUSCHKES R. Stop-and-go MIXes∶providing probabilistic anonymity in an open system[A]. Proceedings of Information Hiding Workshop (IH 1998)[C]. Portland, Oregon,USA, 1998.83-89.
[5] GOLLE P, JAKOBSSON M, JUELS A. Universal re-encryption for mixnets[A]. Proceedings of the 2004 RSA Conference, Cryptographer’s Track[C]. San Francisco, USA, 2004.163-178.
[6] GOMULKIEWICZ M, KLONOWSKI M. Onions based on universal reencryption anonymous communication immune against repetitive attack[A]. International Workshop on Information Security Applications(WISA04)[C]. Jeju Island, Korea, 2004. 400-410.
[7] DANEZIS G. Breaking four mix-related schemes based on universal re-encryption[A]. Proceedings of Information Security Conference 2006(ISC 2006)[C]. Samos, Greece, 2006.46-59.
[8] KLONOWISKI M, KUTYLOWSKI M, LAUKS A. Repelling detour attack against onions with re-encryption[A]. Proceedings of International Conference on Applied Cryptography and Network Security 2008 (ACNS 2008)[C]. New York, USA, 2008. 296-308.
[9] BORISOV N, KLONOWISKI M, MIROSLAW K. Attacking and repairing the improved ModOnions protocol[A]. Proceedings of the 12th International Conference on Information Security and Cryptology[C]. Seoul, Korea, 2009. 258-273.
[10] BORISOV N, KLONOWISKI M, MIROSLAW K. Attacking and repairing the improved ModOnions protocol-tagging approach[J]. KSII Transactions on Internet and Information Systems, 2010, 4(3)∶ 380-399.
[11] 陸天波, 秦寶山, 李洋. 重加密匿名通道WGRe[J]. 通信學(xué)報(bào), 2009,30(4)∶66-73.LU T B, QIN B S, LI Y. WGRe∶ a re-encryption anonymous tunnel[J].Journal on Communications, 2009, 30(4)∶66-73.
[12] 時(shí)金橋, 方濱興, 郭莉. 抵御MIX重放攻擊的混合結(jié)構(gòu)消息報(bào)文機(jī)制[J]. 通信學(xué)報(bào), 2009, 30(3)∶21-26.SHI J Q, FANG B X, GUO L. Hybrid-structured onion scheme against replay attack of MIX[J]. Journal on Communications, 2009, 30(3)∶21-26.
[13] DINGLEDINE R, MATHEWSON N, SYVERSON P. Tor∶ the second-generation onion router[A]. Proceedings of the 13th USENIX Security Symposium[C]. San Antonio, USA, 2004. 303-320.
[14] CAMENISCH J, STADKER M. Efficient group signature schemes for large groups[A]. Proceedings of Crypto’97[C]. Santa Barbara, California, USA, 1997. 410-424.
[15] WANG Q Y, MITTAL P, BORISOV N. In search of an anonymous and secure lookup∶ attacks on structured peer-to-peer anonymous communication systems[A]. Proceedings of the ACM CCS 2010[C]. Chicago,Illinois, USA, 2010. 308-318.
[16] PFITZMANN B. Breaking efficient anonymous channel[A]. Proceedings of Eurocrypt'94[C]. Perugia, Italy, 1994. 332-340.
[17] LING Z, LUO J Z, YU W. A novel cell counter based attack against tor[A]. Proceedings of the ACM CCS 2009[C]. Chicago, Illinois, USA,2009. 578-589.
[18] ZHU Y, FU X W, RICCARDO B, et al. Analysis of flow-correlation attacks in anonymity network[J]. International Journal of Security and Networks, 2007, 2(1)∶137-153.
[19] STEFAN S, SEBASTIAN C. Using linkability information to attack mix-based anonymity services[A]. Proceedings of 9th International Symposium on Privacy Enhancing Technologies[C]. Seattle, WA,USA, 2009. 94-107.