Frage MQTT-Sicherheit - Wie kann man verhindern, dass Missbrauchspersonen Themen abonnieren?


Ich habe jetzt alles eingerichtet und arbeite für MQTT. Ich benutze den IBM wmqtt.jar und den Mosquitto-Broker.

Mein Java-Servlet erstellt eine MQTTConnection für den Broker und veröffentlicht sie unter dem Thema "AndroidDeviceID / myAppName".

Der Android-Client abonniert dasselbe Thema ...

Es scheint mir, dass, wenn jemand den Gerätenamen meines Benutzers kannte, sie eine einfache Android-App erstellen und dieses Thema auf meinem MQTT-Broker abonnieren könnten. Dann erhalten sie alle Benachrichtigungen (in diesem Fall Instant Messaging-Nachrichten) von meinen Benutzern.

Wie wird das richtig vermieden?


20
2018-04-07 18:33


Ursprung


Antworten:


Mosquitto bietet Sicherheit durch Benutzernamen- und Passwort-Authentifizierung und beschränkt den Zugriff auf Themen mit Zugriffskontrolllisten. Es gibt Details in der mosquitto.conf Manpage: http://mosquitto.org/man/mosquitto-conf-5.html


14
2018-04-07 18:54



ACL ist, was Clients beschränkt, die Themen abonnieren, ich benutze ein auth-plugin, um dies zu tun, hier ist der Link mosquitto auth plugin 


6
2018-04-17 14:05



Im Allgemeinen hält MQTT die Sicherheit sehr "leicht", da sie ursprünglich für die Verwendung mit geschlossenen Sensornetzwerken entwickelt wurde. Es liegt an der Broker-Implementierung, z. SSL und entscheiden, wie mit dem Benutzernamen / Passwort-Backend umzugehen ist.

Es ist unwahrscheinlich, dass die Verschlüsselung von Nachrichtendaten jemals vom Protokoll selbst bereitgestellt wird, und dies wird typischerweise in der Anwendungsebene durchgeführt, wenn dies kritisch ist.


3
2018-04-08 15:49



Verwenden Sie den HiveMQ MQTT-Broker, wenn Sie eine benutzerdefiniertere Methode zum Behandeln der Zugriffssteuerung und der Berechtigung von Zweigen benötigen. Wie in der Dokumentation erläutert, können Sie Ihr eigenes Verhalten mit einem Plugin implementieren. Mit diesem Ansatz können Sie vollständig entscheiden, wie die Authentifizierung und Autorisierung von Clients, Publishern und Abonnements gehandhabt wird [1]. Wenn Sie interessiert sind, wird hier der beste Weg beschrieben, mit einem eigenen Plugin zu beginnen [2].

Übrigens ist es auch sehr einfach, TLS für HiveMQ [3] zu konfigurieren.

Christian (HiveMQ Team)

[1] http://www.hivemq.com/docs/plugins/1.5.0/#auth-permission-chapter

[2] http://www.hivemq.com/documentations/getting-started-plugins/

[3] http://www.hivemq.com/docs/hivemq/1.5.0/#hivemqdocs_ssl_tls


2
2018-05-03 18:49