Zum Hauptinhalt springen

MQTT trifft PKI: Wie Zertifikate das MQTT-Protokoll absichern können

Vertrauenswürdige IoT-Infrastrukturen durch digitale Identitäten

02.07.2025

Das MQTT-Protokoll hat sich für die Machine-to-Machine-Kommunikation (M2M) als Standard etabliert. Besonders im Internet der Dinge erfreut sich das Protokoll aufgrund seiner Leichtgewichtigkeit großer Beliebtheit. Doch wie sicher ist MQTT und wie können vertrauenswürdige IoT-Infrastrukturen aufgebaut werden?

Was ist das MQTT-Protokoll?

Bei dem MQTT-Protokoll handelt es sich um ein offenes Netzwerkprotokoll für die Kommunikation zwischen Geräten und Maschinen. MQTT bedeutet Message Queueing Telemetry Transport. Es ist ressourcensparend und zuverlässig. Daher kommt MQTT vor allem im IoT und IIoT zum Einsatz. Das MQTT-Protokoll wird genutzt, um alle Arten von Daten in zum Teil instabilen oder bandbreitenbeschränkten Netzwerken auszutauschen.

Wie funktioniert das MQTT-Protokoll?

Das MQTT-Protokoll funktioniert nach dem PUBLISH/SUBSCRIBE-Prinzip über einen zentralen Server, dem sogenannten MQTT-Broker. Ein MQTT-Client, z.B. ein Sensor, veröffentlicht (PUBLISH) seine Informationen und Werte in einem Topic an den MQTT-Broker. Ein anderer MQTT-Client, z.B. eine Software, kann das Topic abonnieren (SUBSCRIBE) und erhält die entsprechenden Daten vom MQTT-Broker. Zwischen den beiden MQTT-Clients besteht keine direkte Kommunikationsverbindung. Daher funktioniert die Kommunikation nicht ohne MQTT-Broker.

Ein Topic ist hierarchisch, ähnlich einem Dateipfad, aufgebaut. MQTT-Clients können spezifische Topics, z.B. die Temperaturwerte eines bestimmten Geräts, abonnieren oder aber mit Wildcards allgemeinere Topics, z.B. die Temperaturwerte aller Geräte oder alle Werte eines bestimmten Geräts, anfordern.

MQTT-Nachrichten bestehen aus dem Topic und der sog. Payload. Dabei handelt es sich um den eigentlichen Inhalt der Nachricht, z.B. der Wert eines bestimmten Sensors. Dadurch ist das MQTT-Protokoll so leichtgewichtig. Die Payload hat keine standardisierte Datenstruktur.

Bricht die Verbindung zwischen einem MQTT-Client und dem MQTT-Broker unerwartet ab, kann der MQTT-Client eine Nachricht hinterlegen, die der Broker an die Abonnenten schickt, um sie über den Verbindungsabbruch in Kenntnis zu setzen. Diese Nachricht wird als Last Will oder Testament bezeichnet.

Ist die Verbindung zwischen dem MQTT-Broker und einem Abonnenten unterbrochen, kann der Broker die abonnierten Nachrichten zwischenspeichern, um sie zu schicken, sobald die Verbindung zum Abonnenten wieder aktiv ist. Dadurch eignet sich MQTT besonders für unzuverlässige und bandbreitenbeschränkte Netzwerke.

Quality of Service

Die Nachrichten eines MQTT-Publishers können in drei unterschiedlichen Quality-of-Service-Stufen (QoS) an den Broker übertragen werden. Eine Nachricht mit QoS 0 wird genau einmal an den Broker geschickt. Der Broker sendet keine Bestätigung, dass er die Nachricht erhalten hat. Bei einer Nachricht mit QoS 1 sendet der MQTT-Client die Nachricht in regelmäßigen Abständen so oft an den Broker, bis er eine Empfangsbestätigung erhalten hat. Die Nachrichten können unter Umständen mehrfach beim Broker ankommen. Verschickt ein MQTT-Client Nachrichten mit QoS 2 an den Broker, stellen sie durch einen vierstufigen Handshake sicher, dass die Nachricht nach einmaligem Senden auch tatsächlich ankommt. Die QoS 2-Stufe ist am ressourcenintensivsten.

 

