我正在考虑使用 zeromq 作为我的应用程序之间的消息传递层。至少在某些情况下我希望通信是安全的并且我正在考虑 SSL。
是否有一些标准的方法来启用 zeromq?据我了解,它不支持开箱即用。
如果我在连接到套接字时只有一个参数(bool: useSsl)就好了:)
有什么想法吗?
最佳答案
我知道这并不是您问题的真正答案,我将直接使用 RSA 加密消息,然后再使用 0mq 发送它们。
如果没有在我选择的平台上经过全面测试和实现的更集成的加密方法,这就是我要使用的方法。 0mq 最近刚刚发布了第 4 版,它内置了加密功能,但仍被认为是实验性的,语言绑定(bind)并不完全支持它。
加密消息而不是连接似乎提供了最简单的升级路径,考虑到我们目前必须如何实现加密,我们的目的的区别几乎只是语义。
编辑:我现在比写这篇文章时更了解加密,RSA 不是加密消息数据的合适选择。使用 AES,要么手动共享 key (这是我们的短期方法),要么像 Jim Miller 的回答那样实现 key 共享方案......但如果你采用后一种方法,设计和实现 key 共享方案,请当心< em>安全地很难。比你想象的要难得多。您可以直接实现 SSL/TLS(使用消息 BIO),其他人已经这样做了,这也不简单,但至少知道 SSL 方案是行业标准,因此满足最低安全要求。
简而言之,在 ZMQ 4 中的椭圆曲线加密被认为是可靠的并成为标准之前,“可接受的解决方案”将是通过连接手动实现 SSL/TLS,如果失败,则使用 AES 128 或 256安全 key 共享机制( key 共享是适合使用 RSA 的地方)。
关于sockets - zeromq 如何与 SSL 协同工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5391435/