ZeroMQ安全地通过互联网

Joh*_*uff 6 ruby sockets ssl zeromq

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

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

即使这不是内置于zeroMQ中,我也会假设有一些方法可以使用OpenSSL或类似方法来设置它.

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

Grz*_*cki 5

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

  • 加密隧道socat

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

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


Jea*_*net 5

只是想补充一点,自从问题被提出以来,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 协议。[...]

为了通过互联网进行安全消息传递,人们会寻求实现Ironhouse 模式等。有关说明,请参阅第 2 部分。

当然有这个协议的 Ruby 实现,但我没有寻找它们。

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