BitTorrent Private Torrents 原理解析

概述
private tracker? 是一種限制對(duì)其所追蹤的種子訪問(wèn)權(quán)限的機(jī)制。其作用是促進(jìn)資源共享,并且常常會(huì)記錄注冊(cè)用戶的統(tǒng)計(jì)信息,并對(duì)未能充分上傳的用戶限制對(duì)某些或全部種子的訪問(wèn)權(quán)限。
在生成元信息文件時(shí),用戶可以通過(guò)在種子的元信息文件(metainfo file,參加?BitTorrent 協(xié)議規(guī)范)的”info” 字典中包含鍵值對(duì)”private=1″ 來(lái)表示該種子為 PT 種子。
當(dāng)一個(gè) BitTorrent 客戶端獲取到包含”private=1″ 鍵值對(duì)的元信息文件時(shí),它必須只向?private tracker? 進(jìn)行報(bào)告,并且必須只與?private tracker? 返回的節(jié)點(diǎn)建立連接。
當(dāng)一個(gè) PT 種子的元信息文件中的”announce-list” 中出現(xiàn)多個(gè) Trackers(參見(jiàn)多 Tracker 元數(shù)據(jù)擴(kuò)展),每個(gè)節(jié)點(diǎn)在同一時(shí)間內(nèi)只能使用一個(gè) tracker,并且只在當(dāng)前 tracker 失敗時(shí)切換到其他 tracker 。在切換 tracker 時(shí),節(jié)點(diǎn)必須斷開(kāi)與當(dāng)前所有節(jié)點(diǎn)的連接,并僅與新 tracker 提供的節(jié)點(diǎn)建立連接。
原理
Private Tracker? 不會(huì)公開(kāi)節(jié)點(diǎn)的信息,這樣入侵者就無(wú)法直接聯(lián)系其他節(jié)點(diǎn)。但是,一旦入侵者獲取了某個(gè)節(jié)點(diǎn)的 IP 地址和端口,他們可以通過(guò)直接連接節(jié)點(diǎn)進(jìn)行文件共享。在種子群中,入侵者將被視為正常的節(jié)點(diǎn),并具有與其他節(jié)點(diǎn)相同的權(quán)利和待遇。
目前,BitTorrent 有四種方式可以讓一個(gè)節(jié)點(diǎn)了解種子群中的其他節(jié)點(diǎn):
Trackers?[1],
Distribute Hash Table (DHT)?[2],
Peer EXchange (PEX)?[3],
Local Service Discovery (LSD)?[5].
除了 Private Tracker 之外,通過(guò)任何其他機(jī)制公布或交換節(jié)點(diǎn)信息都會(huì)破壞 tracker 的訪問(wèn)控制。這意味著如果在 PT 種子中,某個(gè)入侵者獲得或猜測(cè)了已經(jīng)在 PT 種子中的某個(gè)節(jié)點(diǎn)的 IP 和端口,那么與入侵者交換節(jié)點(diǎn)信息將為入侵者提供完整的節(jié)點(diǎn)列表。
當(dāng)節(jié)點(diǎn)在不同的 tracker 之間切換時(shí),該節(jié)點(diǎn)會(huì)斷開(kāi)與舊 tracker 的連接,以防止成為一個(gè)連接 private tracker 和連接 public tracker 的節(jié)點(diǎn)之間的橋梁。這在一定程度上減輕了攻擊者修改元信息文件的 announce-list 并通過(guò) public tracker 網(wǎng)站重新分發(fā)元信息文件的影響。
參考鏈接
http://www.bittorrent.org/beps/bep_0003.html
http://www.bittorrent.org/beps/bep_0005.html
http://www.bittorrent.org/beps/BEP_0011.html
http://www.bittorrent.org/beps/bep_0012.html
http://www.bittorrent.org/beps/bep_0014.html
http://www.ietf.org/rfc/rfc2119.txt