Security 如何通过WebSocket保护MQTT

Security 如何通过WebSocket保护MQTT,security,authentication,lighttpd,mqtt,mosquitto,Security,Authentication,Lighttpd,Mqtt,Mosquitto,我想了解在WebSocket上向浏览器呈现MQTT代理时保护Mosquitto的最佳方法。根据,我目前正在为websocket层使用Lighttpd 我的用例是单向的。我只需要向浏览器发送消息。因此,我可以使用ACL来防止恶棍发布消息 但我如何才能阻止恶棍订阅,或者更好的是,首先阻止他们建立联系 我知道我可以为MQTT连接使用ID/pw。因此,我想,一旦用户对自己进行了身份验证,我的应用服务器就可以将凭据发送到浏览器,然后Javascript客户端可以使用这些凭据建立MQTT/WS连接。但是,如

我想了解在WebSocket上向浏览器呈现MQTT代理时保护Mosquitto的最佳方法。根据,我目前正在为websocket层使用Lighttpd

我的用例是单向的。我只需要向浏览器发送消息。因此,我可以使用ACL来防止恶棍发布消息

但我如何才能阻止恶棍订阅,或者更好的是,首先阻止他们建立联系

我知道我可以为MQTT连接使用ID/pw。因此,我想,一旦用户对自己进行了身份验证,我的应用服务器就可以将凭据发送到浏览器,然后Javascript客户端可以使用这些凭据建立MQTT/WS连接。但是,如果我有数千个客户机,如何管理ID和密码?或者我应该只拥有一把ID并定期回收它们?我是否应该将这一部分交给Redis或类似公司

我想知道是否有更好的方法,通过在Web服务器层中保护连接。Lighttpd插件似乎提供了一种模型,通过该模型,可以根据共享机密(保留在服务器端)和时间戳的散列动态生成URL。一旦用户通过身份验证,应用服务器将向下传递此URL,然后客户端将使用它建立到MQTT代理的连接。一段时间后,URL将过期,Javascript客户端可以捕获此异常,如果用户仍然经过身份验证,则可以请求新的WS-connection URL。这与许多API身份验证模式类似。它在这里有价值吗

有更好的方法吗


谢谢,J.

现在您可以使用libwebsockets支持构建MOSQUITO,然后为TLS支持创建X.509证书,而不是Lighttpd aproach

在jpmens的这篇博文中,您可以找到一步一步的过程,还有一个Paho-MQTT-JavaScript客户端,它通过Websockets连接Mosquitto代理。

谢谢-经过一段时间的努力,我已经升级到1.4版本,并开始使用WebSocket。我在这里记录了我的旅程->