MQTT Sicherheit – wie zu verhindern, dass Abwürfe Themen abonnieren?

Ich habe alles Setup und arbeite für MQTT jetzt. Ich benutze die IBM wmqtt.jar und die Mosquitto Makler ..

Mein Java Servlet erstellt eine MQTTConnection zum Broker und veröffentlicht unter dem Thema "AndroidDeviceID / myAppName" ..

Der Android-Client abonniert das gleiche Thema …

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

Wie wird das richtig vermieden?

  • AsyncTask und IllegalArgumentException
  • Paho MQTT Android Service Problem
  • Wie kann ich Ping mit Eclipse Paho MQTT Client senden?
  • Android & (Millionen von) Push-Benachrichtigungen
  • Paho MQTT Android Service aufwachen Aktivität
  • Wieder: Android MQTT kann Client nicht erstellen
  • Socket-Fehler für Client-ID auf RSMB MQTT-Broker bei der Verwendung von Android
  • MQTT vs. XMPP Was soll ich wählen?
  • 4 Solutions collect form web for “MQTT Sicherheit – wie zu verhindern, dass Abwürfe Themen abonnieren?”

    Mosquitto bietet Sicherheit durch Benutzername und Passwort-Authentifizierung sowie Begrenzung des Zugriffs auf Themen mit Zugriffssteuerungslisten. Es gibt Details in der mosquitto.conf man Seite: http://mosquitto.org/man/mosquitto-conf-5.html

    ACL ist, was beschränkt Kunden abonnieren Themen, ich bin mit einem auth-Plugin zu tun, hier ist der Link mosquitto auth Plugin

    Im Allgemeinen hält MQTT Sicherheit sehr "leicht", wie es ursprünglich für den Einsatz mit geschlossenen Sensornetzwerken konzipiert wurde. Es liegt an der Broker-Implementierung, um zB SSL zur Verfügung zu stellen und zu entscheiden, wie man mit dem Benutzernamen / Passwort-Backend umgehen soll.

    Eine Verschlüsselung von Nachrichtendaten ist wahrscheinlich nicht vom Protokoll selbst bereitgestellt und ist etwas, was typischerweise auf der Anwendungsschicht erfolgt, wenn dies kritisch ist.

    Wenn Sie eine benutzerdefinierte Art und Weise der Behandlung von Zugriffskontrolle und Erlaubnis von Themen benötigen, versuchen Sie es mit dem HiveMQ MQTT Broker. Wie in der Dokumentation erklärt, können Sie Ihr eigenes Verhalten mit einem Plugin umsetzen. Dieser Ansatz ermöglicht es Ihnen, vollständig zu entscheiden, wie die Authentifizierung und Autorisierung von Clients, veröffentlicht und abonniert wird behandelt [1]. Wenn Sie interessiert sind, ist der beste Weg, um mit Ihrem eigenen Plugin zu beginnen, hier beschrieben [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

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.