欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于抗黑名單機(jī)制的BitTorrent文件污染方法

文檔序號(hào):7722530閱讀:161來(lái)源:國(guó)知局
專利名稱:基于抗黑名單機(jī)制的BitTorrent文件污染方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種BitTorrent文件污染方法,特別是一種基于抗黑名單機(jī)制的BitTorrent文件污染方法。
背景技術(shù)
P2P污染是一種延緩和阻礙被攻擊內(nèi)容在P2P文件共享系統(tǒng)中傳播的P2P網(wǎng)絡(luò)攻擊技術(shù)。文獻(xiàn)"P. Dh皿gel, D. Wu, B. Schonhorst, K. W. Ross, A Measurement Study ofAttacks on BitTorrentLeechers, IPTPS 2008"公開(kāi)了一種被稱為虛假數(shù)據(jù)i央攻擊的P2P污染方法。與傳統(tǒng)的P2P污染攻擊方法不同,該方法避開(kāi)"元信息"的發(fā)布環(huán)節(jié),直接對(duì)數(shù)據(jù)傳輸過(guò)程進(jìn)行污染,通過(guò)浪費(fèi)下載者的網(wǎng)絡(luò)帶寬來(lái)延長(zhǎng)下載者的下載時(shí)間。攻擊者偽裝成一個(gè)普通節(jié)點(diǎn)加入被攻擊的文件傳播任務(wù)對(duì)應(yīng)的BitTorrent網(wǎng)絡(luò),將其節(jié)點(diǎn)信息注冊(cè)到tracker服務(wù)器上并聲稱自己擁有全部或大部分被共享文件的數(shù)據(jù)塊。當(dāng)下載者從tracker服務(wù)器中獲得了攻擊者的節(jié)點(diǎn)信息,便與攻擊者建立連接并向其請(qǐng)求若干個(gè)需要的數(shù)據(jù)塊,但攻擊者向其返回?zé)o效的數(shù)據(jù)塊。下載者在收到若干個(gè)數(shù)據(jù)塊后,將這些數(shù)據(jù)塊組裝成一個(gè)數(shù)據(jù)片斷并對(duì)該數(shù)據(jù)片斷進(jìn)行哈希校驗(yàn)以保證數(shù)據(jù)傳輸?shù)恼_性。只要組成數(shù)據(jù)片斷的數(shù)據(jù)塊中有一塊是從攻擊者處獲得的無(wú)效數(shù)據(jù)塊,哈希校驗(yàn)就無(wú)法通過(guò),下載者會(huì)丟棄該數(shù)據(jù)片斷并重新下載該片斷對(duì)應(yīng)的所有數(shù)據(jù)塊。因此,攻擊者只需要發(fā)送一個(gè)數(shù)據(jù)塊就可以使下載者下載的整個(gè)數(shù)據(jù)片斷作廢,從而實(shí)現(xiàn)浪費(fèi)下載者的網(wǎng)絡(luò)帶寬,延長(zhǎng)其下載時(shí)間的目的。但近年來(lái),越來(lái)越多的BitTorrent下載客戶端引入了黑名單機(jī)制以防范虛假數(shù)據(jù)塊攻擊,使數(shù)據(jù)塊攻擊的攻擊者在發(fā)送一定的虛假數(shù)據(jù)后便被加入黑名單,無(wú)法對(duì)文件傳播進(jìn)行控制。

