Bittorrent Sync秘密如何工作?

时间:2013-12-15 12:08:41

标签: git sync bittorrent-sync

我在想,基本上我们有所有元素用开源软件创建一个Bittorrent Sync替代品,除了通过秘密的链接机制...(我会使用Sparkleshare然后实现像链接机制这样的btsync秘密作为一个“新的”Git连接协议或者在localhost ssh连接的路径中,最后一个提供的优势是你可以通过共享一个秘密来允许访问你的计算机,这使得隧道化更容易......) / p>

那么它是如何工作的,和/或你将如何实现类似的系统(因为btsync是封闭的软件)?

(如果你读过这篇文章并想要实现这一点,请继续,想法是免费的)

2 个答案:

答案 0 :(得分:11)

作为stated by BitTorrent(另请参阅the user guide),秘密是随机生成的20字节或更多字节的密钥。简单的概率定律几乎无法猜测。有四种秘密:

  • (主)读/写访问的秘密
  • 只读秘密
  • 一次性秘密(完全访问和只读)
  • 使用加密对等支持进行只读加密访问的秘密

据我所知(并且在this thread中有人试图在2013年7月对BitTorrent同步协议进行逆向工程),后三种类型的秘密可以从主秘密中获得。特别地,这包括用于加密用于在对等体之间传输的文件的密钥。对于对等发现,秘密是经过哈希处理的,因此哈希可用于查找具有匹配秘密的对等体,并且必须将秘密公开。

在进一步逆向工程BitTorrent Sync之前,请记住该软件是封闭源代码,它包含从bittorrent.com自动更新的例程。这意味着公司可能会更改实施细节(并安装任意后门)。除非打开完整的客户端源代码,否则没有人能保证没有将您的主密钥发送给NSA的隐藏方法。

答案 1 :(得分:3)

有关不同类型的秘密的一些细节:

  • 读写秘密("主密码")目前以" A" 开头,长度为33个字符。
  • 只读秘密以" B" 开头,长度为33个字符。
  • 一次性秘密(完整或只读),有效期为24小时,以" C" 开头,为33人物很长。
  • 加密支持的读写密码以" D" 开头,长度为33个字符。在这篇文章发表时,你不能从程序中生成其中一个,但你可以改变第一个字符来自" A"到" D"当你生成一个新的秘密。较早版本的btsync不接受此类机密。
  • 支持加密的共享的只读密码以" E" 开头,长度为59个字符
  • 只读加密密码(即机器可以下载和共享文件但不解密它们,因此它可以播种但不能读取它们)以"开头。 F" 即可。它是只读秘密,但第一个字符改变为" E"到" F"并截断为33个字符。

(来源:http://forum.bittorrent.com/topic/25823-generate-encrypted-read-only-secret-without-api-key/