2

抱歉,如果这听起来很生硬,我仍然想问这个问题,因为我是 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 流量是否默认加密。我已经在我的程序中实现了一个加密方案,我不想加密已经加密的数据!

4

1 回答 1

1

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

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

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

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

于 2015-06-27T20:31:07.033 回答