Zum Inhalt springen
Zyberum Cyber Security Firm
Menü
GlossarIoTProtokolle

MQTT

MQTT ist das Publish/Subscribe-Protokoll hinter den meisten IoT-Flotten, standardisiert von OASIS und als ISO/IEC 20922. Wie es arbeitet, welche Broker-Fehler wir finden.

Aktualisiert Diese Seite als Markdown

Kurz gesagt

MQTT ist ein leichtgewichtiges Publish/Subscribe-Nachrichtenprotokoll für Geräte mit wenig Bandbreite oder Energie. Clients verbinden sich mit einem Broker, veröffentlichen Nachrichten auf hierarchischen Topics und abonnieren Topics mit Wildcards. Es ist ein OASIS-Standard (Versionen 3.1.1 und 5.0) und ISO/IEC 20922. Authentifizierung, Autorisierung und Verschlüsselung überlässt die Spezifikation der Implementierung, MQTT-Sicherheit ist also Broker-Konfiguration: TLS, Zugangsdaten pro Gerät und Zugriffslisten für Topics.

Was ist MQTT?

MQTT ist ein leichtgewichtiges Publish/Subscribe-Nachrichtenprotokoll für Geräte mit begrenzter Bandbreite, Energie und Rechenleistung. Clients sprechen nicht miteinander; sie verbinden sich mit einem Broker, veröffentlichen Nachrichten auf Topics und abonnieren Topics. Topics sind hierarchische Zeichenketten wie werk/linie3/roboter7/temperatur, und Abonnements können Wildcards nutzen: + für eine Ebene, # für alles darunter. Drei Quality-of-Service-Stufen (0, 1, 2) regeln die Zustellgarantien. Retained Messages halten den letzten Wert eines Topics für neue Abonnenten vor, und eine Last-Will-Nachricht veröffentlicht der Broker, wenn ein Client unerwartet die Verbindung verliert.

Das Protokoll läuft über TCP, üblicherweise auf Port 1883 für Klartext und 8883 für TLS, und über WebSockets für Browser. Es ist das dominierende Protokoll in IoT-Flotten, Smart-Home-Produkten, Fahrzeug-Backends und Industrie-4.0-Datenpipelines, einschließlich OPC UA PubSub über MQTT und Sparkplug B.

Wo ist es definiert?

MQTT wird von OASIS standardisiert. Version 3.1.1 (2014) ist auch als ISO/IEC 20922:2016 veröffentlicht; Version 5.0 (2019) ergänzt Reason Codes, Nachrichteneigenschaften, Nachrichtenablauf, Shared Subscriptions, serverseitige Limits und die erweiterte Authentifizierung über das AUTH-Paket. Das Sicherheitskapitel beider Spezifikationen ist ausdrücklich nicht normativ: Es empfiehlt TLS, Authentifizierung von Clients und Servern, Autorisierung des Zugriffs auf Topics und Schutz des Brokers, schreibt aber nichts davon vor. Sicherheit kommt also aus der Broker-Konfiguration und der Client-Implementierung, nicht aus dem Protokoll.

Für Gerätehersteller gilt der Cyber Resilience Act: Anhang I verlangt Schutz von Daten bei Übertragung und Speicherung, Zugriffskontrolle und Schutz vor unbefugtem Zugriff, was für ein MQTT-angebundenes Produkt TLS, Authentifizierung pro Gerät und Autorisierung auf dem Broker bedeutet.

Was es in der Praxis bedeutet

