ZeroMQ安全地通过互联网

时间:2012-10-21 01:02:15

标签: ruby sockets ssl zeromq

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

我发现这个旧的stackoverflow链接,How does zeromq work together with SSL?说他们正在开发某种安全性,但那是一年前,我找不到任何新的引用。

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

注意:如果您想要安全传输,zeroMQ网站会提及使用VPN或其他内容。我不想使用VPN。必须有更好的方法。

2 个答案:

答案 0 :(得分:4)

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

  • 使用socat
  • 加密隧道

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

部分链接:[1][2][3][4]

答案 1 :(得分:1)

只需补充一句,因为提出了问题,ZMQ团队从ZeroMQ v4.0.0开始,开发了 CurveZMQ protocol ,它是基于ZeroMQ的身份验证和加密协议在CurveCP和NaCl上-快速,安全的椭圆曲线加密。这样就可以进行加密的ZMQ消息交换,该消息应该可以通过Internet进行安全保护。

有关更多详细信息,请参见Using ZeroMQ Security part 1。当时添加的一些功能是:

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

新的安全协议CurveZMQ,可通过TCP连接在两个ZeroMQ对等之间实现“完美的转发安全性”。生病 在下面解释CurveZMQ。

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

对于通过Internet进行安全消息传递,人们会寻求实现例如 Ironhouse模式。有关说明,请参见part 2

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

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