什么是 BTN
在深入探讨 BTN 之前,我们有必要先回顾一下反吸血技术的发展历程。
反吸血技术的发展
初始阶段
最初,人们采用基于 PeerID 和 ClientName 的黑名单策略,以阻止特定类型的客户端连接到下载器进行吸血。这种策略虽然简单有效,但前提是下载器不会对这些标识符进行伪装,一旦伪装成功,该策略即失效。
流量监测阶段
随后,BitComet 等下载器引入了流量监测机制。如果某个 Peer 在一段时间内未向下载器发送任何数据片段,则被视为吸血行为并被封禁。然而,对于以 101. 开头的 IP 地址段的吸血者,它们通过发送微量上传流量来规避这种监测,同时该策略对做种用户无效。
算法反吸血阶段
LibTorrent 引入了一种以牙还牙的反吸血算法。如果一个 Peer 不愿提供数据片段,其在 LibTorrent 中的优先级将逐渐降低,直至完全停止数据传输。与流量监测类似,微量上传足以绕过检测,且对做种用户无影响。
启发式检测阶段
PeerBanHelper 提出了启发式检测算法(如进度检查器/PCB),能有效检测进度回退、过量下载等作弊行为。然而,该算法反应较慢,当检测触发时,吸血者已下载大量数据。因此,尽管效果显著,但效率较低,主要用于减少损失。
应对策略
面对上述挑战,共享 IP 规则应运而生。最初,人们通过口口相传传递高风险 IP 段,但随着吸血者频繁更换 IP,这种方法时效性有限。因此,需要一种能够快速响应的数据分析和 IP 封禁技术。
BTN 的诞生
BTN(全称 BitTorrent Threat Network)由 BTN 服务器和 BTN 客户端组成,通过 BTN 协议 实现数据交换。
BTN 客户端通过 PCB 等方式发现异常 Peer 后,会定时通过 BTN 协议上报给服务器。服务器收集大量客户端数据,生成异常 IP 列表,并通过 BTN 协议下发给不同客户端,从而在吸血行为发生前将其屏蔽。
BTN 的功能
收集与分析封禁报告
BTN 接收客户端上报的封禁报告,如果一个 IP(或 IP 段)被多人封禁,则视为高风险 IP 地址。BTN 会自动封禁该 IP,并通知其他客户端进行同步封禁。
阻止分散吸血
部分吸血者采取分散策略,在不同用户处下载相同文件。从单个用户角度看,吸血者仅下载一次文件,但实际上已远超文件本身体积。BTN 通过分析 IP(或 IP 段)在每个种子上的总下载量,检测分散吸血行为,并自动封禁。
发现新型客户端
在数据上报过程中,BTN 检查是否出现新客户端,并记录首次出现和最后一次见到的时间。这有助于推断恶意吸血者的活动时间范围。例如,在 2024 年 8 月,BTN 帮助我们发现了一起使用随机 PeerID 的吸血客户端。
避免 PeerBanHelper 被绕过
除了封禁数据,BTN 客户端还会定时拍摄下载器的实时状态快照。这有助于检测恶意吸血者是否通过新方式绕过现有检测。
隐私与安全
要实现上述功能,BTN 必须收集和上传大量数据。所有上传的数据类型可在 BTN 协议规 范 中找到。
特别说明:在上传数据时,我们不会包含种子的 info_hash 和名称,而是使用不可逆哈希生成的 torrent_identifier 和种子大小。这样,我们无法得知您提交的种子内容(我们也不关心),只关注是否为相同或不同的种子。
如果您不愿提供数据,BTN 客户端通常提供提交控制选项。关闭该选项后,您仍可接收规则,但不上传数据。
请始终牢记:只连接到您信任的 BTN 服务器。