發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)方法無(wú)法對(duì)采用黑名單防范機(jī)制的BitTorrent客戶端的文件傳播進(jìn)行有效控制的不足,本發(fā)明提供一種基于抗黑名單機(jī)制的BitTorrent文件污染方法,通過(guò)利用黑名單機(jī)制的漏洞,使正常上傳節(jié)點(diǎn)被加入黑名單以破壞BitTorrent網(wǎng)絡(luò)的魯棒性,從而達(dá)到控制文件通過(guò)BitTorrent網(wǎng)絡(luò)進(jìn)行傳播的目的。 本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案一種基于抗黑名單機(jī)制的BitTorrent文件污染方法,其特點(diǎn)是包括下述步驟 (a)載入將要進(jìn)行污染的BitTorrent任務(wù)的種子文件,對(duì)種子文件中的BEncoding編碼進(jìn)行解析,獲得Tracker服務(wù)器的網(wǎng)絡(luò)地址和端口號(hào),以及BitTorrent任務(wù)對(duì)應(yīng)文件的文件名、文件大小、文件Hash值,將Tracker服務(wù)器的網(wǎng)絡(luò)地址和端口號(hào)發(fā)送到節(jié)點(diǎn)注冊(cè)與監(jiān)聽(tīng)模塊;將文件名、文件大小、文件Hash值顯示在用戶界面上;
(b)建立一個(gè)用于進(jìn)行種子文件解析、參數(shù)構(gòu)建與設(shè)置、在Tracker服務(wù)器上注冊(cè)、監(jiān)聽(tīng)端口的線程,創(chuàng)建若干個(gè)子線程,對(duì)于每個(gè)來(lái)自其他節(jié)點(diǎn)的連接請(qǐng)求,分配一個(gè)子線程去處理握手、連接建立、虛假數(shù)據(jù)傳輸工作;
(c)調(diào)用節(jié)點(diǎn)注冊(cè)與監(jiān)聽(tīng)模塊,根據(jù)種子文件解析模塊解析出的Tracker服務(wù)器的網(wǎng)絡(luò)地址和端口號(hào)生成狀態(tài)報(bào)告,并將所生成的狀態(tài)報(bào)告發(fā)送至Tracker服務(wù)器,使攻擊器的節(jié)點(diǎn)信息注冊(cè)到Tracker的節(jié)點(diǎn)列表上,攻擊器監(jiān)聽(tīng)自身開(kāi)放的端口 ,等待接收普通節(jié)點(diǎn)發(fā)送的握手信息; (d)當(dāng)攻擊器與一個(gè)普通節(jié)點(diǎn)完成握手后,創(chuàng)建一個(gè)子線程用于運(yùn)行連接與攻擊模塊,所述子線程將自動(dòng)監(jiān)聽(tīng)端口,在收到普通節(jié)點(diǎn)發(fā)送的bitfield消息后,向所述普通節(jié)點(diǎn)返回一個(gè)聲明攻擊器擁有所有文件片段的bitfield消息,隨后向所述普通節(jié)點(diǎn)發(fā)送unchoke消息,通知所述普通進(jìn)行數(shù)據(jù)傳輸;當(dāng)攻擊器發(fā)送unchoke消息之后,所述普通節(jié)點(diǎn)開(kāi)始向攻擊器發(fā)送request消息請(qǐng)求所述普通節(jié)點(diǎn)需要的片斷,攻擊器發(fā)送piece消息傳輸虛假片斷數(shù)據(jù),當(dāng)攻擊器與一個(gè)節(jié)點(diǎn)完成握手,就創(chuàng)建一個(gè)新的子線程完成上述步驟,直至子線程數(shù)達(dá)到攻擊參數(shù)中設(shè)置的最大子線程數(shù)目為止。 本發(fā)明的有益效果是通過(guò)利用黑名單機(jī)制的漏洞,使正常上傳節(jié)點(diǎn)被加入黑名單以破壞BitTorrent網(wǎng)絡(luò)的魯棒性,從而達(dá)到了控制文件通過(guò)BitTorrent網(wǎng)絡(luò)進(jìn)行傳播的目的。該方法不僅可以用于攻擊舊版本的BitTorrent客戶端,還可以攻擊具有黑名單功能的新版本BitTorrent客戶端,解決了對(duì)BitTorrent文件傳播的控制問(wèn)題。通過(guò)實(shí)驗(yàn)驗(yàn)證和實(shí)際測(cè)試表明,本方法能夠有效的降低BitTorrent網(wǎng)絡(luò)中節(jié)點(diǎn)的下載速度,甚至阻斷文件傳播。 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作詳細(xì)說(shuō)明。


