8

我一直在使用 zeroMQ,我希望能够通过 Internet 安全地连接。我在 ruby​​ 中,可以使用 SSL 和/或某种 shh 连接,但找不到任何有关如何执行此操作的示例。

我找到了这个旧的 stackoverflow 链接,zeromq 如何与 SSL 一起工作?说他们正在研究某种安全性,但那是一年前的事了,我找不到任何新的参考资料。

即使这没有内置到 zeroMQ 中,我也会假设有一些方法可以使用 OpenSSL 或类似的东西来设置它。

注意:如果您想要安全传输,zeroMQ 网站会提到使用 VPN 或其他东西。我不想使用 VPN。一定会有更好的办法。

4

2 回答 2

4

类似于 VPN,但更容易设置:

  • 加密隧道socat

让我们让每个 zeromq 端本地连接到socat,并且两个socats 使用加密通道相互连接。

一些链接:[1][2][3][4]

于 2012-10-23T09:00:31.087 回答
4

只是想补充一点,自从提出问题以来,ZMQ 团队从 ZeroMQ v4.0.0 开始开发了CurveZMQ 协议,它是基于 CurveCP 和 NaCl 的 ZeroMQ 身份验证和加密协议 - 快速、安全的椭圆曲线加密。这允许加密的 ZMQ 消息交换,这在互联网上应该是安全的。

有关更多详细信息,请参阅使用 ZeroMQ 安全性第 1 部分。当时添加的一些功能是:

一种新的有线协议 ZMTP 3.0,它为所有 ZeroMQ 连接添加了安全握手。

一种新的安全协议 CurveZMQ,它通过 TCP 连接在两个 ZeroMQ 对等点之间实现“完美的前向安全”。我将在下面解释 CurveZMQ。

ZMTP 的一组安全机制:NULL、PLAIN 和 CURVE,每个都由它们自己的 RFC 描述。NULL 本质上是我们以前的。PLAIN 允许简单的用户名和密码验证。CURVE 实现了 CurveZMQ 协议。[...]

对于 Internet 上的安全消息传递,人们会寻求实现,例如Ironhouse 模式。有关说明,请参见第 2 部分

这个协议肯定有 Ruby 实现,但我没有寻找它们。

如果您正在寻找 Python 实现,可以查看以下资源:

于 2020-04-01T15:10:52.977 回答