999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于可控重連的Tor流量隱蔽

2021-04-15 03:48:18徐婉冰王軼駿姜開(kāi)達(dá)
關(guān)鍵詞:檢測(cè)

徐婉冰 王軼駿 薛 質(zhì) 姜開(kāi)達(dá)

(上海交通大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 上海 200240)

0 引 言

隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,暗網(wǎng)的規(guī)模也快速增大。暗網(wǎng)在廣義上指無(wú)法被搜索引擎收錄內(nèi)容的站點(diǎn),目前最流行的訪(fǎng)問(wèn)暗網(wǎng)的方法是Tor[1]。Tor是一種暗網(wǎng)協(xié)議,通過(guò)在Tor網(wǎng)絡(luò)的入口和出口節(jié)點(diǎn)間隨機(jī)選擇若干匿名中繼節(jié)點(diǎn)建立加密鏈路,實(shí)現(xiàn)類(lèi)似洋蔥的逐層加密網(wǎng)絡(luò)。

由于Tor具有雙向匿蹤特性,即消息的發(fā)送者和接收者無(wú)法知道彼此的IP地址,它可被用于抵御網(wǎng)絡(luò)監(jiān)控、分享私密信息、瀏覽被禁網(wǎng)站等,因此一些國(guó)家或企業(yè)會(huì)禁用Tor,最直接的方法是封鎖Tor目錄服務(wù)器和所有已知節(jié)點(diǎn)的IP。為了應(yīng)對(duì)IP封鎖,誕生了Tor bridge(網(wǎng)橋)[2],它本質(zhì)是Tor的入口節(jié)點(diǎn),部署在不受監(jiān)控的區(qū)域。由于官方不會(huì)公開(kāi)完整的bridge列表,所以ISP無(wú)法徹底封鎖bridge。

然而審查者仍可以基于TLS handshake的指紋特征檢測(cè)Tor流量及其他可疑流量[3]。對(duì)此,研究者們提出了Pluggable Transports(PT),一種用于隱藏Tor流量的網(wǎng)橋工具。PT連接Tor客戶(hù)端和Tor網(wǎng)橋,通過(guò)混淆和偽裝等手段,使Tor流量看上去是普通的協(xié)議,從而躲避檢測(cè)。

當(dāng)前,國(guó)外對(duì)于PT流量檢測(cè)的研究主要從熵檢測(cè)、語(yǔ)義分析和機(jī)器學(xué)習(xí)三方面開(kāi)展,檢測(cè)的目標(biāo)以Tor官網(wǎng)建議的Meek[5-7]、Obfs系列、FTE系列為主,在理想環(huán)境下都能以較高準(zhǔn)確率進(jìn)行識(shí)別。相比檢測(cè),近年來(lái)幾乎沒(méi)有新的流量隱蔽方案。同時(shí),國(guó)內(nèi)對(duì)Tor流量隱蔽問(wèn)題[4]整體缺乏研究。本文主要貢獻(xiàn)如下:

(1) 研究了已有的PT方案,分析了常見(jiàn)檢測(cè)方法的優(yōu)缺點(diǎn);

(2) 不同于以往僅對(duì)通信內(nèi)容加以混淆偽裝的隱蔽方案,本文創(chuàng)新性地提出了在TCP層面修改連接特征的流量隱蔽思路,表明依賴(lài)連接時(shí)長(zhǎng)和連接數(shù)量作為特征的機(jī)器學(xué)習(xí)檢測(cè)算法是存在弱點(diǎn)的;

(3) 設(shè)計(jì)了基于TCP轉(zhuǎn)發(fā)的可控重連算法,實(shí)驗(yàn)分析了該算法對(duì)連接時(shí)長(zhǎng)和數(shù)據(jù)包大小的影響,為后續(xù)隱蔽信道的檢測(cè)和研究提供了新的方向。

1 PT方案及其檢測(cè)

PT通過(guò)對(duì)Tor流量進(jìn)行混淆、加密、偽裝成正常協(xié)議的字段等方法,消除Tor流量的特征。PT方案和其檢測(cè)方法介紹如下。

1.1 Meek

Meek的原理是以未禁的協(xié)議作為隧道使隧道內(nèi)的Tor流量通過(guò)。它采用了域前置(Domain Fronting)技術(shù)[8],利用HTTPS和CDN繞過(guò)審查。Domain Fronting指的是在DNS請(qǐng)求數(shù)據(jù)包和TLS的SNI字段使用未被禁止的前置域名,而在HTTP Host頭部字段使用被審查者禁止的隱藏域名。審查者只能看到前置域名,而看不到被TLS加密的HTTP中的域名。數(shù)據(jù)包到達(dá)前置域服務(wù)器(比如CDN)后,服務(wù)器解密數(shù)據(jù)包,并將其轉(zhuǎn)發(fā)到隱藏域。Meek的原理如圖1所示。

圖1 Meek原理圖

針對(duì)Meek的檢測(cè)以機(jī)器學(xué)習(xí)為主。Shahbar等[9]通過(guò)C4.5決策樹(shù)分類(lèi)器,分析連接的時(shí)間跨度、連接的數(shù)量和重復(fù)性、傳輸數(shù)據(jù)量和建立的連接的數(shù)量,或者包大小、發(fā)出的字節(jié)數(shù)、最大的包大小[10],進(jìn)行學(xué)習(xí)后可以識(shí)別出Meek流量。Fifield等[5]指出,正常HTTPS和Meek的TCP連接的總持續(xù)時(shí)間不同,TCP payload長(zhǎng)度分布比例也不同。Cuzzocrea等[11]采用state-of-the-art算法(包括J48、J48Consolidated、BayesNet、jRip、OneR、REPTree法)研究了Tor流量分類(lèi)問(wèn)題。此外,Meek的熵值特性[12]在機(jī)器學(xué)習(xí)的檢測(cè)中也有一定效果。

除了連接相關(guān)的特征外,呼吸包也是Meek的一個(gè)特點(diǎn)。Meek無(wú)法由服務(wù)器主動(dòng)推送消息給客戶(hù)端[12],客戶(hù)端為了獲取數(shù)據(jù)必須主動(dòng)向Tor網(wǎng)橋發(fā)送大量心跳數(shù)據(jù)包,55%的TCP ACK包間隔小于10 ms,基本上間隔都小于1 s。

1.2 Obfs系列

Obfs系列包括Obfs2、Obfs3、Obfs4[13]和Scramblesuit[14],目前最常使用的是Obfs4。其原理是對(duì)Tor流量加密,使之看起來(lái)像隨機(jī)字節(jié),避免基于黑名單的指紋檢測(cè)。且Obfs4通過(guò)密鑰協(xié)商可以對(duì)抗active-probing attacks[15],防止審查者利用連接發(fā)現(xiàn)網(wǎng)橋。

在檢測(cè)方面,Wang等[12]發(fā)現(xiàn)基于熵的檢測(cè)和簡(jiǎn)單啟發(fā)式算法(如長(zhǎng)度檢測(cè))進(jìn)行聯(lián)合檢測(cè)可以識(shí)別Obfs流量。熵值的計(jì)算公式是:

(1)

式中:pi表示第i個(gè)字符出現(xiàn)的頻率,即該字符出現(xiàn)的次數(shù)除以總的字符數(shù)。熵的大小可以反映出一個(gè)數(shù)據(jù)包的字符分布是否正常。由于Obfs系列直接對(duì)傳輸?shù)膬?nèi)容進(jìn)行加密,因此整體流量都有著較高的熵值。而正常的協(xié)議,包括如TLS這樣的加密協(xié)議,在握手時(shí)往往有著熵值更低的明文頭部。檢測(cè)者可以對(duì)應(yīng)用層第一個(gè)數(shù)據(jù)包的前2 048個(gè)字節(jié)使用熵檢測(cè),實(shí)現(xiàn)對(duì)Tor的攔截。其他檢測(cè)方法還包括數(shù)據(jù)包長(zhǎng)度檢測(cè)和截尾序貫概率比檢驗(yàn)(truncated SPRT)[16]等。

1.3 FTE系列

FTE系列包括FTE(Format-Transforming Encryption)[6,17-18]、Stegotorus[19]、SkypeMorph[20]、CensorSpoofer[19]、Marionette[21]等。其原理是通過(guò)模仿其他協(xié)議的格式,使審查者對(duì)流量錯(cuò)誤分類(lèi),從而達(dá)到躲避審查的目的。FTE通過(guò)簡(jiǎn)單模仿HTTP流量的格式躲避審查;Stegotorus在Obfs的基礎(chǔ)上對(duì)包切分,改變包大小和時(shí)間、建立多個(gè)連接,并采用隱寫(xiě)技術(shù),模仿HTTP、Skype、Ventrilo等合法流量;SkypeMorph偽裝成Skype視頻流量;Marionette在FTE的基礎(chǔ)上加入帶有隨機(jī)性的狀態(tài)轉(zhuǎn)移,使之對(duì)于HTTP協(xié)議的模仿更逼真。

FTE只是簡(jiǎn)單模仿協(xié)議的格式,并沒(méi)有模仿協(xié)議的語(yǔ)義。所以,Houmansadr等[22]提出了基于語(yǔ)義的方法,檢測(cè)流量與預(yù)期行為之間的差異,比如服務(wù)器能否正確返回404錯(cuò)誤等。

另一方面,由于FTE的URI字段是直接加密形成的,所以也可以通過(guò)熵檢測(cè)[12]來(lái)識(shí)別FTE流量。相比正常HTTP包中的可見(jiàn)字符及英文單詞,F(xiàn)TE偽裝的HTTP包有著更高的熵值。

1.4 檢測(cè)技術(shù)匯總

檢測(cè)技術(shù)[23]主要可以分為以下四類(lèi):(1) 基于語(yǔ)義的檢測(cè);(2) 基于熵值的檢測(cè);(3) 基于機(jī)器學(xué)習(xí)的檢測(cè)[24];(4) 基于DPI與防火墻的組合檢測(cè)[25-26],可以重建完整數(shù)據(jù)流,分析具體協(xié)議,對(duì)數(shù)據(jù)包進(jìn)行關(guān)鍵字識(shí)別,并主動(dòng)探測(cè)可疑服務(wù)器,避免誤報(bào)。這四類(lèi)檢測(cè)技術(shù)中,基于熵值和DPI的檢測(cè)本質(zhì)都是對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行分析,因此PT在進(jìn)一步完善后(例如冗余處理)可以針對(duì)性地繞過(guò)它們的檢測(cè);基于語(yǔ)義的檢測(cè)本質(zhì)是對(duì)客戶(hù)端與服務(wù)器的交互過(guò)程進(jìn)行合理性判斷,PT同樣可以在精心完善后實(shí)現(xiàn)繞過(guò);而基于機(jī)器學(xué)習(xí)的檢測(cè)由于分析的是TCP連接層面的特征,層次更低,改變特征就更加困難,因而這種檢測(cè)正在逐漸成為主流的檢測(cè)手段。本文針對(duì)這種TCP層面的檢測(cè)提出了可控重連算法,通過(guò)修改TCP連接時(shí)長(zhǎng)和包大小分布,從而形成可定制的TCP連接特征。

2 流量隱蔽架構(gòu)

圖2為T(mén)or流量隱蔽系統(tǒng)的部署結(jié)構(gòu),系統(tǒng)部署在Tor客戶(hù)端的下層,包括PT客戶(hù)端和PT服務(wù)端,充當(dāng)類(lèi)似Shadowsocks的角色。用戶(hù)、Tor客戶(hù)端、PT客戶(hù)端位于被審查的區(qū)域內(nèi),而PT服務(wù)端和Tor網(wǎng)絡(luò)位于審查區(qū)域外。

圖2 系統(tǒng)部署示意圖

為了方便后文描述算法,圖3展示了請(qǐng)求數(shù)據(jù)的流向,響應(yīng)數(shù)據(jù)反之亦然。

圖3 請(qǐng)求數(shù)據(jù)流示意圖

Tor程序(不使用Tor時(shí),瀏覽器產(chǎn)生常規(guī)HTTP/HTTPS請(qǐng)求)將原始請(qǐng)求提交給本地Socks5客戶(hù)端代理;Socks5客戶(hù)端再以Socks5協(xié)議的格式交給PT客戶(hù)端;隨后PT客戶(hù)端在{Socks5{原始請(qǐng)求}}的TCP流基礎(chǔ)上,加上流量隱蔽系統(tǒng)PT的封裝,繞過(guò)審查系統(tǒng)到達(dá)PT服務(wù)端;之后PT服務(wù)端恢復(fù)出{Socks5{原始請(qǐng)求}};最后同在代理服務(wù)器上的Socks5服務(wù)端解析Socks5請(qǐng)求并轉(zhuǎn)發(fā)到Tor網(wǎng)絡(luò)或目標(biāo)網(wǎng)站。

3 可控重連算法

根據(jù)Tor官方的文檔[27],Tor采用連接復(fù)用,在Tor代理中對(duì)多條TCP連接使用同一條TCP連接,因此連接時(shí)長(zhǎng)比一般通信更長(zhǎng)。機(jī)器學(xué)習(xí)檢測(cè)算法往往把連接時(shí)長(zhǎng)和數(shù)據(jù)包大小等作為重要的檢測(cè)指標(biāo)。由此本文提出了可控重連的算法。一方面,從TCP重連的角度,自定義PT客戶(hù)端與PT服務(wù)端之間的連接時(shí)長(zhǎng);另一方面,從數(shù)據(jù)包大小可控的角度,基于已有數(shù)據(jù)包的分布比例,計(jì)算轉(zhuǎn)發(fā)數(shù)據(jù)包的大小。

3.1 重連算法

圖4顯示了TCP重連的基本過(guò)程,涉及以下三個(gè)重要階段。

圖4 新舊連接示意圖

1) 新連接的建立。Tor建立新鏈路或?yàn)g覽器產(chǎn)生新請(qǐng)求時(shí),Socks5客戶(hù)端與PT客戶(hù)端建立連接x,隨后PT客戶(hù)端與PT服務(wù)端建立連接a,PT服務(wù)端也與Socks5服務(wù)端建立連接y。在后續(xù)的重連過(guò)程中,連接x和連接y保持不變。

2) 重連的握手。PT客戶(hù)端到達(dá)預(yù)期連接時(shí)長(zhǎng)后啟動(dòng)重連,暫停向PT服務(wù)端的數(shù)據(jù)發(fā)送,對(duì)PT服務(wù)端新建連接b,并協(xié)議握手告知PT服務(wù)端,新連接b即將替換舊連接a。

3) 舊連接的揮手。PT客戶(hù)端發(fā)送FIN包關(guān)閉舊連接a,服務(wù)端也發(fā)送FIN關(guān)閉連接a后,兩者正式改用新連接b來(lái)通信。

為了兼顧轉(zhuǎn)發(fā)效率,PT服務(wù)端的主線(xiàn)程負(fù)責(zé)接收PT客戶(hù)端的新連接請(qǐng)求,而各個(gè)子線(xiàn)程(或稱(chēng)“轉(zhuǎn)發(fā)線(xiàn)程”)負(fù)責(zé)進(jìn)行PT客戶(hù)端與Socks5服務(wù)端之間的雙向轉(zhuǎn)發(fā)。

多線(xiàn)程的使用會(huì)導(dǎo)致同步問(wèn)題,例如主線(xiàn)程中新連接b建立的同時(shí),PT服務(wù)端的子線(xiàn)程可能正在進(jìn)行舊連接a上的數(shù)據(jù)收發(fā)。因此,PT服務(wù)端不可能在新連接b建立后,立刻完成從a到b的新舊替換,所以連接a中剩余數(shù)據(jù)的讀取和連接a的完整關(guān)閉需要按照TCP四次揮手的原理進(jìn)行設(shè)計(jì)。

本文的重連算法中,對(duì)于舊連接a,PT服務(wù)端在第三階段收到的來(lái)自PT客戶(hù)端的FIN包,標(biāo)志著從PT客戶(hù)端到Socks5服務(wù)端方向的數(shù)據(jù)流動(dòng)的停止;而PT客戶(hù)端收到PT服務(wù)端回復(fù)的FIN包后,才標(biāo)志著從Socks5服務(wù)端到PT客戶(hù)端方向的數(shù)據(jù)流動(dòng)的停止。此后,雙方的轉(zhuǎn)發(fā)才正式使用新連接b進(jìn)行。

重連算法的關(guān)鍵是PT服務(wù)端需要正確鑒別PT客戶(hù)端在對(duì)其建立/關(guān)閉連接時(shí)的意圖,區(qū)分來(lái)自PT客戶(hù)端的新連接請(qǐng)求/FIN包,是重連過(guò)程中新舊連接的切換所致,還是Tor/瀏覽器在進(jìn)行常規(guī)連接的建立/關(guān)閉。

對(duì)此,本文算法的核心是,PT服務(wù)端維護(hù)一個(gè)全局map,以連接y的描述符作為key,再以與PT客戶(hù)端當(dāng)前連接的描述符作為value。第一階段建立連接a時(shí),PT服務(wù)端就將連接y的信息(即key)告訴PT客戶(hù)端,那么在第二階段PT客戶(hù)端建立新連接b時(shí),只需將連接y的信息反饋給PT服務(wù)端,就可以使其知道新舊連接a與b的對(duì)應(yīng)關(guān)系,進(jìn)入重連流程。從而,當(dāng)PT服務(wù)端的轉(zhuǎn)發(fā)線(xiàn)程收到關(guān)閉連接的請(qǐng)求時(shí),也可以通過(guò)查詢(xún)value是否改變,判斷當(dāng)前是否正處于重連流程中。另外,PT服務(wù)端使用了全局互斥鎖,確保握手過(guò)程不會(huì)在多線(xiàn)程運(yùn)行中被其他連接信息或重連過(guò)程打斷,也避免了map的讀寫(xiě)相關(guān)性問(wèn)題。

圖5描述了階段1的連接建立過(guò)程,關(guān)鍵步驟③、步驟⑤實(shí)現(xiàn)了PT客戶(hù)端與PT服務(wù)端之間傳遞連接y的信息。

圖5 新連接的建立

圖6描述了階段2(步驟①-步驟③)的重連過(guò)程和階段3(步驟④-步驟⑤)的舊連接關(guān)閉過(guò)程。

圖6 重連握手和舊連接揮手

為了使描述更清晰,以PT服務(wù)端主線(xiàn)程處理來(lái)自PT客戶(hù)端的連接請(qǐng)求為例,算法1給出了圖5(步驟②-步驟⑤)和圖6(步驟①-步驟③)PT服務(wù)端的偽代碼。

算法1PT服務(wù)端的main函數(shù)

輸入:收發(fā)PT客戶(hù)端。

輸出:Socks5服務(wù)端的流量。

top:

1. conn_PTc←accept_conn_from_PT_client()

2. mutex_lock()

3. handshake_msg←recv_from_PT_client()

4.ifhandshake_msg=NEW_CONNthen

5. conn_Ss←connect_Socks_server()

6. //為雙向數(shù)據(jù)傳輸創(chuàng)建線(xiàn)程

create_thread(conn_PTc,conn_Ss)

7. add_to_map {conn_Ss:conn_PTc}

8. tell_PT_client(info=conn_Ss)

9. mutex_unlock()

10.else

//重連握手

11. //從msg里提取conn_Ss信息

conn_Ss←extract(handshake_msg)

12. old_conn_PTc←query_map(key=conn_Ss)

13.ifconn_PTc≠old_conn_PTcthen

14. //用current conn_PTc替換舊值

renew_map {conn_Ss:conn_PTc}

15. tell_PT_client(MAP_RENEW_OK)

16. mutex_unlock()

17.elseerror()

18.endif

19.endif

20.gototop

3.2 可控算法

數(shù)據(jù)包可控算法研究了在已知正常流量的數(shù)據(jù)包大小分布的情況下,如何改變轉(zhuǎn)發(fā)數(shù)據(jù)包的大小,使其與正常流量相似。由于改變一個(gè)數(shù)據(jù)包大小的方式只有拆分和冗余兩種,故算法的目標(biāo)是在使轉(zhuǎn)發(fā)數(shù)據(jù)包大小符合正常流量分布比例的同時(shí),盡可能減小拆分和冗余對(duì)信道與時(shí)間的浪費(fèi)。

設(shè)通過(guò)抓包等前期手段,已知一段時(shí)間內(nèi)正常流量的數(shù)據(jù)包大小分布如圖7(a)所示,大小在ci-1~ci范圍(記為區(qū)間i)的有yi個(gè)數(shù)據(jù)包(共n個(gè)區(qū)間),當(dāng)前待轉(zhuǎn)發(fā)的原始數(shù)據(jù)包大小為x,算法完成后實(shí)際發(fā)送的稱(chēng)為結(jié)果數(shù)據(jù)包。

(a) 正常流量的數(shù)據(jù)包大小分布

(b) 權(quán)值序列與當(dāng)前數(shù)據(jù)包的關(guān)系圖7 當(dāng)前數(shù)據(jù)包與正常流量分布和權(quán)值序列的關(guān)系

