【发布时间】:2018-07-30 14:44:39
【问题描述】:
在我们最近的项目中,我们尝试保护 pub-sub jeromq 连接。
为此,我们希望主机首先通过网络对新主机进行身份验证,并且阻止所有未通过身份验证的主机订阅。另一个好处是在网络中发送的消息更少。
那么,是否可以创建发布白名单?
【问题讨论】:
在我们最近的项目中,我们尝试保护 pub-sub jeromq 连接。
为此,我们希望主机首先通过网络对新主机进行身份验证,并且阻止所有未通过身份验证的主机订阅。另一个好处是在网络中发送的消息更少。
那么,是否可以创建发布白名单?
【问题讨论】:
白名单没有直接的原型,但需要解决的问题是显而易见的(在 PUB/SUB 中的反转后,主题列表处理发生在 4.x+ 版本中,即导致处理器端过载的潜在风险,这在 2.x + 3.x 版本中是不可能的)。
让我们提出一个多阶段的方法。
如果我们不能阻止,让我们首先在一个XSUB/XPUB琐碎原型上暴露一个反转的.bind()/.connect(),用于初始接触检测,以便检测新成员来尝试加入生产服务,接下来让我们只允许那些拥有 POSACK 的人进入另一个门(对那些允许的白名单低声说,而不是其他人),另一个 ZeroMQ 基础设施(一个由琐碎组成的信令/消息传递平面原型)打开了大门,那些预先选择的人可以继续进行。同样,反向.bind() / .connect() 操作可防止对公开暴露的接入点进行大规模攻击的风险。甚至对于那些需要非公共地址转换的情况和场景也存在解决方案(但这些解决方案超出了此处审查的唯一 ZeroMQ 工具)。
其他人不知道去哪里的详细信息,他们没有通过身份验证。
这样您就可以获得白名单政策(可以阅读有关在安全机制中使用“敲门”的更多详细信息)。
【讨论】: