这里的每个答案似乎对问题都有不同的解释,或者更确切地说,加密的不同假设目的。由于您将其与 https 进行比较,因此似乎一个合理的假设是您正在寻找身份验证和机密性。我将列举一些降低“安全”级别的尝试。这是一个以 bittorrent 为中心的答案,因为您用 bittorrent 标记了这个问题。
SSL
从最强大的系统开始,可以通过 SSL 运行 bittorrent(许多客户端不支持它,但在完全受控的部署中可以做到)。这给了你:
- 每个参与的对等方的身份验证
- 通过使用 swarm root 签署证书来选择允许哪些对等方进入 swarm 的能力。
- 所有对等连接 + 跟踪器连接的 SSL 加密
跟踪器可以对连接到它的每个对等点进行身份验证,但即使对等点列表(或一个对等点)被泄露或猜测,仍然存在对等身份验证,阻止任何未经授权的访问。
基于 SSL 的 Bittorrent 已经实施和部署。
加密种子
在 BitTorrent(在uTorrent客户端中),我们在磁盘层添加了对 torrent 对称加密的支持:
bittorrent 引擎中的所有内容都将在加密块上运行。数据完整性检查(碎片的 sha-1 散列)将在加密块上完成,.torrent 文件将具有加密数据的散列。像这样的加密 torrent 向后兼容不支持该功能的客户端,但他们将无法访问数据(只需帮助 swarm 并为其播种)。
要以未加密的形式下载 torrent,您可以将 &key= 参数添加到磁力链接,uTorrent 会在磁盘边界对数据进行解密和加密(使磁盘上的数据保持清晰)。任何人在没有密钥的情况下添加磁力链接,只会获得加密数据。
还涉及一些其他细节,例如加密 .torrent 文件中的一些元数据。比如文件列表等。
这不会让您选择哪些对等方可以加入。您可以向所需的对等方授予访问权限,但由于它是对称密钥,因此任何有权访问的人都可以邀请其他任何人,或发布密钥。与您找到磁力链接时相比,它不会为您提供任何更强的身份验证。
它使您在受信任的对等方之间保持机密性,并让不受信任的对等方帮助播种。
bittorrent 协议加密
bittorrent 协议加密可能更好地描述为混淆。它的主要目的不是验证或控制对 swarm 的访问(它从 info-hash 中派生加密密钥,所以如果你能保守秘密,你就可以获得该属性)。主要目的是避免微不足道的被动窥探和流量整形。我的理解是,如今避免被识别为 bittorrent 流量的效果较差。它还对复杂的主动攻击提供了较弱的保护。例如,如果启用了 DHT,或者跟踪器连接未加密,则很容易了解信息哈希,这是关键。
在私人种子(禁用 DHT 和对等交换)的情况下,假设跟踪器运行 HTTPS,则其中没有任何明显的漏洞。但是,我的经验是,https 跟踪器拥有自签名证书并且客户端不验证跟踪器的情况并不少见。这意味着毒化跟踪器的 DNS 条目可能足以进入 swarm。