Wir haben MQTT-Broker, die angebundenen Geräte und die Cloud-Backends dahinter in einer Reihe von IoT-Penetrationstests geprüft, von ESP32-basierten Kommunikationsmodulen bis zu Geräteflotten. Die Findings wiederholen sich:

  • Anonymer Zugang. Der Broker nimmt Verbindungen ohne Zugangsdaten an, meist ein Überbleibsel aus der Entwicklung.
  • Kein TLS oder TLS ohne Prüfung. Klartext auf 1883 ins Internet oder eine Gerätefirmware, die jedes Serverzertifikat akzeptiert, was das Abfangen von Zugangsdaten und Befehlen in jedem Netz trivial macht, dem das Gerät beitritt.
  • Ein Zugangsdatensatz für die Flotte. Benutzername und Passwort oder ein Client-Zertifikat, fest in die Firmware jedes Geräts eingebacken. Firmware-Extraktion aus einem Gerät liefert Zugriff auf alle.
  • Keine Topic-Autorisierung. Jeder authentifizierte Client darf # abonnieren und überall veröffentlichen. Daten aller Kunden und Befehle an alle Geräte werden les- und schreibbar, das MQTT-Gegenstück zu einer IDOR.
  • Identität nicht an Topics gebunden. Das Gerät veröffentlicht unter devices/<seriennummer>/..., und der Broker prüft nie, ob der authentifizierte Client diese Seriennummer ist.
  • Retained Messages und Wills, die Zustand leaken. Zugangsdaten, WLAN-Passwörter oder Standortdaten in Retained-Payloads, die jeder Abonnent beim Verbinden bekommt.
  • Exponierte Verwaltung. Broker-Dashboards, WebSocket-Listener und Metrik-Endpunkte aus dem Internet erreichbar, mit Standardzugangsdaten.
  • Client-ID-Kollisionen. Vorhersagbare Client-IDs erlauben einem Angreifer, legitime Geräte zu trennen, indem er sich mit derselben ID verbindet.

Die Fixes sind Standard: TLS überall mit Zertifikatsprüfung und idealerweise Pinning auf dem Gerät, Zugangsdaten oder Client-Zertifikate pro Gerät mit einem Weg zum Widerruf, Zugriffslisten, die jede Identität an ihr eigenes Topic-Präfix binden, Raten- und Payload-Limits und ein Broker, der nicht weiter erreichbar ist, als die Architektur es braucht. Zyberum testet MQTT-Umgebungen Ende zu Ende: Broker, Geräte (inklusive Firmware-Analyse), Mobile Apps und Cloud-APIs.

Häufige Missverständnisse

TLS ist keine Autorisierung; eine verschlüsselte Verbindung zu einem Broker ohne ACLs zeigt trotzdem allen alles. Ein gemanagter Broker in der Cloud ist nicht von sich aus sicher; ACLs und Identitäten musst du weiterhin selbst konfigurieren. Und MQTT ist weder ein reines Industrie- noch ein reines Consumer-Protokoll; dieselben Fehler tauchen in beiden Welten auf.

FAQ

Häufig gestellte Fragen

Ist MQTT verschlüsselt?

Von sich aus nicht. MQTT läuft über TCP, standardmäßig im Klartext auf Port 1883. Verschlüsselung kommt durch TLS, üblicherweise auf Port 8883, und nur, wenn der Broker es erzwingt und das Gerät das Broker-Zertifikat prüft. Firmware, die die Zertifikatsprüfung abschaltet, damit die Verbindung klappt, ist eines der häufigsten Findings in unseren IoT-Tests.

Was ist der häufigste MQTT-Sicherheitsfehler?

Fehlende Autorisierung. Broker sind mit Authentifizierung konfiguriert, aber ohne Zugriffslisten für Topics, sodass jedes authentifizierte Gerät das Wildcard-Topic # abonnieren und die Daten aller anderen Geräte lesen oder Befehle an andere Geräte senden kann. Ein aus einem Gerät extrahierter Satz Zugangsdaten öffnet dann die ganze Flotte.

Macht MQTT 5.0 das Protokoll sicher?

Es ergänzt nützliche Werkzeuge, vor allem die erweiterte Authentifizierung über das AUTH-Paket, die Challenge-Response-Verfahren wie SCRAM erlaubt, dazu Reason Codes und serverseitige Limits. Das Sicherheitskapitel bleibt nicht normativ. Ein 5.0-Broker mit anonymem Zugang ist so offen wie ein 3.1.1-Broker mit anonymem Zugang.

Quellen

Passende Seiten

Jetzt starten

Ein Begriff, der dein Produkt betrifft?

In 15 Minuten sagen wir dir, was er für dich praktisch bedeutet, welche Anforderung daraus folgt und was der sinnvolle nächste Schritt ist.

  • Direkte Antwort von einem Security Engineer
  • Welche Norm oder welches Gesetz für dich gilt
  • Kostenlos und unverbindlich
Tom Zaubermann

Dein Gespräch führst du mitTom ZaubermannGründer & CEO, Zyberum

Anrufen: +49 176 439 17074info@zyberum.com

Oder schreib uns

Wir antworten innerhalb eines Werktags.

AnrufenSecurity Engineer fragen

Such dir einen Termin aus

In neuem Tab öffnen