证明 BitTorrent 可以安全地将服务器代码和数据文件部署到许多服务器

Proof that BitTorrent is secure for deploying server code and data files to many servers

使用 BitTorrent 模块将服务器代码和数据文件分发到内部服务器计算机安全吗?当然,服务器代码和数据文件属于机密,绝对不能离开服务器私网。

这是我的粗略证明:使用 BitTorrent 模块(例如 LibTorrent)将文件分发到许多内部服务器是安全的,除非 Magnet 或 Torrent 文件被泄露给黑客。当然,Magnet 或 Torrent 文件要始终保持安全,因此使用 BitTorrent 是安全的。

有一个 news Facebook 使用 BitTorrent 模块将服务器代码和数据文件部署到许多内部服务器。

我的证明对吗?我得把证明告诉同事们

没有证据数据不会离开您的网络,因为离开您网络的数据可能与您选择的分发数据完全正交:任何计算机都可能被黑客入侵并可以向外界发送数据,无论它是如何接收的。

但是,如果您问是否可以

  1. 将您的 BitTorrent 数据限制在您的网络中,
  2. 保护自己免受网络中的窃听者的侵害,并且
  3. 保护您的数据在传输过程中不被篡改,

你应该可以做到。

首先,您可以通过正确设置防火墙来控制数据传输

  1. 防止从网络外部访问跟踪器
  2. 防止您的所有客户端从网络外部访问 BitTorrent 端口
  3. 为您的种子禁用 DHT
  4. 在您的客户端中禁用 UPnP

如果您正确执行此操作,即使泄露 Magnet link 或 .torrent 文件也只会显示文件名、校验和以及您的内部跟踪器和客户端 IP,但不会显示任何内容。

为了防止第三方监听您的内部网络数据,您应该启用协议加密。但是请注意,PE 仅用于混淆 BitTorrent 流量,它可能不是 100% 的攻击恢复能力。

最后,BitTorrent 可以防止第三方试图注入他们自己的数据并以这种方式在您的网络中分发恶意包。 BitTorrent 通过在 .torrent 文件中分发校验和来防止这种情况。但是,防止篡改 .torrent 文件 很重要,这可以通过为 Tracker 使用 HTTPS 轻松解决。

不用说,使用 BitTorrent 肯定会增加你的 attack surface,但它本身并不会不安全。

Twitter 也使用 BitTorrent 将文件分发到他们的服务器。他们甚至开源了他们的实现,称为 murder.

作为对@Nils Werner 的异议:

许多比特流客户端内置的混淆方案(称为协议加密)明确地不是确保数据机密性的方案。它依赖于弱的 diffie hellman 交换,并且 RC4 流密码在很大程度上被认为是破损的。

如果您不能信任服务器之间的网络 link 并且您的数据需要保密,您应该在创建种子之前对其进行静态加密或使用 libtorrent 的非标准TLS 传输功能。

如果针对内部攻击者的机密性不是问题(知道你的 threat model!) and you only need integrity checking then bittorrent usually is sufficient unless collision attacks 是一个问题,因为 SHA1 现在只被认为具有原像抗性,而不是抗碰撞性。

如果您只担心意外泄露到 Internet,那么这两点都不是特别相关。但是您可能希望使用 private flag 指示客户端仅将跟踪器用作对等源。缺点是它还会禁用对等交换和本地服务发现,这甚至在内部网络中也很有用。