libtorrent 传输是不是默认加密?

Posted

技术标签:

【中文标题】libtorrent 传输是不是默认加密?【英文标题】:Are libtorrent transfers by default encrypted?libtorrent 传输是否默认加密? 【发布时间】:2015-06-26 19:08:57 【问题描述】:

对不起,如果这听起来很生硬,我仍然想问这个问题,因为我是 libtorrent 的新手。 我正在尝试使用 libtorrent 编写文件传输机制,但在执行CMake Build 时遇到了这个有趣的错误:

CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES
  OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindOpenSSL.cmake:334 (find_package_handle_standard_args)
  CMakeLists.txt:162 (FIND_PACKAGE)

这个错误很容易理解 - 我缺少依赖项,我可以安装它。但我想知道的是,使用 libtorrent 的 torrent 流量是否默认加密。我已经在我的程序中实现了加密方案,我不想加密已经加密的数据!

【问题讨论】:

【参考方案1】:

这里如何加密以及在什么条件下很重要。假设您指的是bittorrent protocol encryption(加密可能有点误导,实际上更容易混淆)。

然后,是的,有时。由于它实际上只是混淆,因此允许接受未加密的传入连接,同样,如果加密的传出连接失败(确实出于任何原因),它可能会以非加密模式重新连接。但是,您可以将 libtorrent 配置为不允许未加密的连接,请参阅pe_settings。请注意,仍然没有任何身份验证可言。基本上,种子的信息哈希是关键。

也就是说,openssl 与此无关。 Libtorrent 内置了对 RC4 和 Diffie-Hellman(来自 libtomcrypt)的支持。 OpenSSL 只需要通过 HTTPS 与跟踪器通信,并且(不广泛支持的)扩展通过 SSL 运行 bittorrent 本身(它确实提供了对等点之间的正确身份验证)。

此外,值得注意的是,跟踪器流量通常未加密。即使通过 SSL 完成,跟踪器通常也会提供自签名证书(至少在我有限的经验中),因此通常在那里强制执行身份验证也是不切实际的。

【讨论】:

以上是关于libtorrent 传输是不是默认加密?的主要内容,如果未能解决你的问题,请参考以下文章

我无法从公共跟踪器 libtorrent 下载 torrent

libtorrent-rasterbar 的 python 绑定是不是适用于 Python 3?

使用stunnle加密传输

Libragnar(Libtorrent Wrapper)LocalTorrent 文件,而不是 URL? C#/C++

加密传输才是王道!谷歌在 Android P 上默认启用 TLS

当我们将数据从加密的 AWS S3 存储桶发送到加密的 Google Cloud Storage 存储桶时,该数据是不是在传输过程中加密?