趙蕙,王良民
(江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013)
開放的互聯(lián)網(wǎng)中隱藏著大量的網(wǎng)絡(luò)活動(dòng)、用戶身份、區(qū)域位置等敏感信息。斯諾登事件、Facebook用戶數(shù)據(jù)信息泄露事件等,讓互聯(lián)網(wǎng)用戶意識到在使用網(wǎng)絡(luò)的過程中,需要保護(hù)自己的隱私信息[1],這種隱私保護(hù)可以通過保護(hù)信息的內(nèi)容實(shí)現(xiàn),也可以通過保護(hù)信息發(fā)布或接收者的身份實(shí)現(xiàn)。匿名通信技術(shù)通過隱藏通信實(shí)體的身份信息,使網(wǎng)絡(luò)的攻擊者不知道誰發(fā)送了數(shù)據(jù)和接收了數(shù)據(jù),無法關(guān)聯(lián)發(fā)送方和接收方之間的數(shù)據(jù)傳輸,吸引了廣大研究者和網(wǎng)絡(luò)用戶的興趣。廣泛使用的匿名系統(tǒng)有Tor[2]、Anonymizer[3]、I2P[4]、JAP[5]、Freenet[6]等。這些匿名系統(tǒng)中,Tor 的影響最大,諾威治大學(xué)的一份暗網(wǎng)交易分析報(bào)告顯示,每年有超過1 億美元的網(wǎng)絡(luò)交易是利用Tor 等工具在暗網(wǎng)完成的。
然而,這些匿名技術(shù)在保護(hù)了匿名者隱私的同時(shí),也隱藏了違法者的交易[7]。因此,一些針對匿名系統(tǒng)的監(jiān)控方法也得到了廣泛的研究,如被動(dòng)和主動(dòng)流量分析[8]、基于機(jī)器學(xué)習(xí)進(jìn)行網(wǎng)站指紋分析[9]、攻擊Tor 節(jié)點(diǎn)上運(yùn)行的其他服務(wù)[10]等。這些監(jiān)控技術(shù)大大降低了匿名性,雖然增加中繼節(jié)點(diǎn)、延長匿名轉(zhuǎn)發(fā)路由的措施可以降低匿名通道被發(fā)現(xiàn)的可能性,但是,由于通過中繼節(jié)點(diǎn)進(jìn)行層層加密的間接消息傳輸會(huì)導(dǎo)致較長的端到端路徑,明顯加劇匿名網(wǎng)絡(luò)的訪問速度,帶來較大的時(shí)延和下載時(shí)間,如Tor 匿名網(wǎng)絡(luò)中,每增加一個(gè)中繼節(jié)點(diǎn),網(wǎng)絡(luò)服務(wù)的時(shí)延會(huì)增加到原來的1~2 倍,這對原本就服務(wù)體驗(yàn)不佳的匿名系統(tǒng)會(huì)帶來災(zāi)難性的影響。
本文主要集中在匿名通道的出口節(jié)點(diǎn),借力當(dāng)前新興的SDN[11]的特性,將出口節(jié)點(diǎn)隱藏在一個(gè)SDN 域內(nèi),雖然有限地增加了匿名通道長度,但可大大降低通道被捕獲的概率。
本文工作主要體現(xiàn)在以下幾點(diǎn)。
1)在匿名通道出口節(jié)點(diǎn)所在區(qū)域,利用SDN在域內(nèi)構(gòu)建淆亂,降低匿名通道出口的發(fā)現(xiàn)概率和匿名路徑的可追蹤率。
2)SDN 域內(nèi)淆亂路徑和原有匿名通道結(jié)合的混合通道,同時(shí)提供發(fā)送方和接收方匿名,SDN 域內(nèi)接收方的匿名性不依賴于(或者說獨(dú)立于)發(fā)送方做出的選擇?;旌贤ǖ赖哪涿噪SSDN 域所選的參與淆亂結(jié)構(gòu)的節(jié)點(diǎn)規(guī)模的增長而增強(qiáng),而網(wǎng)絡(luò)代價(jià)上遠(yuǎn)遠(yuǎn)低于在原有通道上增加一倍中繼節(jié)點(diǎn)帶來的時(shí)延。
與本文相關(guān)的研究工作包括現(xiàn)有匿名系統(tǒng)的通道構(gòu)建方法、SDN 域的基本知識,以及在SDN域內(nèi)構(gòu)建匿名通道的方法。
匿名領(lǐng)域的開創(chuàng)性工作最初源于 1981 年Chaum[12]提出的Mix-net 方法,該方法是大部分匿名協(xié)議的基礎(chǔ)。匿名通信系統(tǒng)可以根據(jù)時(shí)延性能、網(wǎng)絡(luò)類型、路由方案、密碼學(xué)機(jī)制等不同屬性進(jìn)行分類[13-14]。當(dāng)前傳統(tǒng)互聯(lián)網(wǎng)中典型的匿名系統(tǒng)可以稱為Overlay覆蓋層匿名系統(tǒng)。這類系統(tǒng)建立在TCP傳輸層的基礎(chǔ)之上,選擇采用混淆、多層加密、多次轉(zhuǎn)發(fā)的方法,達(dá)到間接隱藏分組頭信息,并抵制流量分析的目的,其中比較有影響的典型系統(tǒng)有Tor[2]、Anonymizer[3]、I2P[4]、JAP[5]、Freenet[6]等。較新的研究,如Riffle[15]、Aqua[16]、Herd[17]等面向匿名文件分享和IP 語音的應(yīng)用,被認(rèn)為是現(xiàn)有匿名系統(tǒng)的應(yīng)用補(bǔ)充,并能更好地對抗流量分析。
隨著未來互聯(lián)網(wǎng)架構(gòu)的研究發(fā)展,出現(xiàn)了Network-layer 網(wǎng)絡(luò)層匿名通信系統(tǒng)[18],主要借助新的互聯(lián)網(wǎng)架構(gòu)中分段路由等關(guān)鍵技術(shù),使路由器等網(wǎng)絡(luò)基礎(chǔ)設(shè)施參與建立匿名通信通道,并協(xié)助轉(zhuǎn)發(fā)匿名流量。與覆蓋層匿名系統(tǒng)間接隱藏分組頭的匿名通信方法不同,這種匿名技術(shù)在網(wǎng)絡(luò)層直接隱藏分組頭,在理論上被認(rèn)為有更快的傳輸速度和更高的可擴(kuò)展性。目前,比較有代表性的有Dovetail[19]、HORNET[20]、PHI[21]、TARANET[22]等。相比Overlay 結(jié)構(gòu)下的匿名系統(tǒng)Tor 和I2P 約100 Mbit/s 的吞吐量,網(wǎng)絡(luò)層匿名系統(tǒng)HORNET 等可達(dá)到約100 Gbit/s 的吞吐量[18]。但是不足之處在于,在安全性方面,輕量級加密技術(shù)使該類系統(tǒng)匿名性稍弱。此外,目前網(wǎng)絡(luò)路由結(jié)構(gòu)還不能全面支持網(wǎng)絡(luò)層匿名系統(tǒng),該系統(tǒng)走向具體應(yīng)用還有相當(dāng)長的時(shí)間。因此,目前實(shí)用的系統(tǒng)中主要還是使用Tor 等傳輸速度較慢的Overlay 結(jié)構(gòu)的匿名技術(shù)構(gòu)建的通道,覆蓋網(wǎng)絡(luò)匿名通信協(xié)議和網(wǎng)絡(luò)層匿名通信協(xié)議在可拓展性、時(shí)延、吞吐量、安全和匿名性以及部署規(guī)模等方面的對比如表1 所示。
Tor 是目前使用最廣泛的低時(shí)延匿名系統(tǒng)[23],也是最具有代表性的第二代洋蔥路由匿名系統(tǒng),其使用洋蔥路由方法對消息進(jìn)行多層加密和多次轉(zhuǎn)發(fā),使消息看起來好像來自它的最后一個(gè)中繼,而不是用戶。其結(jié)構(gòu)包含洋蔥代理、洋蔥節(jié)點(diǎn)和目錄服務(wù)器,這些功能都集成在Tor 的軟件包中,用戶可以下載公開源碼的軟件包,通過修改軟件的配置文件實(shí)現(xiàn)Tor 的具體功能。
從匿名性方面考慮,如果Tor 用戶隨機(jī)選擇路徑長度來抵抗攻擊者對路徑中節(jié)點(diǎn)位置的學(xué)習(xí),同時(shí)選擇更多Tor 節(jié)點(diǎn)參加消息中繼,可以獲得更高的系統(tǒng)匿名性。但是,中繼節(jié)點(diǎn)的數(shù)量與系統(tǒng)的傳輸速度成反比,考慮到提供交互服務(wù)的實(shí)時(shí)體驗(yàn),當(dāng)前默認(rèn)的方法中,Tor 總是選擇3 個(gè)與自己和目的地?zé)o關(guān)的洋蔥路由節(jié)點(diǎn)來構(gòu)建一條匿名傳輸路徑,并在概率上傾向于選擇具有高帶寬能力的節(jié)點(diǎn)以平衡負(fù)載、降低時(shí)延,并且不對流量做批處理、填充或整形[24],這些以傳輸性能為出發(fā)點(diǎn)的設(shè)計(jì)都降低了Tor 匿名性。
表1 覆蓋網(wǎng)絡(luò)匿名通信協(xié)議和網(wǎng)絡(luò)層匿名通信協(xié)議
針對Tor 匿名性的攻擊,最具代表性、危害最大的是流量分析[25]。攻擊者可以通過控制入口/出口節(jié)點(diǎn)對及統(tǒng)計(jì)相關(guān)性方法關(guān)聯(lián)通信的實(shí)體、識別Tor 用戶身份,如圖1 所示。文獻(xiàn)[26]利用Cisco 的NetFlow 監(jiān)測工具檢測服務(wù)器端和客戶端信息的相關(guān)性,對實(shí)驗(yàn)室和現(xiàn)實(shí)網(wǎng)絡(luò)中Tor 用戶的正確識別率分別達(dá)到100%和81.6%。文獻(xiàn)[27]顯示控制9%的Tor 節(jié)點(diǎn)就可以關(guān)聯(lián)46.46%~60.58%的匿名路徑,并且Tor 網(wǎng)絡(luò)出口節(jié)點(diǎn)到接收方的明文連接會(huì)使接收方完全暴露在網(wǎng)絡(luò)中,盡管可以通過隱藏服務(wù)提高接收方匿名,但基于網(wǎng)站指紋研究的攻擊者可以識別出與隱藏服務(wù)有關(guān)的電路和其在隱藏服務(wù)中的角色的情況下,發(fā)起網(wǎng)站指紋攻擊,破解用戶所訪問的隱藏服務(wù)[28]。政府級別的強(qiáng)制監(jiān)管可以在管轄權(quán)范圍內(nèi)與企業(yè)合作,要求ISP(Internet service provider)在傳輸過程中復(fù)制用戶的流量動(dòng)態(tài)并通過安全通道將其轉(zhuǎn)發(fā);可以將監(jiān)控設(shè)備架設(shè)在主干網(wǎng)等特權(quán)位置,保證更快的應(yīng)對速度,再利用數(shù)據(jù)分析工具篩選流量,識別Tor 用戶。
圖1 Tor 流量分析示意
這些針對Tor 的流量分析,大大降低了Tor 的匿名性。雖然可以通過增加中間節(jié)點(diǎn)數(shù)目(目前典型的Tor 網(wǎng)絡(luò)是3 個(gè)中繼節(jié)點(diǎn))增強(qiáng)匿名性,但是這種方法一方面顯著降低了匿名服務(wù)的效率,另一方面如果出口節(jié)點(diǎn)被攻擊者控制,則增加節(jié)點(diǎn)來抵抗流量分析并沒有顯著的效果。因此,本文嘗試通過SDN 域內(nèi)淆亂的方法,隱藏出口節(jié)點(diǎn),提高匿名通道的匿名性。
SDN 是一種新興網(wǎng)絡(luò)架構(gòu),它采用中央集中控制機(jī)制,將控制邏輯從路由器和交換機(jī)中分離出來,以軟件方式由SDN 控制器集中規(guī)劃,SDN 控制器可以俯瞰整個(gè)網(wǎng)絡(luò),可以對網(wǎng)絡(luò)內(nèi)的交換機(jī)快速編程,具有高效的控制管理和可編程特性。
不同文獻(xiàn)的研究關(guān)注點(diǎn)在隨機(jī)改變IP 地址和端口[29]、需要修改主機(jī)[30,31]、伸縮性部署[32]、特定應(yīng)用和協(xié)議限制[33]、數(shù)據(jù)分組應(yīng)用加密[34]、多路徑路由選擇[35]等方面各有差別。其中比較典型的方法是利用SDN 控制器對網(wǎng)絡(luò)拓?fù)溥M(jìn)行的全局視角和集中式可編程管理,由控制器分配域內(nèi)地址空間,計(jì)算傳輸路由,向交換機(jī)安裝流規(guī)則,通過SDN交換機(jī)節(jié)點(diǎn)重寫或移除數(shù)據(jù)分組原始分組頭,改變消息中真實(shí)的IP 地址、MAC 地址、端口等信息,從而達(dá)到隱藏通信雙方身份的目的。
為提高匿名通道的傳輸效率,一些研究者提出在SDN 域內(nèi)建立匿名通道的方法。文獻(xiàn)[29]面向數(shù)據(jù)中心網(wǎng)絡(luò)高帶寬低時(shí)延的應(yīng)用需要,提出C/S 結(jié)構(gòu)的mimic 匿名通道,通道中的消息流經(jīng)若干臺由控制器指定的交換機(jī)節(jié)點(diǎn),這些交換機(jī)節(jié)點(diǎn)相當(dāng)于輕量級的匿名中繼,它們不能進(jìn)行加解密等計(jì)算密集型操作,只可以根據(jù)控制器下發(fā)的流表執(zhí)行分組頭信息的修改,從而獲得匿名,控制器是mimic 通道內(nèi)所有路由的計(jì)算和管理者。文獻(xiàn)[29]考慮了路由沖突避免機(jī)制、流量分析抵制機(jī)制,以及部署時(shí)如何與入侵檢測、防火墻等系統(tǒng)共存。文獻(xiàn)[30]提出可部分部署的網(wǎng)絡(luò)層匿名系統(tǒng)iTAP(in-network traffic analysis prevention),通過在SDN 的邊緣交換機(jī)節(jié)點(diǎn)重寫分組頭,隨機(jī)改變IP 地址,從而隱藏真實(shí)身份,使網(wǎng)絡(luò)內(nèi)實(shí)際地址和通信主機(jī)的數(shù)量都不能被識別。iTAP 最少需要2 臺SDN 交換機(jī)設(shè)備就可以部署,系統(tǒng)可伸縮性強(qiáng),匿名性隨SDN 設(shè)備的數(shù)量線性增長。
SDN 內(nèi)的匿名傳輸通道與Tor 相比,有更短的路由建立時(shí)間、更短的傳輸時(shí)延、更大的網(wǎng)絡(luò)吞吐量,并且因?yàn)樵诘讓泳W(wǎng)絡(luò)傳輸,匿名路徑長度的增加對時(shí)延的影響明顯小于路徑長度增加對Tor 的影響。但是,控制器節(jié)點(diǎn)成為系統(tǒng)唯一脆弱點(diǎn),存在單點(diǎn)失效問題,即控制器了解整個(gè)通道的節(jié)點(diǎn)及流量。
考慮當(dāng)前典型的混合結(jié)構(gòu)的互聯(lián)網(wǎng)模型,面向接收方不可追蹤的匿名系統(tǒng)的發(fā)送方(Alice)和接收方(Bob)可以利用公開的匿名系統(tǒng)建立匿名通信渠道,但是對其匿名性存在擔(dān)憂,尤其是接收方很可能被攻擊者發(fā)現(xiàn),如Tor 系統(tǒng)中,出口節(jié)點(diǎn)到接收方的明文連接會(huì)使接收方完全暴露在網(wǎng)絡(luò)中,使用Tor 隱藏服務(wù)建立的匿名通道也可能被指紋攻擊破解[28]。
在混合網(wǎng)絡(luò)模型中,Bob 可能位于一個(gè)與Alice不同的網(wǎng)絡(luò)域,因此無法直接使用基于SDN 構(gòu)建的匿名通道,如mimic[29]、PHEAR(packet header randomization)[34]等。因此,在模型中,Alice 利用公開的匿名系統(tǒng),同時(shí)為保證處于可信SDN 自治域內(nèi)的Bob 的通信身份不被泄露,設(shè)置淆亂節(jié)點(diǎn)Bobo 作為接收方Bob 的影子節(jié)點(diǎn),代理往來Bob的消息,Bobo 同時(shí)連接2 段不同的匿名通道,形成混合匿名通道。具體結(jié)構(gòu)如圖2 所示。
圖2 混合匿名通道示意
圖2 所示網(wǎng)絡(luò)存在3 類不同屬性的域:1)發(fā)送方所在的域;2)接收方所在的域;3)不同于發(fā)送方和接收方的第三方的多個(gè)網(wǎng)絡(luò)域。網(wǎng)絡(luò)的威脅模型主要來自第三方域。根據(jù)Delve-yao 安全模型假設(shè),在本文的威脅模型中,除發(fā)送方和接收方所在域外,都被匿名系統(tǒng)的分析者完全掌握,經(jīng)過第三方域的流量、明文傳輸?shù)男畔?nèi)容都為分析者所知曉。同樣,根據(jù)Delve-yao 安全模型假設(shè),攻擊者不能破壞密碼原語,一切的安全性和匿名性源于發(fā)送者和接收者對于所持有密鑰的機(jī)密性。
本文使用的符號及其定義如表2 所示。
表2 本文使用的符號及其定義
Internet 由多個(gè)復(fù)雜異構(gòu)管理域構(gòu)成,本節(jié)提出的混合匿名通道構(gòu)建方法,主要考慮跨域匿名通信,通過對出口節(jié)點(diǎn)的淆亂,進(jìn)而提高整個(gè)通道的匿名性?;谝话阈阅涿到y(tǒng)中通道構(gòu)建的基本規(guī)范,本節(jié)從淆亂節(jié)點(diǎn)選擇、端到端通信建立、淆亂路徑計(jì)算和淆亂節(jié)點(diǎn)更新這4 個(gè)方面構(gòu)建跨網(wǎng)絡(luò)域的混合通道。
淆亂節(jié)點(diǎn)(obfuscated node)是具有計(jì)算能力的主機(jī)節(jié)點(diǎn)。Bob 從所在的SDN 域內(nèi)選擇淆亂節(jié)點(diǎn)作為自己的影子節(jié)點(diǎn),記為Bobo,參與通道的構(gòu)建。淆亂節(jié)點(diǎn)Bobo 需要同時(shí)滿足以下3 個(gè)方面的屬性。
1)隨機(jī)性。Bobo 的選擇是隨機(jī)性產(chǎn)生,不能和Bob 具有明顯關(guān)聯(lián)。
2)多路徑關(guān)聯(lián)。Bobo 可以通過多條路徑到達(dá)Bob,不能僅有一條或者太少的容易被跟蹤的路徑。
3)高效率路由。Bobo 和Bob 之間的數(shù)據(jù)傳輸可以滿足匿名訪問的數(shù)據(jù)傳輸需求。
需要獲得接收方匿名服務(wù)的Bob 向SC 請求匿名服務(wù)注冊后,得到SC 分配的虛擬地址。Bob在淆亂節(jié)點(diǎn)集合中隨機(jī)選出λ個(gè)節(jié)點(diǎn)(λ≥1)作為自己的淆亂節(jié)點(diǎn)Bobo,向SC 請求建立與 Bobo之間的匿名通道。SC 存儲消息的源和目的地址,根據(jù)Bob 請求中速度優(yōu)先還是匿名優(yōu)先等服務(wù)質(zhì)量(QoS,quality of service)信息,利用對域內(nèi)網(wǎng)絡(luò)拓?fù)涞恼莆?,?jì)算匿名傳遞消息的路由通道,完成真實(shí)地址和虛擬地址之間的映射。這是一條由SDN 交換機(jī)組成的底層網(wǎng)絡(luò)匿名路徑,入口交換機(jī)地址、轉(zhuǎn)發(fā)交換機(jī)地址都是由 SDN 控制器計(jì)算分配的域內(nèi)虛擬地址。在這條生成的匿名路徑中,只有入口交換機(jī)知道發(fā)送方的真實(shí)地址,只有出口交換機(jī)知道接收方的真實(shí)地址,SDN 控制器將沿著匿名路徑,給交換機(jī)安裝重寫分組頭和轉(zhuǎn)發(fā)規(guī)則的流表,交換機(jī)將收到的數(shù)據(jù)分組和流表匹配,執(zhí)行分組頭重寫和向前轉(zhuǎn)發(fā)。因此,路徑中的每一臺交換機(jī)只會(huì)收到將數(shù)據(jù)分組轉(zhuǎn)發(fā)到下一跳的必要指令,像洋蔥路由一樣,每臺交換機(jī)只知道通信鏈路中的上一跳和下一跳,獲得入口交換機(jī)和出口交換機(jī)的不可關(guān)聯(lián)性。Bob 通過這條匿名路徑建立向Bobo 的連接,請求Bobo作為自己的淆亂節(jié)點(diǎn),得到Bobo 的響應(yīng)后。Bob向SC 請求建立與TDS 之間的匿名通道,通過該通道將自己的公鑰和 Bobo 的連接信息發(fā)布到TDS,這樣,任何一個(gè)發(fā)送方要給Bob 發(fā)送信息時(shí),查詢TDS 得到的是Bobo 的地址信息,從而達(dá)到了以淆亂節(jié)點(diǎn)保護(hù)真實(shí)接收方的目的。圖3描述了協(xié)議的執(zhí)行過程。
圖3 混合通道協(xié)議選擇和建立淆亂節(jié)點(diǎn)
協(xié)議中第3)步和第4)步由算法1 給出描述。
算法1淆亂節(jié)點(diǎn)的選擇和匿名路徑生成
輸入混合通道淆亂節(jié)點(diǎn)集合SBobo{ },參數(shù)λ表示被選出的淆亂節(jié)點(diǎn)個(gè)數(shù),消息的源和目的地址
輸出淆亂節(jié)點(diǎn)Bobo1,Bobo2,…,Boboλ,SDN匿名通道路由和虛擬地址。
需要與Bob 通信的發(fā)送方客戶端Alice,使用公開匿名協(xié)議,建立一條到達(dá)TDS 的匿名電路。以Tor 為例,Alice 從Tor 的洋蔥目錄中下載共識文件,獲取洋蔥路由信息,創(chuàng)建一個(gè)到達(dá)TDS 的洋蔥。根據(jù)帶外獲得的Bob 的服務(wù)別名,Alice 向TDS 查詢并獲得Bob 節(jié)點(diǎn)公鑰和其淆亂節(jié)點(diǎn)Bobo 的地址。
通過Bobo 中繼Alice 和Bob 之間的信息,需要建立Alice 和Bob 之間的會(huì)話密鑰,該會(huì)話密鑰的建立采用Diffie-Hellman 握手機(jī)制,具體算法如算法2所示,描述淆亂節(jié)點(diǎn)對接Alice 和Bob 之間會(huì)話密鑰建立機(jī)制。
算法2Bob 與Alice 協(xié)商會(huì)話密鑰
輸入Bob 和Alice 的私鑰SKB和SKA
輸出KAB和H(KAB)
Alice 獲得Bob 的連接信息后,通過公開匿名協(xié)議向Bobo 建立一條匿名電路,以Tor 為例,Alice創(chuàng)建一個(gè)到達(dá)Bobo 的洋蔥,用這個(gè)洋蔥打包自己對Bob 的訪問請求以及DH 握手的前半部分,Bobo 收到Alice 的消息后,通過Bob 利用算法1 向自己建立的匿名路徑,把消息發(fā)送給Bob,Bob 收到消息后如果接收Alice 的訪問請求,則生成會(huì)話密鑰KAB,并將會(huì)話密鑰的散列H(KAB)以及DH 握手的另一半,通過Bobo 發(fā)送給Alice。Alice接收后,生成會(huì)話密鑰和該密鑰的散列,與來自Bobo 消息中的密鑰散列值比較確認(rèn),完成混合通道端到端通信建立。上述過程的具體描述如圖4 所示。其中,Bobo 連接2 條匿名通道形成混合通道,Alice與Bob 之間的加密消息通過淆亂節(jié)點(diǎn)Bobo中繼轉(zhuǎn)發(fā)。Alice 與Bobo 之間的連接、Bob 和Bobo之間的連接都是匿名的,Bobo 既不知道消息發(fā)送方Alice 的真實(shí)地址,也不知道消息接收方Bob 的真實(shí)地址。
圖4 混合通道端到端通信建立
混合通道的SDN 域內(nèi)采用的淆亂機(jī)制包括淆亂路徑的計(jì)算,由SDN 控制器計(jì)算生成多條用于傳輸消息的SDN 交換機(jī)節(jié)點(diǎn)的有序序列,如算法3所示。相比最短路徑等固定路徑的方法,利用這種機(jī)制可以防止攻擊者捕獲Bob 與Bobo 之間的整個(gè)通信流。
算法3淆亂多路徑生成
輸入消息的源和目的地址,參數(shù)η用于指定期望的最小跳數(shù),參數(shù)k用于指定生成路徑數(shù)
輸出路徑集合path{path1,path2,…,pathk},其中每一條路徑pathi={Vs,V1,V2,…,Vη,Vd}
算法1 中第11)行為SDN 控制器對域內(nèi)路由計(jì)算,是在使用鏈路層發(fā)現(xiàn)協(xié)議LLDP 獲得域內(nèi)網(wǎng)絡(luò)拓?fù)浜徒?jīng)典最短路徑算法(Yen’s algorithm)的基礎(chǔ)上,使用隨機(jī)化閾值,結(jié)合考慮網(wǎng)絡(luò)中測得的帶寬等網(wǎng)絡(luò)運(yùn)行狀態(tài),計(jì)算出前p條最優(yōu)路徑。計(jì)算出的這p條路由作為一組規(guī)則安裝到路徑中的交換機(jī)上,使用一張有序表保存,每個(gè)規(guī)則表示一條路由,最優(yōu)的路由排在表的頂端,當(dāng)前時(shí)刻只有一條規(guī)則是活躍的。用超時(shí)標(biāo)記來表示現(xiàn)存這組規(guī)則的生存期,當(dāng)位于列表頂部的路由超時(shí)過期時(shí),交換機(jī)將使用列表中的下一條路由,直到這組路由全部超時(shí)。若一條路由超時(shí),交換機(jī)發(fā)送一條消息通知控制器;若所有條目都超時(shí),控制器將推送新的規(guī)則組。新組中的路由的超時(shí)時(shí)間和路由在表中的順序可能不同,以此增強(qiáng)混淆。當(dāng)可用路由變化不大時(shí),則不需要由控制器不斷地重發(fā)規(guī)則,一組路由安裝后,可使用隨機(jī)邏輯或定時(shí)時(shí)間隨機(jī)變化的計(jì)時(shí)器,輪詢可用路由規(guī)則,保證域內(nèi)網(wǎng)絡(luò)的動(dòng)態(tài)性。
混合通道的出口淆亂機(jī)制依賴于淆亂節(jié)點(diǎn)的存在,有必要根據(jù)接收方Bob 的需要,隨機(jī)選擇λ(λ≥1)個(gè)淆亂節(jié)點(diǎn),并在使用一段時(shí)間后更換淆亂節(jié)點(diǎn),從而實(shí)現(xiàn)和維護(hù)淆亂機(jī)制的穩(wěn)健性,也可以更大程度地對SDN 控制器隱藏其直接的聯(lián)系,從而降低控制器單點(diǎn)失效可能帶來的影響。淆亂節(jié)點(diǎn)的更新可以通過重新啟動(dòng)算法1~算法3 實(shí)現(xiàn),也可以在算法1 的基礎(chǔ)上,由Bob 直接選擇,通過秘密通道告訴Alice,從而實(shí)現(xiàn)對SDN 控制器的匿名性。
經(jīng)過算法1~算法3,Alice 和Bob 之間構(gòu)建了一條秘密通道CH,其加密的密鑰由算法2 的會(huì)話密鑰建立方法獲得。假設(shè)構(gòu)建完成的混合通道是一個(gè)封閉的系統(tǒng),包含2 個(gè)部分,如圖5 所示。一部分是Alice到Bobo 的傳統(tǒng)意義上的,由一組Tor 洋蔥節(jié)點(diǎn)組成的匿名通道,另一部分是從Bob到Bobo的SDN域內(nèi)交換機(jī)網(wǎng)絡(luò)構(gòu)成的多路徑匿名通道,該多路徑是在算法3 的支持下獲得的。
圖5 混合通道結(jié)構(gòu)圖
淆亂節(jié)點(diǎn)vo連接2 條匿名通道。
本節(jié)從被攻陷概率和可追蹤率2 個(gè)方面,分析混合匿名通道的安全性。
混合通道的安全目標(biāo)是在利用Tor 實(shí)現(xiàn)發(fā)送方匿名的基礎(chǔ)上,采用SDN 內(nèi)部淆亂方法,使對手無法區(qū)分可能的通信事件。Alice 可能正在通過混合通道與Bob 通信,Alice 可能已連接混合通道但未與其他用戶交換消息,Alice 可能正與Bobo 交換信息。對于上述情況,攻擊者無法區(qū)分?;旌贤ǖ捞峁┑牟豢蓞^(qū)分性,使攻擊者對混合通道進(jìn)行的觀察只能在一定的邊界內(nèi)(例如ε)改善對通道內(nèi)懷疑事件的確定性,對任何事件僅獲得大致相等的概率。
假設(shè)匿名網(wǎng)絡(luò)中的節(jié)點(diǎn)是被選取的概率相等的隨機(jī)樣本。在有攻擊者掌握節(jié)點(diǎn)的情況下,用戶可能會(huì)選中攻擊者節(jié)點(diǎn)參與匿名路徑建立,對一條匿名路徑來說,在規(guī)模為N的網(wǎng)絡(luò)中,攻擊者控制了網(wǎng)絡(luò)中的B個(gè)節(jié)點(diǎn),在這種情況下選擇r個(gè)節(jié)點(diǎn)構(gòu)成一條傳輸路徑時(shí),恰好選中c個(gè)攻擊者控制的節(jié)點(diǎn)的概率如式(1)所示。以n=100,B=10,r=3 為例計(jì)算,p(3,1)=0.247 7,p(3,2)=0.025 0。
更具體地,根據(jù)Tor 的路由選擇,洋蔥路由被分為4 類[36]:入口節(jié)點(diǎn)、出口節(jié)點(diǎn)、既可做入口節(jié)點(diǎn)也可做出口節(jié)點(diǎn)、既不能做入口節(jié)點(diǎn)也不能做出口節(jié)點(diǎn)。用G表示被控制的入口節(jié)點(diǎn)個(gè)數(shù),用E表示被控制的出口節(jié)點(diǎn)個(gè)數(shù),如果Tor 用戶建立電路時(shí),入口節(jié)點(diǎn)和出口節(jié)點(diǎn)恰好都選中攻擊者控制的節(jié)點(diǎn),那么攻擊者可以分析兩端數(shù)據(jù)的統(tǒng)計(jì)信息,則稱這條Tor 通道被攻陷。出現(xiàn)這種情況的概率如式(2)所示。以N=100,G=5,E=5,r=3 為例計(jì)算,P(3,5,5)=0.013 9。
根據(jù)Tor 的路由選擇算法[24],Tor 對節(jié)點(diǎn)的選擇分為選取入口節(jié)點(diǎn)和選取非入口節(jié)點(diǎn)2 個(gè)部分。入口節(jié)點(diǎn)的選擇會(huì)傾向于帶寬最高以及運(yùn)行時(shí)間最長的節(jié)點(diǎn),考慮到Tor 網(wǎng)絡(luò)中的所有節(jié)點(diǎn)在某種程度上都應(yīng)該得到使用,非入口節(jié)點(diǎn)則未必是帶寬和運(yùn)行時(shí)長最優(yōu)的節(jié)點(diǎn),所以真實(shí)Tor 網(wǎng)絡(luò)中節(jié)點(diǎn)被選取的概率并不相同,以僅考慮帶寬權(quán)重為例,Tor 網(wǎng)絡(luò)中所有節(jié)點(diǎn)的帶寬標(biāo)記為{b1,…,bi,…,bN},具有帶寬bi的Tor 節(jié)點(diǎn)權(quán)重如式(3)所示。
如果以Tor 通道被攻陷的概率p為參照基準(zhǔn),理論上使用2 條Tor 電路疊加的匿名通道被攻陷概率為p2。對于混合通道,淆亂節(jié)點(diǎn)連接了2 條匿名通道,使出口節(jié)點(diǎn)隱藏SDN 域內(nèi),假設(shè)SDN 匿名通道內(nèi)有m個(gè)節(jié)點(diǎn),那么匿名通道將獲得的不可區(qū)分性,從而使整個(gè)匿名混合通道的被攻陷概率降低為,3 種匿名通道被攻陷的概率如圖6 所示。
圖6 電路被攻陷概率
表3 不同攻擊情境下Tor 和混合通道匿名屬性比較
文獻(xiàn)[37]提出用式(4)刻畫系統(tǒng)的可追蹤率,文獻(xiàn)[38]利用幾何分布刻畫了其中的(Cseg,i),并對式(4)進(jìn)行了計(jì)算,計(jì)算結(jié)果主要受系統(tǒng)的中繼節(jié)點(diǎn)數(shù)量和攻擊者攻陷節(jié)點(diǎn)百分比的影響。本文所提混合通道出口淆亂的方法將使系統(tǒng)可追蹤率降低。
圖7 顯示了當(dāng)系統(tǒng)中被攻陷節(jié)點(diǎn)百分比從0 增加到50%,路徑中節(jié)點(diǎn)數(shù)分別為3、5、10 時(shí)的可追蹤率變化。由圖7 可知,隨著被攻陷節(jié)點(diǎn)的百分比增加,可追蹤率升高;在相同百分比情況下,路徑中節(jié)點(diǎn)數(shù)量越多,可追蹤率越低,這是因?yàn)殡S著節(jié)點(diǎn)數(shù)量的增加,式(4)分母2η的增大相對較快。圖8顯示了當(dāng)系統(tǒng)中中繼節(jié)點(diǎn)數(shù)量從1 增加到10,被攻陷節(jié)點(diǎn)百分比分別為10%、20%、30%時(shí)的可追蹤率變化。由圖8 可知,路徑中節(jié)點(diǎn)數(shù)越多,可追蹤率越低,相同節(jié)點(diǎn)數(shù)的條件下,被攻陷節(jié)點(diǎn)百分比越低,可追蹤率越低。
式(4)中η表示進(jìn)行通信的2 個(gè)節(jié)點(diǎn)(vs和vd)之間的跳數(shù),例如當(dāng)vs和vd建立的路徑為vs→v2→v3→v4→vd時(shí),則η=4。當(dāng)一個(gè)節(jié)點(diǎn)被攻陷,則這個(gè)節(jié)點(diǎn)與下一跳的路徑段將會(huì)被攻擊者追蹤,即如果x個(gè)連續(xù)節(jié)點(diǎn)被攻陷,那么可能有x跳的路由段被追蹤。Cseg表示被攻陷的路徑段的數(shù)量,Cseg,i表示在被攻陷的第i段路徑中包含的跳數(shù)。例如在路徑vs→v2→v3→v4→vd中,如果vs、v2、v4這3 個(gè)節(jié)點(diǎn)被攻陷,那么攻擊者將可以追蹤到路徑段vs→v2→v3,以及路徑段v4→vd,此時(shí),Cseg=2,Cseg,1=2,Cseg,2=1,在所有節(jié)點(diǎn)都被攻陷的情況下,Cseg=1,Cseg,1=4,
圖7 不同被攻陷節(jié)點(diǎn)百分比下可追蹤率
圖8 不同中繼節(jié)點(diǎn)數(shù)量下可追蹤率
可追蹤率的結(jié)果除了與中繼節(jié)點(diǎn)數(shù)量和被攻陷的節(jié)點(diǎn)數(shù)量有關(guān),還有一個(gè)關(guān)鍵因素是攻擊者獲得的路徑是否連續(xù)。如果攻擊者攻陷的節(jié)點(diǎn)比較多,但因?yàn)楸还ハ莸墓?jié)點(diǎn)不連續(xù),也將難以關(guān)聯(lián)掌握的路徑段進(jìn)行持續(xù)的路徑追蹤。如果攻擊者攻陷3 個(gè)節(jié)點(diǎn)vs、v2、v4,泄露給攻擊者的2 段路徑分別是vs→v2→v3和v4→vd,盡管v3前后2 個(gè)路徑段都已經(jīng)被攻陷,但是只要v3節(jié)點(diǎn)安全,攻擊者就無法判斷獲得的這2 個(gè)路徑段是否屬于同一條路徑。如果攻擊者攻陷節(jié)點(diǎn)v2、v3、v4,同樣是 3 個(gè)節(jié)點(diǎn),泄露給攻擊者的路徑為v2→v3→v4→vd,
根據(jù)混合通道的定義,消息在混合通道中傳輸?shù)穆窂綖镽1→R2→…→Rr→vo→S1→S2→…→Sl。因此,如果混合匿名通道的淆亂節(jié)點(diǎn)vo是安全的,而前后2段匿名路徑均泄露給攻擊者,混合通道的可追蹤率在r=l時(shí)有最小值50%。
本文從SDN 域內(nèi)時(shí)延和與Tor 隱藏服務(wù)的比較2個(gè)方面開展對混合通道的效率評估。
混合通道構(gòu)建的過程與Tor 隱藏服務(wù)的實(shí)現(xiàn)流程部分相似,不同的是,混合通道連接的是2 段不同匿名協(xié)議下的發(fā)送方匿名通道,并用淆亂節(jié)點(diǎn)代替隱藏服務(wù)中引入節(jié)點(diǎn)和匯聚節(jié)點(diǎn)的功能,對比文獻(xiàn)[36,39]中對Tor 隱藏服務(wù)流程的描述。圖9 給出混合通道(左側(cè))與Tor 隱藏服務(wù)(右側(cè))關(guān)鍵流程比較,其中混合通道在a1、c1、e1、f1階段花費(fèi)的時(shí)間低于對應(yīng)的Tor 隱藏服務(wù)在a2、c2、e2、f2階段花費(fèi)的時(shí)間。
圖9 混合匿名通道和Tor 隱藏服務(wù)流程關(guān)鍵步驟比較
表4 針對圖9 中的步驟給出解釋和說明。
表4 圖9 各步驟說明
圖9 和表4 比較本文提出的混合匿名通道協(xié)議和Tor 隱藏服務(wù)協(xié)議的流程,分析影響時(shí)延和計(jì)算開銷的關(guān)鍵路徑,體現(xiàn)出以下優(yōu)點(diǎn)。
1)混合通道協(xié)議使用淆亂節(jié)點(diǎn)代替隱藏服務(wù)中匯聚點(diǎn)的功能,從而減少了Alice 和Bob 分別向匯聚點(diǎn)建立匿名路徑帶來的時(shí)延和開銷,對應(yīng)圖9中的c1、c2步驟。
2)SDN 域內(nèi)的匿名路徑擁有較短的端到端距離,交換機(jī)只做轉(zhuǎn)發(fā)動(dòng)作,在數(shù)據(jù)傳輸階段體現(xiàn)出顯著的速度優(yōu)勢,對應(yīng)圖9 中a1、e1、f1步驟。
3)混合協(xié)議增加了一層加密封裝操作,開銷體現(xiàn)在Alice(加密)和Bob(解密)客戶端,但Bob和Bobo 之間的匿名路徑計(jì)算和建立由計(jì)算能力強(qiáng)的控制器完成,減小了客戶端主機(jī)的開銷。
根據(jù)對混合通道效率理想的估計(jì),如果以Tor電路端到端傳輸時(shí)延t為基準(zhǔn),使用2 條Tor 電路疊加的傳輸時(shí)延將線性增長為2t,混合匿名通道傳輸時(shí)延增長為t+t′,SDN 域內(nèi)匿名通道的建立過程主要取決于控制器性能,通信過程主要取決于底層交換機(jī)設(shè)備轉(zhuǎn)發(fā)速度,因此t′應(yīng)遠(yuǎn)小于t,即t′<<t。
第一部分的實(shí)驗(yàn)設(shè)置,通過采集將一個(gè)數(shù)據(jù)分組從交換機(jī)發(fā)送到控制器,在控制器上做出決策并將數(shù)據(jù)分組返回到交換機(jī)的時(shí)間,獲取混合通道在匿名服務(wù)和匿名路徑請求、淆亂節(jié)點(diǎn)選擇、淆亂路徑計(jì)算階段、Bob 與Bobo 建立起匿名會(huì)話等的控制器計(jì)算時(shí)延。仿真實(shí)驗(yàn)采用集成在Ubuntu 14.04環(huán)境下的Mininet version 2.2.1 模擬器,連接Ryu 控制器組成SDN 仿真網(wǎng)絡(luò),所有虛擬軟件SDN 交換機(jī)均由Open vSwitch 構(gòu)建,Iperf 作為性能測試工具獲取消息的時(shí)間相關(guān)度量?;旌贤ǖ赖脑桶ɑ诳蛻舳说倪B接組件和基于SDN 控制器的匿名應(yīng)用組件,圖10 描繪了在Ryu 控制器基礎(chǔ)上,使用Python 腳本為匿名通道設(shè)計(jì)的應(yīng)用組件。
圖10 基于SDN 控制器的匿名應(yīng)用流程圖
第二部分的實(shí)驗(yàn)設(shè)置,通過測量Tor 隱藏服務(wù)的時(shí)延和本文方案進(jìn)行比較。一方面,為了采集Tor建立三跳電路和建立隱藏服務(wù)時(shí)各個(gè)階段的時(shí)延,實(shí)驗(yàn)部署了由30 個(gè)洋蔥節(jié)點(diǎn)組成的局域網(wǎng)私有Tor環(huán)境,包含2 臺目錄服務(wù)器和2 臺隱藏目錄服務(wù)器,可提供 Tor 服務(wù)和 Tor 隱藏服務(wù)。Tor 版本Tor-0.2.9.15,配置一臺HTTP 服務(wù)器作為提供文件下載服務(wù)的匿名接收方,分配100 MB/s 帶寬以盡量避免服務(wù)器容量成為實(shí)驗(yàn)下載的瓶頸。另一方面,為了獲得互聯(lián)網(wǎng)隱藏服務(wù)時(shí)延數(shù)據(jù),配置代理網(wǎng)絡(luò)后,將該HTTP 服務(wù)器發(fā)布為隱藏服務(wù),域名以及端口為vh3g64sdpbmj6uls.onion:9046,客戶端分別使用普通域名和隱藏服務(wù)域名2 種訪問方式,采集500 KB 大小文件的下載時(shí)間。
混合通道的下載時(shí)間使用兩部分實(shí)驗(yàn)的疊加結(jié)果,盡管沒有部署真實(shí)的SDN 環(huán)境,但是單SDN域內(nèi)的地理位置跨度較小,匿名路由產(chǎn)生的時(shí)延主要來自控制器算法開銷,仿真結(jié)果有參考價(jià)值。實(shí)驗(yàn)的結(jié)果分別如圖11 和圖12 所示。
圖11 3 種匿名通道的路由建立時(shí)延比較
圖11 描繪了匿名電路建立階段時(shí)延隨中繼節(jié)點(diǎn)個(gè)數(shù)變化產(chǎn)生的結(jié)果,數(shù)據(jù)來自mininet 仿真和局域網(wǎng)Tor。由于混合匿名通道內(nèi)路徑建立由控制器完成,因此在匿名路徑建立階段,時(shí)延性優(yōu)于Tor和Tor 隱藏服務(wù)。由于Tor 的匿名通道建立需要與每一跳洋蔥節(jié)點(diǎn)協(xié)商密鑰,因此通道建立時(shí)間隨著中繼數(shù)量的增加有明顯增加,但在混合通道內(nèi)增加較為緩和,因?yàn)楸M管發(fā)送方連接到淆亂節(jié)點(diǎn)的路徑建立時(shí)間也隨之增加,但SDN 域內(nèi)匿名通道建立的時(shí)延不會(huì)受到影響。
由于SND 匿名通道具有更少的加密操作和更短的傳輸路徑,相比Tor 隱藏服務(wù),混合通道實(shí)現(xiàn)了更低的時(shí)延,結(jié)合仿真結(jié)果,下載時(shí)間相較普通Tor 電路僅增加15%~20%,如圖12 所示。
圖12 3 種匿名通道的文件下載時(shí)延比較
本文介紹了一種混合匿名通道機(jī)制,降低攻擊者對匿名網(wǎng)絡(luò)的追蹤率,適用于對接收方匿名要求較高的匿名應(yīng)用?;旌贤ǖ滥涿麢C(jī)制的有效性在于組合了傳統(tǒng)互聯(lián)網(wǎng)絡(luò)匿名通道與SDN 匿名通道,SDN 域內(nèi)淆亂機(jī)制的應(yīng)用實(shí)現(xiàn)了通道出口節(jié)點(diǎn)的隱藏。使用部署廣、用戶多的公開匿名系統(tǒng)作為信息匿名傳輸?shù)囊画h(huán),滿足了匿名應(yīng)用對地域廣泛性的需要;SDN 自治域內(nèi)匿名通道傳輸時(shí)延低、帶寬高,網(wǎng)絡(luò)狀態(tài)的動(dòng)態(tài)淆亂有利于抵制攻擊者攻擊。與Tor 相比,混合通道獲得了更高的匿名度和更低的可追蹤率,增加的時(shí)延非常有限。有跡象表明,更多的國家可能尋求建立國家云和Web 服務(wù)提供商,以及獨(dú)立的互聯(lián)網(wǎng)線路,這些線路會(huì)盡可能少地跨越其他國家或大洲,因此,SDN 自治域內(nèi)匿名路由和出口淆亂方法有其應(yīng)用價(jià)值。下一步的工作將增加跨SDN 子網(wǎng)和SDN 域的設(shè)計(jì),隨著未來SDN 域的數(shù)量和域間距離的增加,性能優(yōu)勢會(huì)更加明顯,混合匿名通道可以在更廣的范圍內(nèi),提供低時(shí)延、帶寬密集應(yīng)用的匿名傳輸。