【发布时间】:2015-12-15 22:03:26
【问题描述】:
我在通过网络为我的一个学校项目实施一些安全措施时遇到了一些问题。我们已经有一个使用 Ruby 运行的完整网络。我们正在尝试使用 OpenSSL 库来使用 AES 256 CBC。我们已经尝试过使用 Diffie Hellman,但这就是我们遇到问题的地方: 节点 1 运行:
require 'openssl'
dh1 = OpenSSL::PKey::DH(256)
der = dh1.public_key.to_der
###we would send der to n2 here
显然可以将der发送到n2,所以n2会有这部分代码:
require 'openssl'
dh2 = OpenSSL::PKey::DH(der)
现在他们有了彼此的信息。然而,一个正在监听流量的节点是否能够获取此消息并能够拥有 dh1 的密钥?无法理解这一点。
【问题讨论】:
-
“[对等方如何]...获取此消息并能够获得 dh1 的密钥” - 那是 key distribution problem。我认为您需要进行一些背景阅读。
OpenSSL::PKey::DH(256)在 Ruby 中是否表示 256 位?如果是这样,由于logjam,它可能需要大于 1024 位。
标签: ruby openssl diffie-hellman