我有一个像这样的MQTT环境:
有一个(灰色)传感器和一个Observer与主题 room / temp 相关,到目前为止一直很好,传感器可以发布,Observer可以获得应有的信息。 / p>
我现在遇到的问题是:我需要阻止第二个不受欢迎的客户端(橙色的),并开始发布到相同的主题,据我所知,MQTT是松耦合的,所以观察者不关心谁在推动临时值,但是当有人破解我的环境并发布无意义触发我的警报时,我发现安全无瑕......
任何建议?
顺便使用eMQTTd并根据this etc / emqttd.config 文件中没有任何内容可以避免...
谢谢!
答案 0 :(得分:1)
我只有Mosquitto的经验,但是,通过快速阅读链接的文档,看起来有几种方法可以实现这一点。
我不清楚你是否在谈论这里的偶然问题 - 即。错误的信息被意外发送 - 或者如果您正在抵御主动威胁。
如果您担心偶然覆盖某个值,那么(第38页)上的简单clientid解决方案就可以了。
但我的印象是,如果你面对一个真正的对手(黑客等),它仍会以明文传播,因此对你没用。如果这是您的问题,只需设置SSL并删除所有非SSL侦听器。 (见第24页)。这应该限制加密通道的所有流量。然后,如果您希望添加密码/用户身份验证(第38页)以完成安全性。
或者,根据您的配置,您可以在防火墙级别阻止未批准的IP地址(即阻止访问您的代理正在侦听除温度传感器之外的所有地址的端口)或使用eMQTTd构建的在ACL设施(第25页)。这不如完整的SSL设置安全,但根据您的需要,它可能就足够了。