Wie sicher ist das MQTT-Protokoll?

Als das MQTT-Protokoll 1999 entwickelt wurde, hatte die Sicherheit von MQTT keine Priorität. Clients und Broker kommunizieren unverschlüsselt und ohne Authentifizierung über Port 1883 miteinander.

Erfolgt die MQTT-Kommunikation über das Internet, kann sie mit TLS verschlüsselt werden. Dies wird als MQTT over TLS bezeichnet. Das schützt die Verbindungen zwischen Client und Broker. Auf dem Broker selbst sind die Nachrichten aber nach wie vor ungeschützt. Für Verbindungen über MQTT over TLS wird der Port 8883 genutzt.

Für die Authentifizierung der Clients am MQTT-Broker können verschiedene Methoden eingerichtet werden. Die einfachste ist die Authentifizierung mit Benutzername und Kennwort. Allerdings werden die Anmeldedaten im Klartext übertragen, was die Nutzung von TLS erfordert, wenn die Authentifizierung sicher sein soll. Zusätzlich müssen die Zugangsdaten auch sicher gespeichert und verteilt werden, was bei einer Vielzahl an MQTT-Clients schwierig und unübersichtlich werden kann.

Eine andere Methode zur Authentifizierung sind Maschinenidentitäten. Sie bestehen aus einem Schlüsselpaar (öffentlicher und privater Schlüssel) und einem Zertifikat. Jeder MQTT-Client und der MQTT-Broker erhalten eine Maschinenidentität. Diese werden durch eine Public Key Infrastruktur (PKI) zur Verfügung gestellt.  Dadurch kann Vertrauen zwischen Client und Broker aufgebaut werden und trotzdem der Verwaltungsaufwand im Rahmen gehalten werden. Um die Übersicht über die Zertifikate und Identitäten zu behalten, sollte eine gute Zertifikatverwaltungs- und PKI-Software zum Einsatz kommen.

Eine weitere Möglichkeit ist die Authentifizierung per OAuth. Allerdings benötigt sie eine umfangreiche OAuth-Infrastruktur. Zertifikate kommen bei OAuth zum Einsatz, um sich am Identity-Provider zu authentisieren und das für OAuth notwendige Token zu erhalten.

Des Weiteren ist es unabdingbar den MQTT-Broker sicher zu konfigurieren. Jeder Client sollte nur Zugriff auf die von ihm benötigten Topics haben. Das wird Least Privilege genannt. Dadurch wird verhindert, dass MQTT-Clients Daten manipulieren oder abgreifen können, die sie nicht benötigen.

Whitepaper »Sichere Maschinenidentitäten für IoT und OT«

Absicherung von Geräten, Servern und Prozessen

  • Erfahren Sie, wie Sie eine stabile und effektive Hierarchie für digitale Zertifikate entwickeln.
  • Verstehen Sie den gesamten Lebenszyklus von Zertifikaten, von der Erstellung über die Verlängerung bis hin zur Archivierung und dem sicheren Entzug.
  • Erfahren Sie, wie Sie detaillierte Berichte und Analysen nutzen können, um die Leistung Ihrer PKI-Infrastruktur zu überwachen und Sicherheitsrisiken frühzeitig zu erkennen.

Whitepaper herunterladen 

Wie können Zertifikate das MQTT-Protokoll absichern?

Digitale Zertifikate können Kommunikation absichern, Daten schützen, Zugriffsrechte autorisieren und Vertrauen aufbauen.

Was ist ein digitales Zertifikat?

Ein Zertifikat reichert ein Schlüsselpaar, bestehend aus einem öffentlichen und privaten Schlüssel, mit Zusatzinformationen an. Die wichtigsten Zusatzinformationen sind die Zertifizierungsstelle (Certificate Authority, CA), die das Zertifikat signiert hat, das Subjekt und die Gültigkeit des Schlüsselpaars bzw. des Zertifikats.

Vertrauen und Zugriffsrechte