算法需要考慮如下幾點(diǎn):(1) 結(jié)果數(shù)據(jù)包的大小分布應(yīng)當(dāng)接近正常流量數(shù)據(jù)包的大小分布,同時(shí)要保持一定的隨機(jī)性;(2) 為了節(jié)省信道資源,需要適當(dāng)減少拆分和冗余次數(shù);(3) 如果要冗余處理,應(yīng)當(dāng)避免結(jié)果數(shù)據(jù)包的大小和原始數(shù)據(jù)包相差過(guò)多,比如原始數(shù)據(jù)包大小在區(qū)間i內(nèi),那么同樣條件下計(jì)算結(jié)果數(shù)據(jù)包在區(qū)間i+1的概率應(yīng)當(dāng)比在區(qū)間i+5的概率大;(4) 如果要拆分,將一個(gè)數(shù)據(jù)包拆成比原始數(shù)據(jù)包略小的包意義不大,反而造成浪費(fèi),所以假設(shè)原始數(shù)據(jù)包在區(qū)間i內(nèi),那么結(jié)果數(shù)據(jù)包在區(qū)間i-1的概率應(yīng)該適當(dāng)減小。

根據(jù)上述要求,算法的過(guò)程如下:

1) 找到x所屬的大小范圍xi∈[ci-1,ci),即區(qū)間i。

2) 根據(jù)i,對(duì)表示正常數(shù)據(jù)包大小分布的y序列乘以一定權(quán)值得到y(tǒng)′序列,用來(lái)計(jì)算臨時(shí)概率:

(2)

3) 根據(jù)y′序列,按概率生成結(jié)果數(shù)據(jù)包所屬的區(qū)間i′,例如結(jié)果數(shù)據(jù)包仍在i區(qū)間的概率為:

(3)

隨后根據(jù)i′和i的大小關(guān)系決定拆分或者冗余:

(1) 如果i′等于i,則直接發(fā)送,無(wú)須處理;(2) 如果i′落在大于i區(qū)間,表明結(jié)果數(shù)據(jù)包比原始數(shù)據(jù)包大,應(yīng)加冗余;(3) 如果i′落在小于i區(qū)間,則需要拆分成兩個(gè)包,計(jì)算原始數(shù)據(jù)包和預(yù)期結(jié)果數(shù)據(jù)包大小的差值,得到預(yù)期結(jié)果包1(區(qū)間i)和差值結(jié)果包2(由差值確定)。由于差值結(jié)果包2并不是主動(dòng)計(jì)算概率得到,而是被動(dòng)生成的,所以在對(duì)應(yīng)區(qū)間的y序列值減1,減小后續(xù)數(shù)據(jù)包落入該區(qū)間的概率。

算法中值得關(guān)注的是β和α序列的取值,如圖7(b)所示,假設(shè)原始數(shù)據(jù)包x在c3~c4范圍,計(jì)算y′序列時(shí)的權(quán)值序列應(yīng)當(dāng)如圖中那樣,β應(yīng)小于1,減少不必要的拆包;α序列應(yīng)當(dāng)是遞減序列,在α0處是最大值,并逐漸趨近于一個(gè)略小于1的值b。本文算法中,α序列采用式(4)得到,其中Δi指區(qū)間序號(hào)與原始數(shù)據(jù)包所屬區(qū)間i的差值:

αΔi=ae-Δi+b(a>1,0

(4)

即α0=a+b,α1=ae-1+b,α2=ae-2+b,…。

由此得到算法第2步中計(jì)算y′序列時(shí)的權(quán)值。

算法2描述了生成結(jié)果數(shù)據(jù)包的大致過(guò)程。

算法2根據(jù)正常數(shù)據(jù)包大小生成結(jié)果數(shù)據(jù)包

輸入:原始包大小before_size;分布序列y在區(qū)間i有yi個(gè)正常數(shù)據(jù)包;參數(shù)β、a、b。

輸出:{after_i,another_i},結(jié)果數(shù)據(jù)包所屬的區(qū)間(假設(shè)共有N個(gè)區(qū)間)。

1. before_i←before_size.region()

2.y′ ←deepcopy(y)

4.forj=0:N-before_i-1do

6.endfor

7. //根據(jù)y′序列和隨機(jī)值產(chǎn)生結(jié)果數(shù)據(jù)包的區(qū)間

after_i←rand_region(y′)

8.ifafter_i=before_ithen

9.return{after_i,None}

//直接發(fā)送

10.elseifafter_i>before_ithen

11.return{after_i,None}

//加冗余

12.else

//拆分成兩個(gè)數(shù)據(jù)包

13. another_i←calc_difference_i(before_size,after_i)

14. //因被動(dòng)產(chǎn)生的結(jié)果包調(diào)整y序列

y.adjust(another_i)

15.return{after_i,another_i}

16.endif

4 實(shí) 驗(yàn)

根據(jù)可控重連算法,分別針對(duì)連接時(shí)長(zhǎng)和數(shù)據(jù)包大小的計(jì)算進(jìn)行了如下實(shí)驗(yàn)。

圖8對(duì)比了重連前后的連接時(shí)長(zhǎng)。實(shí)驗(yàn)在局域網(wǎng)的兩臺(tái)主機(jī)上完成,主機(jī)1訪(fǎng)問(wèn)視頻網(wǎng)站(2分鐘視頻)產(chǎn)生連接時(shí)長(zhǎng)超過(guò)10 s的原始流量。使用重連算法時(shí),主機(jī)1部署PT客戶(hù)端(PT客戶(hù)端對(duì)超過(guò)10 s的連接啟動(dòng)重連),主機(jī)2部署PT服務(wù)端,配合PT客戶(hù)端實(shí)現(xiàn)重連。

圖8 重連前后的連接時(shí)長(zhǎng)對(duì)比圖

可以看出,不使用重連時(shí),存在超過(guò)10 s的連接,最長(zhǎng)的持續(xù)了整個(gè)實(shí)驗(yàn)過(guò)程;而使用重連算法后,時(shí)長(zhǎng)在10~20 s范圍的連接數(shù)量增加(實(shí)際上時(shí)長(zhǎng)集中于10 s左右,且都小于11 s),超過(guò)此范圍的連接數(shù)量為0,實(shí)現(xiàn)了秒級(jí)精度的控制,表明重連算法取得了理想效果。

圖9對(duì)比了數(shù)據(jù)包大小可控算法前后的數(shù)據(jù)包大小與累積分布函數(shù)CDF的關(guān)系,實(shí)驗(yàn)中參數(shù)β取0.6,a取2,b取0.8。為使仿真結(jié)果更貼近實(shí)際,實(shí)驗(yàn)中原始數(shù)據(jù)包CDF的來(lái)源為3分鐘內(nèi)訪(fǎng)問(wèn)YouTube視頻的Tor下行流量,正常流量CDF來(lái)源為3分鐘內(nèi)直接訪(fǎng)問(wèn)YouTube視頻的下行流量。

圖9 數(shù)據(jù)包大小可控算法結(jié)果圖

可以看出,原始數(shù)據(jù)包和結(jié)果數(shù)據(jù)包的比例分布在大于1 280字節(jié)時(shí)有較大不同,而結(jié)果數(shù)據(jù)包和正常流量分布的折線(xiàn)非常接近,說(shuō)明可控算法對(duì)原始數(shù)據(jù)包的大小進(jìn)行了有效調(diào)整。

可用余弦相似度進(jìn)一步分析結(jié)果流量與正常流量的接近程度,給定兩個(gè)序列A和B,其余弦相似性θ由點(diǎn)積和向量長(zhǎng)度給出,越接近1表示越相似:

(5)

表1給出了不同β、a、b取值時(shí)的結(jié)果包數(shù)量、總計(jì)冗余次數(shù)、總計(jì)冗余跨度(比如原始包在區(qū)間i,結(jié)果包在區(qū)間i+3,則冗余區(qū)間跨度為3)和相似度值。原始數(shù)據(jù)包數(shù)量為7 741個(gè)。

表1 不同β,a,b取值的結(jié)果數(shù)據(jù)包

以β取0.6、a取2、b取0.8為例,約8%的數(shù)據(jù)包經(jīng)歷了拆分,不到一半的數(shù)據(jù)包經(jīng)歷了冗余處理,平均每次冗余跨1至2個(gè)區(qū)間,這樣的拆分和冗余處理是可以接受的,同時(shí)相似度也較高,達(dá)到了預(yù)期需求。表1中,β取值無(wú)明顯的影響;a的增大會(huì)減少拆分和冗余情況,但會(huì)降低相似度;b的增大會(huì)減少拆分,增加冗余,提高相似度;若不考慮權(quán)值因素(即表中最后一行)直接按照正常流量的分布比例計(jì)算概率,會(huì)導(dǎo)致更多的拆分和冗余出現(xiàn)。

5 結(jié) 語(yǔ)

本文分析了已有的Tor隱蔽方案和對(duì)應(yīng)的檢測(cè)算法;針對(duì)TCP連接層面的Tor流量特征提出了一種新的流量隱蔽思路;通過(guò)可控重連算法實(shí)現(xiàn)了對(duì)TCP連接時(shí)長(zhǎng)的控制;研究了調(diào)整數(shù)據(jù)包大小使其符合正常流量數(shù)據(jù)包大小分布的方案;為流量隱蔽的研究提供了新方向。

在本文基礎(chǔ)上,未來(lái)可從以下兩個(gè)方向開(kāi)展進(jìn)一步研究:(1) 高丟包率的網(wǎng)絡(luò)環(huán)境會(huì)影響TCP連接的數(shù)據(jù)通信和四次揮手,使連接時(shí)長(zhǎng)超過(guò)預(yù)期。未來(lái)可以研究惡劣網(wǎng)絡(luò)環(huán)境的優(yōu)化重連算法,除了從重連協(xié)議的角度進(jìn)行設(shè)計(jì),也可以引入對(duì)歷史實(shí)際重連時(shí)長(zhǎng)的統(tǒng)計(jì),計(jì)算重連計(jì)時(shí)的提前量。(2) 研究不同應(yīng)用在連接時(shí)長(zhǎng)和數(shù)據(jù)包分布上的規(guī)律,設(shè)計(jì)能夠定制連接特征的可控重連算法。將優(yōu)化后的算法部署到海外云服務(wù)器上,加上基本的混淆功能,測(cè)試實(shí)際Tor流量和偽裝后流量的差別。

猜你喜歡
檢測(cè)
QC 檢測(cè)
“不等式”檢測(cè)題
“一元一次不等式”檢測(cè)題
“一元一次不等式組”檢測(cè)題
“幾何圖形”檢測(cè)題
“角”檢測(cè)題
“有理數(shù)的乘除法”檢測(cè)題
“有理數(shù)”檢測(cè)題
“角”檢測(cè)題
“幾何圖形”檢測(cè)題
主站蜘蛛池模板: 色天堂无毒不卡| 亚洲精品天堂自在久久77| 91精品伊人久久大香线蕉| 国产最爽的乱婬视频国语对白| 国产精品免费电影| 91精品国产91久久久久久三级| 人妻无码一区二区视频| 狠狠色噜噜狠狠狠狠色综合久| 狠狠色狠狠色综合久久第一次| WWW丫丫国产成人精品| 国产精品对白刺激| 在线免费不卡视频| 亚洲六月丁香六月婷婷蜜芽| 国产夜色视频| 国产91无码福利在线| 国产福利在线免费| 中国国产一级毛片| 四虎亚洲精品| 中文字幕免费在线视频| 四虎永久在线| 国产精品高清国产三级囯产AV| 国产精品一线天| 久久天天躁狠狠躁夜夜2020一| 欧美色视频在线| 亚洲综合色吧| 亚洲一区二区约美女探花| 综合色区亚洲熟妇在线| 欧美日韩资源| 58av国产精品| 国产视频大全| 超碰91免费人妻| 国产幂在线无码精品| 免费久久一级欧美特大黄| 国产乱人伦偷精品视频AAA| 亚洲婷婷丁香| 亚洲熟女中文字幕男人总站| 欧美日韩第二页| 亚洲爱婷婷色69堂| 亚洲人成在线精品| 天天综合天天综合| 奇米精品一区二区三区在线观看| 国产va欧美va在线观看| 亚洲黄色视频在线观看一区| 日韩在线网址| 亚洲精品国产乱码不卡| 日韩人妻精品一区| 任我操在线视频| 亚洲品质国产精品无码| 国产毛片网站| 亚洲综合精品香蕉久久网| 女同国产精品一区二区| 亚洲天堂视频网| 一级毛片在线免费视频| 国产成人免费手机在线观看视频 | 波多野结衣一区二区三区四区视频| 久久99精品国产麻豆宅宅| 精品五夜婷香蕉国产线看观看| 久久中文电影| 一级成人欧美一区在线观看 | 午夜无码一区二区三区| 成年免费在线观看| 国产精品永久久久久| 日韩精品亚洲精品第一页| 亚洲精品制服丝袜二区| 尤物特级无码毛片免费| 呦视频在线一区二区三区| 久久人妻系列无码一区| 91精品网站| 激情综合五月网| 在线观看欧美国产| 欧美不卡视频一区发布| 青青操国产视频| 在线视频亚洲欧美| 91亚洲免费视频| 午夜丁香婷婷| 国产91久久久久久| 久久永久视频| 欧美在线综合视频| 中文字幕 日韩 欧美| a亚洲视频| 国产毛片片精品天天看视频| 精品一区国产精品|