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