Zertifikate können genutzt werden, um Vertrauen zwischen einem MQTT-Client und dem MQTT-Broker aufzubauen. Hier kommt die CA ins Spiel. Alle Beteiligten müssen lediglich der CA (dem Aussteller der Zertifikate) vertrauen, um gegenseitige Vertrauensbeziehungen aufzubauen. Dies erleichtert das Management, auch von großen Mengen, von Identitäten enorm.

Dieses Vertrauen, dass durch die CA hergestellt wird, kann auch genutzt werden, damit sich ein MQTT-Client mit einem Zertifikat am MQTT-Broker authentisieren kann. Dadurch kann der Broker den Client entsprechend seinen Zugriffrechten autorisieren, auf die für diesen Client erlaubten Topics zuzugreifen. Für eine möglichst hohe Sicherheit gilt: Nur so viele Rechte wie nötig und so wenig wie möglich. Je mehr Rechte ein Client besitzt, desto größer ist die Gefahr, dass dieser, ob absichtlich oder unabsichtlich, diese Rechte missbraucht. Deshalb sollten Rechte individuell für jeden Client vergeben werden und nicht alle Clients die gleichen Rechte bekommen, was wiederrum nur mit eindeutig nachweisbaren Maschinenidentitäten möglich ist.

 

Kommunikation und Daten absichern

Besteht kein Vertrauen zum MQTT-Broker, weil dieser vielleicht nicht unter der eigenen Kontrolle steht oder ungeschützt ist, können MQTT-Client trotzdem über diesen Broker Daten sicher senden und abrufen.

Beim sogenannten MQTT Payload Stamping signiert ein MQTT-Client seine Payload, indem er mit einem Hashalgorithmus einen Hash auf seine Daten berechnet. Diesen Hashwert verschlüsselt er mit seinem privaten Schlüssel, den nur dieser MQTT-Client kennt. Die so signierten Daten werden an den MQTT-Broker publiziert. Ein Abonnent kann wiederrum die signierten Daten abrufen und mit dem öffentlichen Schlüssel des MQTT-Clients den Hashwert entschlüsseln. Außerdem berechnet der Abonnent ebenfalls den Hashwert auf die Payload. Stimmen beide Hashwerte überein, kann der Abonnent sicher sein, dass die Daten auf dem Transport über den MQTT-Client nicht manipuliert wurden.

Eine weitere Möglichkeit zur Absicherung ist die MQTT Payload Encryption, also die Verschlüsselung der Payload mit dem öffentlichen Schlüssel des Abonnenten. In diesem Fall kann nur der Abonnent die Daten entschlüsseln, weil er den privaten Schlüssel besitzt. Wirklich sicher wird das Ganze aber erst, wenn sowohl Payload Stamping und wie auch Payload Encryption angewandt werden. Nur das verhindert das der Broker die Nachrichten weder mitlesen noch manipulieren kann. Es verhindert auch das der MQTT-Broker selbst eine verschlüsselte Nachricht mit dem öffentlichen Schlüssel des Abonnenten erstellt und diese übermittelt. Greifen allerdings verschiedene Abonnenten auf die Daten zu, muss die Payload für jeden Abonnenten einzeln mit dessen öffentlichen Schlüssel verschlüsselt werden.

Zentrales Zertifikatmanagement mit der ECOS TrustManagementAppliance

ECOS Technology stellt mit der ECOS TrustManagementAppliance eine PKI- und Key-Management-Lösung für ein zentrales und sicheres Management von Zertifikaten und Schlüsseln zur Verfügung.

Die Kernaufgabe der Trust Management Appliance (TMA) ist das Lifecycle-Management von Zertifikaten und Schlüsseln. Dazu zählen das Erstellen, Speichern, Verteilen, Verlängern und Zurückziehen von Zertifikaten und Schlüsseln.

Active Reports erlauben mithilfe eines umfassenden Reportings inkl. aktiver Benachrichtigungen den Überblick zu behalten.

Um alle Vorgänge rund um das Zertifikat- und Schlüsselmanagement durchgängig zu automatisieren, beinhaltet die TMA diverse Standardschnittstellen sowie eine REST-API. Dadurch lässt sie sich problemlos in bestehende IoT- und OT-Umgebungen integrieren.

ECOS Newsletter

Abonnieren Sie unseren Newsletter für mehr Informationen zur IT-Sicherheit!

Kontakt