簡體   English   中英

如何通過websockets保護MQTT

[英]How to secure MQTT over websockets

我想了解在通過websockets將MQTT代理映射到瀏覽器時保護Mosquitto的最佳方法。 我正在使用Lighttpd作為websocket層,根據這篇博客文章

我的用例是單向的。 我只需要向瀏覽器發送消息。 因此,我可以使用ACL來防止惡意分子發布消息。

但是,我怎樣才能阻止歹徒訂閱,或者更好的是,首先建立連接?

我知道我可以使用ID / pw進行MQTT連接。 所以,我猜我的應用服務器可以在用戶自己驗證后將憑據發送到瀏覽器,然后Javascript客戶端可以使用這些憑據來建立MQTT / WS連接。 但是,如果我有數千個客戶端,我該如何管理ID和密碼? 或者我應該只有一些ID並定期回收它們? 我是否應該根據mosquitto-auth-plug將此位移至Redis或類似位置?

通過保護webserver層中的連接,我想知道是否有更好的方法。 Lighttpd的mod_secdownload插件似乎提供了一個模型,可以根據共享密鑰(保留服務器端)和時間戳的哈希動態生成URL。 用戶通過身份驗證后,應用服務器將向下傳遞此URL,然后客戶端將使用它來建立到MQTT代理的連接。 過了一會兒,URL將過期,Javascript客戶端可以捕獲此異常,如果用戶仍然經過身份驗證,則可以請求新的WS連接URL。 這與許多API身份驗證類似。 它有價值嗎?

有更好的方法嗎?

謝謝,J。

現在您可以使用libwebsockets支持構建mosquitto,然后為TLS支持創建X.509證書,而不是Lighttpd方法。

在jpmens的博客文章中,您可以找到一步一步的程序,還可以找到通過Websockets連接Mosquitto代理的Paho MQTT JavaScript客戶端。 http://jpmens.net/2014/07/03/the-mosquitto-mqtt-broker-gets-websockets-support/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM