BitTorrent Private Torrents 原理解析
概述
private tracker 是一种限制对其所追踪的种子访问权限的机制。其作用是促进资源共享,并且常常会记录注册用户的统计信息,并对未能充分上传的用户限制对某些或全部种子的访问权限。
在生成元信息文件时,用户可以通过在种子的元信息文件(metainfo file,参加 BitTorrent 协议规范)的”info” 字典中包含键值对”private=1″ 来表示该种子为 PT 种子。
当一个 BitTorrent 客户端获取到包含”private=1″ 键值对的元信息文件时,它必须只向 private tracker 进行报告,并且必须只与 private tracker 返回的节点建立连接。
当一个 PT 种子的元信息文件中的”announce-list” 中出现多个 Trackers(参见多 Tracker 元数据扩展),每个节点在同一时间内只能使用一个 tracker,并且只在当前 tracker 失败时切换到其他 tracker 。在切换 tracker 时,节点必须断开与当前所有节点的连接,并仅与新 tracker 提供的节点建立连接。
原理
Private Tracker 不会公开节点的信息,这样入侵者就无法直接联系其他节点。但是,一旦入侵者获取了某个节点的 IP 地址和端口,他们可以通过直接连接节点进行文件共享。在种子群中,入侵者将被视为正常的节点,并具有与其他节点相同的权利和待遇。
目前,BitTorrent 有四种方式可以让一个节点了解种子群中的其他节点:
Trackers [1],
Distribute Hash Table (DHT) [2],
Peer EXchange (PEX) [3],
Local Service Discovery (LSD) [5].
除了 Private Tracker 之外,通过任何其他机制公布或交换节点信息都会破坏 tracker 的访问控制。这意味着如果在 PT 种子中,某个入侵者获得或猜测了已经在 PT 种子中的某个节点的 IP 和端口,那么与入侵者交换节点信息将为入侵者提供完整的节点列表。
当节点在不同的 tracker 之间切换时,该节点会断开与旧 tracker 的连接,以防止成为一个连接 private tracker 和连接 public tracker 的节点之间的桥梁。这在一定程度上减轻了攻击者修改元信息文件的 announce-list 并通过 public tracker 网站重新分发元信息文件的影响。
参考链接
Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!