圖1是實(shí)現(xiàn)本發(fā)明基于抗黑名單機(jī)制的BitTorrent文件污染方法的系統(tǒng)框圖。
圖2是本發(fā)明基于抗黑名單機(jī)制的BitTorrent文件污染方法的流程圖。
具體實(shí)施例方式
參照?qǐng)D1 2,本發(fā)明的實(shí)施采用分模塊的體系結(jié)構(gòu),模塊與模塊之間通過(guò)接口進(jìn)
行通訊。第一級(jí)為用戶界面管理。它是系統(tǒng)與用戶交互的主要接口,主要實(shí)現(xiàn)用戶與軟件
的交互功能;第二級(jí)為實(shí)現(xiàn)部分,包括種子文件解析模塊、攻擊參數(shù)設(shè)置模塊、節(jié)點(diǎn)注冊(cè)與
監(jiān)聽(tīng)模塊、連接與攻擊模塊和操作幫助。以下為各個(gè)實(shí)現(xiàn)模塊的說(shuō)明 種子文件解析模塊對(duì)種子文件進(jìn)行解析,從中得到進(jìn)行攻擊需要的信息; 攻擊參數(shù)設(shè)置模塊對(duì)系統(tǒng)的運(yùn)行參數(shù)進(jìn)行設(shè)置,并且可以根據(jù)需要讀取指定的
參數(shù); 節(jié)點(diǎn)注冊(cè)與監(jiān)聽(tīng)模塊負(fù)責(zé)將攻擊器作為節(jié)點(diǎn)注冊(cè)到Tracker服務(wù)器上,并監(jiān)聽(tīng)其他節(jié)點(diǎn)向攻擊器發(fā)送的請(qǐng)求,創(chuàng)建攻擊子進(jìn)程。 連接與攻擊模塊負(fù)責(zé)與正常節(jié)點(diǎn)建立起連接并發(fā)送虛假數(shù)據(jù)進(jìn)行攻擊。
操作幫助對(duì)系統(tǒng)可進(jìn)行的操作進(jìn)行說(shuō)明的模塊。
本發(fā)明所涉及的基本概念解釋如下
1)元信息"元信息"是指啟動(dòng)一個(gè)P2P文件傳播任務(wù)所需的基本信息,包括文件名、文件大小、文件Hash值、DHT網(wǎng)絡(luò)入口節(jié)點(diǎn)地址、端口號(hào)信息。每一個(gè)"元信息"唯一對(duì)應(yīng)著一個(gè)
4P2P文件傳播任務(wù)。在BitTorrent中,"元信息"是指Torrent文件,又稱為種子文件。
2) Tracker服務(wù)器 在BitTorrent中,Tracker服務(wù)器負(fù)責(zé)維護(hù)一系列節(jié)點(diǎn)列表,每個(gè)節(jié)點(diǎn)列表中記錄著參與某一特定的BitTorrent文件傳播任務(wù)的節(jié)點(diǎn)的信息。節(jié)點(diǎn)信息包括節(jié)點(diǎn)的IP地址,用于通信的端口號(hào)等內(nèi)容。當(dāng)一個(gè)新節(jié)點(diǎn)加入某一 BitTorrent文件傳播任務(wù)時(shí),首先從Tracker服務(wù)器獲得該任務(wù)對(duì)應(yīng)的節(jié)點(diǎn)列表,并根據(jù)列表中的節(jié)點(diǎn)信息與這些節(jié)點(diǎn)建立
連接,開(kāi)始數(shù)據(jù)傳輸。
3) shal算法 shal算法是一種安全散列算法,能計(jì)算出一個(gè)數(shù)字信息所對(duì)應(yīng)的,長(zhǎng)度固定的字串(又稱為信息摘要)。且若輸入的信息不同,它們對(duì)應(yīng)到不同字串的機(jī)率很高。該算法之所以稱作"安全"是基于以下兩點(diǎn)1)由信息摘要反推原輸入信息,從計(jì)算理論上來(lái)說(shuō)是很困難的。2)想要找到兩組不同的信息對(duì)應(yīng)到相同的信息摘要,從計(jì)算理論上來(lái)說(shuō)也是很困難的。任何對(duì)輸入信息的變動(dòng),都有很高的機(jī)率導(dǎo)致其產(chǎn)生的信息摘要迥異。
4)Piece與Slice : 根據(jù)BitTorrent協(xié)議規(guī)定,在進(jìn)行文件共享時(shí),首先將文件分割成若干個(gè)固定長(zhǎng)度的文件塊,這些文件塊被稱為Piece,處于文件末尾的最后一個(gè)Piece的長(zhǎng)度可能會(huì)小于其他Piece。 Piece又被分成若干個(gè)被稱為Slice的更小的片段,其默認(rèn)大小為16KB。參與文件傳播任務(wù)的節(jié)點(diǎn)之間以Slice為單位進(jìn)行數(shù)據(jù)交換。為了保證傳輸中數(shù)據(jù)的完整性,通過(guò)shal算法對(duì)每個(gè)Piece計(jì)算hash摘要,并將摘要記錄在種子文件中的"piece"項(xiàng)。節(jié)點(diǎn)在接收到某一 Piece中所有的Slice后,會(huì)將這些Slice組裝成對(duì)應(yīng)的Piece,使用shal算法計(jì)算該P(yáng)iece的hash摘要并與種子文件中相應(yīng)的hash摘要進(jìn)行驗(yàn)證以確保傳輸無(wú)誤。 5)污染攻擊器 污染攻擊器根據(jù)種子文件中Tracker服務(wù)器的信息,以及BitTorrent文件共享任務(wù)的任務(wù)標(biāo)識(shí),將自己偽裝成一個(gè)或多個(gè)正常節(jié)點(diǎn)加入該任務(wù)的BitTorrent網(wǎng)絡(luò),與普通下載節(jié)點(diǎn)建立連接并發(fā)起污染攻擊。
本發(fā)明具體的實(shí)施步驟如下
1)種子文件解析。 本發(fā)明設(shè)計(jì)的污染攻擊方法,首先需獲取相關(guān)BitTorrent文件傳播任務(wù)的種子文件,并對(duì)其進(jìn)行解析,獲得種子文件內(nèi)記錄的Tracker服務(wù)器地址及任務(wù)標(biāo)識(shí)等信息。
在BitTorrent協(xié)議中,種子文件記錄的內(nèi)容,以及種子文件與Tracker服務(wù)器之間的交互信息都采用BEncoding進(jìn)行描述。BEncoding定義了下列四種數(shù)據(jù)表示類型。
Integer :任意長(zhǎng)的十進(jìn)制整數(shù)。以"i"開(kāi)始,以"e"結(jié)束,中間為整數(shù)。如整數(shù)123要表示為"il23e"。 String :字符串。在字符串前加字符串長(zhǎng)和冒號(hào)。如"BitTorrent"要表示為10:BitTorrent。 List :列表。以"l"開(kāi)始,以"e"結(jié)束,中間可以是各種類型。如lil23elO:BitTorrente表示一個(gè)列表,這個(gè)列表有兩個(gè)元素,分別為整數(shù)123和字符串"BitTorrent ,,。
Dictionary :字典。以"d"開(kāi)始,以"e"結(jié)束,中間是若干key和value的組合,而且key必須是String。如"d6:Lengthil024ee",表示這個(gè)字典里有一個(gè)元素,key是字符串"Length", value是整數(shù)1024。 此外,List中的元素和Dictionary中key的value部分可以是這四種類型中的任意一種,可嵌套使用。如"d4:petsl4:bird3:cat3:dogee"表示字典里有一個(gè)元素,這個(gè)元素的key是字符串"pets",而value是一個(gè)List,這個(gè)List里有三個(gè)元素,分別是字符串"bird"、字符串"cat"和字符串"dog"。 種子文件本身也是一個(gè)Dictionary,包含的元素為一系列的key和value,其中名為Announce的key聲明了 Tracker月艮務(wù)器的URL地址。如果Tracker有多個(gè),Dictionary中會(huì)出現(xiàn)一個(gè)key值為announce-list的元素,它的value是一個(gè)List,存放著每個(gè)Tracker的URL地址。如d8: announce36: http: 〃btfans. 3322. org: 8000/announce,即為某Tracker服務(wù)器的網(wǎng)絡(luò)地址,通信端口為8000。名為Info的key記錄了資源文件的文件名和目錄結(jié)構(gòu),以及對(duì)每個(gè)資源片斷通過(guò)shal算法計(jì)算的哈希值,另外還包括任務(wù)名和發(fā)布者信息等。其value也是一個(gè)Dictionary,如果把Info的整個(gè)value值使用shal算法計(jì)算其哈希值,得到的20字節(jié)即為整個(gè)任務(wù)的"infoJiash",是此BitTorrent任務(wù)的唯一標(biāo)識(shí)。如果資源是單個(gè)文件,則"name"部分為文件名,如果資源是多文件,則"name"部分為這些資源的頂級(jí)文件目錄名,而"files"列表記錄了文件的目錄結(jié)構(gòu)。
2)采用多線程機(jī)制提高攻擊器的攻擊效果。 本發(fā)明的攻擊效果與攻擊器的數(shù)量有關(guān),攻擊器數(shù)量越多,攻擊強(qiáng)度就越大。但攻擊器數(shù)量的增加意味著需要更多的物理計(jì)算機(jī)來(lái)運(yùn)行。為了在提高污染攻擊器的攻擊效果的同時(shí)減少對(duì)計(jì)算機(jī)數(shù)量的要求,攻擊器采用多線程機(jī)制。首先建立一個(gè)線程用于進(jìn)行種子文件解析、參數(shù)構(gòu)建與設(shè)置、在Tracker服務(wù)器上注冊(cè)、監(jiān)聽(tīng)端口等工作。然后創(chuàng)建若干個(gè)子線程,在不超過(guò)子線程個(gè)數(shù)的情況下,對(duì)于每個(gè)來(lái)自其他節(jié)點(diǎn)的連接請(qǐng)求,都分配一個(gè)子線程去處理握手、連接建立、虛假數(shù)據(jù)傳輸?shù)裙ぷ鳌_@樣在一個(gè)攻擊客戶端上即可對(duì)多個(gè)正常節(jié)點(diǎn)發(fā)起攻擊。 3)將攻擊器加入Tracker服務(wù)器的節(jié)點(diǎn)列表。 污染攻擊器在對(duì)某個(gè)BitTorrent文件傳播任務(wù)進(jìn)行攻擊之前,首先需要與參與該任務(wù)的正常下載節(jié)點(diǎn)建立起連接。攻擊器通過(guò)將自身偽裝成一個(gè)正常的BitTorrent節(jié)點(diǎn),模擬正常下載節(jié)點(diǎn)在BitTorrent網(wǎng)絡(luò)中下載數(shù)據(jù)的過(guò)程,與上傳節(jié)點(diǎn)建立起連接。
攻擊器首先根據(jù)從種子文件中解析出的內(nèi)容,將自己作為普通節(jié)點(diǎn)注冊(cè)到Tracker服務(wù)器的節(jié)點(diǎn)列表中。根據(jù)BitTorrent協(xié)議,節(jié)點(diǎn)每隔一段時(shí)間向tracker服務(wù)器提交狀態(tài)報(bào)告,根據(jù)此報(bào)告將自身注冊(cè)到Tracker服務(wù)器。狀態(tài)報(bào)告是以HTTP的GET方法發(fā)送,下文為一個(gè)狀態(tài)報(bào)告的實(shí)例
GET/a皿o皿ce info—hash = % E7% B3% OF % 09k % BE % 15m % 28% 2C% 0C% IB % 29%9DI% EB% 0D% 92% 03% C4&peer_id =% 2DBC0060% 2D% 13% FE% 01% 5DM% 9A% 91% A7n% CFh% 14
&port = 16677
&natmapped = 1
&localip = 59. 72. 3. 47
&uploaded = 0
&downloaded = 0
&left = 470097993
&numwant = 200
&compact = 1
&no_peer_id = 1
&key = 6786
&event = startedHTTP/1.0 User-Agent:BitTorrent/3.4.2 Connection:close
Accept-Encoding:gzip,deflate Host:bt. 54new. com:6969
Cache-Control:no-cache
其中比較重要的屬性值有 info_hash :20字節(jié)長(zhǎng)的SHA1驗(yàn)證碼,來(lái)自種子文件中的info_hash值,用于唯一標(biāo)示一個(gè)BitTorrent文件共享任務(wù)。 peer」d :—個(gè)20字節(jié)長(zhǎng)的字符串,是每個(gè)節(jié)點(diǎn)開(kāi)始下載時(shí)隨機(jī)生成的ID。詳細(xì)
內(nèi)容請(qǐng)參見(jiàn)BitTorrent的官方文檔《MtTorrent specif ication》。 Localip :節(jié)點(diǎn)所在的IP地址(或DNS主機(jī)名)。 Port :節(jié)點(diǎn)運(yùn)行BitTorrent客戶端所使用的監(jiān)聽(tīng)端口 。 Uploaded :目前總上傳量,編碼為十進(jìn)制ASCII碼。 Downloaded :目前總下載量,編碼為十進(jìn)制ASCII碼。 Left :未下載的字節(jié)數(shù),編碼為十進(jìn)制ASCII碼。 Event :這是個(gè)選擇性的屬性值,選項(xiàng)有started, completed或stopped。開(kāi)始下載時(shí)發(fā)出started值,完成下載時(shí)發(fā)出completed。當(dāng)文件完整后再開(kāi)始,沒(méi)有completed發(fā)出,下載者中止下載時(shí)發(fā)出stopped。 根據(jù)從種子文件中解析出的Tracker服務(wù)器的URL地址,攻擊器將上述狀態(tài)報(bào)告提交給Tracker服務(wù)器后,即將自己偽裝成一個(gè)正常節(jié)點(diǎn)加入Tracker服務(wù)器的節(jié)點(diǎn)列表中。隨后Tracker服務(wù)器向攻擊器返回一份應(yīng)答,分析應(yīng)答內(nèi)容可獲取當(dāng)前Tracker服務(wù)器上維護(hù)的節(jié)點(diǎn)列表的內(nèi)容。Tracker服務(wù)器的應(yīng)答如下例所示
HTTP/1. 1 2000K
Connection:Close
Content-Length:179
Content-Type:text/plain d8:intervalil 800e5:peersl50: ;H ! .% . L. 1____V.....dl. 11E8 ;
H. Z*4. . : ' . 5.....L. . 1. L. . 1. L. . 1 ;H. /A % ;H. 3, 5. G9. . A. & E. A. $ ;
H .) +.....JC. . h.....&1 < * -G ;H ) . < . ; Je 每隔一段時(shí)間,客戶端和服務(wù)器會(huì)交互一次,這個(gè)時(shí)間間隔寫(xiě)在tracker服務(wù)器的應(yīng)答中,上例中為"8: interval i 1 800e ",表示"interval: 1800 ",即令客戶端1800秒之后再次發(fā)送狀態(tài)報(bào)告。該應(yīng)答中,"peers"對(duì)應(yīng)的150字節(jié)亂碼部分即為節(jié)點(diǎn)列表,如果是非壓縮格式,peer list的格式為[peer id, IP,監(jiān)聽(tīng)端口 ],如果是壓縮格式,則為[IP,監(jiān)
聽(tīng)端口 ],每組6個(gè)字節(jié)。壓縮與否由客戶端狀態(tài)報(bào)告中的"compact"部分決定,"compact"
參數(shù)屬于BitTorrent擴(kuò)展協(xié)議的范疇。應(yīng)答中節(jié)點(diǎn)數(shù)量的上限由狀態(tài)報(bào)告的"numwant"部
分決定,返回的節(jié)點(diǎn)列表由tracker根據(jù)一定的選擇算法確定,默認(rèn)返回的節(jié)點(diǎn)數(shù)量是200個(gè)。 4)攻擊器與普通節(jié)點(diǎn)建立連接。 攻擊器將自身節(jié)點(diǎn)信息加入Tracker的節(jié)點(diǎn)列表后,等待其他參與該BitTorrent
文件共享任務(wù)的正常節(jié)點(diǎn)向其監(jiān)聽(tīng)端口發(fā)送握手請(qǐng)求,請(qǐng)求格式如下 1字節(jié)協(xié)議名長(zhǎng)度(通常為19); 19字節(jié)協(xié)議名(通常為BitTorrent protocol); 8字節(jié)保留字節(jié)(一些客戶端已經(jīng)進(jìn)行了擴(kuò)展,改寫(xiě)了某些字節(jié)); 20字節(jié)任務(wù)的info_hash (對(duì)"種子"文件Info部分進(jìn)行shal hash得出); 20字節(jié)由客戶端隨機(jī)生成的peer id。 攻擊器收到握手請(qǐng)求后做出應(yīng)答,回復(fù)一個(gè)同樣格式的握手請(qǐng)求,于是一個(gè)BitTorrent連接成功建立。 5)基于抗黑名單機(jī)制的數(shù)據(jù)污染攻擊。 BitTorrent客戶端,諸如Bit comet、 Bit Spirit,對(duì)P2P數(shù)據(jù)污染攻擊的防范主要通過(guò)黑名單機(jī)制實(shí)現(xiàn)。即在客戶端在下載某個(gè)Piece時(shí),優(yōu)先從某一節(jié)點(diǎn)下載該P(yáng)iece對(duì)應(yīng)的全部Slice,若下載的數(shù)據(jù)無(wú)法成功通過(guò)校驗(yàn)的次數(shù)超過(guò)了設(shè)定的閾值,則認(rèn)為該節(jié)點(diǎn)是惡意攻擊節(jié)點(diǎn),進(jìn)而將該節(jié)點(diǎn)列入黑名單,斷開(kāi)與其的連接。為了消除黑名單機(jī)制對(duì)攻擊效果的影響,污染攻擊器在收到正常下載節(jié)點(diǎn)發(fā)送的request消息請(qǐng)求后,并不完全滿足其請(qǐng)求。例如若一個(gè)下載節(jié)點(diǎn)一次請(qǐng)求n個(gè)Slice,則攻擊器只向其返回l個(gè)或幾個(gè)虛假的Slice,迫使下載節(jié)點(diǎn)從其他正常節(jié)點(diǎn)處獲取剩余的n-1個(gè)Slice。當(dāng)某一個(gè)Piece對(duì)應(yīng)的Slice全部下載完,下載節(jié)點(diǎn)對(duì)其計(jì)算shal校驗(yàn)碼。若其中包含有攻擊器發(fā)送的虛假Slice,則無(wú)法通過(guò)校驗(yàn)。而上傳這些Slice的節(jié)點(diǎn),除了攻擊器之外還包括至少一個(gè)正常節(jié)點(diǎn)。這種情況下有的BitTorrent客戶端的黑名單機(jī)制會(huì)因?yàn)闊o(wú)法判斷到底是哪個(gè)節(jié)點(diǎn)發(fā)送的虛假數(shù)據(jù)而失效,BitTorrent客戶端會(huì)將這些節(jié)點(diǎn)全部加入黑名單,從而使正常的上傳節(jié)點(diǎn)也被禁掉。隨著被禁掉的正常上傳節(jié)點(diǎn)數(shù)量的增加,該BitTorrent文件共享任務(wù)的文件完整性會(huì)受到影響,不僅使普通節(jié)點(diǎn)的下載速率降低,而且還有可能無(wú)法完成下載。
BitTorrent協(xié)議規(guī)定了十種消息類型用于進(jìn)行數(shù)據(jù)傳輸,這十種類型的消息有一個(gè)通用的格式首先是四字節(jié)的消息長(zhǎng)度(不包括長(zhǎng)度這四字節(jié)),然后是一字節(jié)的消息類型代碼,最后是各種消息不同的負(fù)載。這十種消息類型的詳細(xì)說(shuō)明如下
(l)Ke印-alive,消息長(zhǎng)度為0,沒(méi)有類型代碼和負(fù)載,如果在一定時(shí)間內(nèi),peer與peer之間沒(méi)有任何消息往來(lái),可以發(fā)送ke印-alive消息防止連接斷開(kāi)。此消息通常每?jī)煞昼姲l(fā)送一次。 (2)Choke,消息長(zhǎng)度為1,代碼為0,沒(méi)有負(fù)載,用來(lái)阻塞連接。連接被阻塞后,在unchoke之前將不響應(yīng)來(lái)自對(duì)方的request消息。 (3)Unchoke,消息長(zhǎng)度為l,代碼為1,沒(méi)有負(fù)載,用來(lái)解除對(duì)連接的阻塞。 (4) Interested,消息長(zhǎng)度為1,代碼為2,沒(méi)有負(fù)載,表示"關(guān)注"對(duì)方??蛻舳嗽?br> 8收到have或bitfield消息后,根據(jù)需要來(lái)判斷是否發(fā)送interest消息。如果"關(guān)注",則 連接被unchoke之后立刻發(fā)送request消息。 (5)Not interested,消息長(zhǎng)度為l,代碼為3,沒(méi)有負(fù)載,表示"不關(guān)注"對(duì)方。同 樣是在客戶端收到have或bitfield消息后,根據(jù)當(dāng)前的需要來(lái)判斷是否要發(fā)送此消息。
(6)Have,消息長(zhǎng)度為5,代碼為4,負(fù)載為4字節(jié)的piece index,是剛剛成功下載 的那個(gè)片斷的編號(hào)。 (7)Bitfield,消息長(zhǎng)度為描述部分長(zhǎng)度+1,代碼為5,負(fù)載中,每一位代表一個(gè)分 片,如果此分片已被完整下載則相應(yīng)位置l,否則置O。 Bitfield消息只在握手完畢時(shí)互相 發(fā)送。 (8) Request,消息長(zhǎng)度為13,代碼為6,負(fù)載有三部分,分別為4字節(jié)的分片編號(hào)、 4字節(jié)的分片內(nèi)偏移、4字節(jié)的長(zhǎng)度。Request消息是向?qū)Ψ秸?qǐng)求自己需要的片斷。此消息 通常在收至Ll皿choke、 have或piece消息后發(fā)送。 (9)Piece,消息長(zhǎng)度不固定,代碼為7,負(fù)載有三部分,分別為4字節(jié)的分片編號(hào)、4 字節(jié)的分片內(nèi)偏移、不定長(zhǎng)數(shù)據(jù)。 (10) Cancel,消息長(zhǎng)度為13,代碼為8,負(fù)載有三部分,分別為4字節(jié)的分片編號(hào)、4 字節(jié)的分片內(nèi)偏移、4字節(jié)的長(zhǎng)度。Cancel表示不再需要此分片。此消息通常出現(xiàn)于下載 將要結(jié)束之前。 對(duì)某一個(gè)BitTorrent節(jié)點(diǎn)來(lái)說(shuō),它的每一個(gè)連接有一對(duì)屬性,分別是"阻塞/不 阻塞"和"關(guān)注/不關(guān)注"。污染攻擊器作為一種特殊的BitTorrent節(jié)點(diǎn),同樣具有這些屬 性。普通節(jié)點(diǎn)和攻擊器握手之后,默認(rèn)的狀態(tài)是"阻塞"和"不關(guān)注",它們之間首先互相發(fā) 送bitfield消息,讓對(duì)方知道自己都擁有哪些片斷。如果對(duì)方有自己需要的片斷,則發(fā)送 interest消息,為了提高攻擊器被連接的概率,將攻擊器的bitfield消息的負(fù)載全部置為 1,即在普通節(jié)點(diǎn)看來(lái),攻擊器擁有所有的數(shù)據(jù)片段。當(dāng)攻擊器發(fā)送unchoke消息之后,普通 節(jié)點(diǎn)開(kāi)始向攻擊器發(fā)送request消息請(qǐng)求其需要的片斷,然后攻擊器發(fā)送piece消息傳輸 虛假片斷數(shù)據(jù),其內(nèi)容可為隨機(jī)的二進(jìn)制字符串。
9
權(quán)利要求
一種基于抗黑名單機(jī)制的BitTorrent文件污染方法,其特征在于包括下述步驟(a)載入將要進(jìn)行污染的BitTorrent任務(wù)的種子文件,對(duì)種子文件中的BEncoding編碼進(jìn)行解析,獲得Tracker服務(wù)器的網(wǎng)絡(luò)地址和端口號(hào),以及BitTorrent任務(wù)對(duì)應(yīng)文件的文件名、文件大小、文件Hash值,將Tracker服務(wù)器的網(wǎng)絡(luò)地址和端口號(hào)發(fā)送到節(jié)點(diǎn)注冊(cè)與監(jiān)聽(tīng)模塊;將文件名、文件大小、文件Hash值顯示在用戶界面上;(b)建立一個(gè)用于進(jìn)行種子文件解析、參數(shù)構(gòu)建與設(shè)置、在Tracker服務(wù)器上注冊(cè)、監(jiān)聽(tīng)端口的線程,創(chuàng)建若干個(gè)子線程,對(duì)于每個(gè)來(lái)自其他節(jié)點(diǎn)的連接請(qǐng)求,分配一個(gè)子線程去處理握手、連接建立、虛假數(shù)據(jù)傳輸工作;(c)調(diào)用節(jié)點(diǎn)注冊(cè)與監(jiān)聽(tīng)模塊,根據(jù)種子文件解析模塊解析出的Tracker服務(wù)器的網(wǎng)絡(luò)地址和端口號(hào)生成狀態(tài)報(bào)告,并將所生成的狀態(tài)報(bào)告發(fā)送至Tracker服務(wù)器,使攻擊器的節(jié)點(diǎn)信息注冊(cè)到Tracker的節(jié)點(diǎn)列表上,攻擊器監(jiān)聽(tīng)自身開(kāi)放的端口,等待接收普通節(jié)點(diǎn)發(fā)送的握手信息;(d)當(dāng)攻擊器與一個(gè)普通節(jié)點(diǎn)完成握手后,創(chuàng)建一個(gè)子線程用于運(yùn)行連接與攻擊模塊,所述子線程將自動(dòng)監(jiān)聽(tīng)端口,在收到普通節(jié)點(diǎn)發(fā)送的bitfield消息后,向所述普通節(jié)點(diǎn)返回一個(gè)聲明攻擊器擁有所有文件片段的bitfield消息,隨后向所述普通節(jié)點(diǎn)發(fā)送unchoke消息,通知所述普通進(jìn)行數(shù)據(jù)傳輸;當(dāng)攻擊器發(fā)送unchoke消息之后,所述普通節(jié)點(diǎn)開(kāi)始向攻擊器發(fā)送request消息請(qǐng)求所述普通節(jié)點(diǎn)需要的片斷,攻擊器發(fā)送piece消息傳輸虛假片斷數(shù)據(jù),當(dāng)攻擊器與一個(gè)節(jié)點(diǎn)完成握手,就創(chuàng)建一個(gè)新的子線程完成上述步驟,直至子線程數(shù)達(dá)到攻擊參數(shù)中設(shè)置的最大子線程數(shù)目為止。
全文摘要
本發(fā)明公開(kāi)了一種基于抗黑名單機(jī)制的BitTorrent文件污染方法,用于對(duì)采用黑名單防范機(jī)制的BitTorrent客戶端的文件傳播進(jìn)行有效控制,所述方法首先載入將要進(jìn)行污染的BitTorrent任務(wù)的種子文件,再建立一個(gè)用于進(jìn)行種子文件解析、參數(shù)構(gòu)建與設(shè)置、在Tracker服務(wù)器上注冊(cè)、監(jiān)聽(tīng)端口的線程,創(chuàng)建若干個(gè)子線程,然后注冊(cè)攻擊器并監(jiān)聽(tīng)端口,與下載節(jié)點(diǎn)建立連接并發(fā)起攻擊。本發(fā)明通過(guò)利用黑名單機(jī)制的漏洞,使正常上傳節(jié)點(diǎn)被加入黑名單以破壞BitTorrent網(wǎng)絡(luò)的魯棒性,從而達(dá)到了控制文件通過(guò)BitTorrent網(wǎng)絡(luò)進(jìn)行傳播的目的;該方法解決了對(duì)BitTorrent文件傳播的控制問(wèn)題,有效地降低了BitTorrent網(wǎng)絡(luò)中節(jié)點(diǎn)的下載速度,甚至阻斷文件傳播。
文檔編號(hào)H04L29/06GK101753572SQ200910254468
公開(kāi)日2010年6月23日 申請(qǐng)日期2009年12月23日 優(yōu)先權(quán)日2009年12月23日
發(fā)明者孔劼, 蔡皖東, 趙秋實(shí) 申請(qǐng)人:西北工業(yè)大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
镇坪县| 滨州市| 定襄县| 青铜峡市| 奉贤区| 民权县| 岱山县| 忻城县| 长子县| 靖宇县| 莱芜市| 南岸区| 闽侯县| 罗田县| 枞阳县| 民勤县| 新安县| 垫江县| 盖州市| 昭通市| 普陀区| 龙门县| 略阳县| 芮城县| 射洪县| 平凉市| 天门市| 海城市| 工布江达县| 闽清县| 离岛区| 天台县| 西华县| 山丹县| 洪洞县| 古丈县| 林周县| 贵定县| 越西县| 镇巴县| 新沂市|