omemo_encryption_deep_dive

Deep-Dive: OMEMO Ende-zu-Ende-Verschlüsselung (XEP-0384)

Wie funktioniert OMEMO (XEP-0384) bei XMPP? Erfahre alles über das Double Ratchet Protokoll, Forward Secrecy, Plausible Deniability, Key-Verifikation und Multi-Geräte-Sicherheit.


Was ist OMEMO?

OMEMO ist der modernste kryptografische Standard für Ende-zu-Ende-Verschlüsselung (E2EE) im XMPP-Netzwerk. Die Abkürzung steht als Rekursiv-Akronym für OMEMO Multi-End-to-End Encryption.

Das Protokoll basiert auf dem weltbekannten Double Ratchet Algorithm (welcher ursprünglich für den Signal-Messenger entwickelt wurde) und wurde speziell an die dezentrale, multi-geräte-fähige Architektur von XMPP angepasst (dokumentiert in XEP-0384).


Wie funktioniert OMEMO technisch?

Im Gegensatz zu älteren Verschlüsselungsarten wie OTR (Off-the-Record), die nur zwischen zwei festen PC-Sitzungen funktionierten, ist OMEMO für die moderne Multi-Geräte-Welt konzipiert:

┌─────────────────────────────────────────────────────────────────────────────┐
│                    KRYPTOGRAFISCHER ABLAUF BEI OMEMO                        │
├─────────────────────────────────────────────────────────────────────────────┤
│ 1. **Schlüsselgenerierung:**                                                │
│    Jedes Deiner Geräte (z. B. Smartphone & Laptop) generiert ein eigenes    │
│    Schlüsselpaar (Identity Key + Pre-Keys) und veröffentlicht die öffentlichen│
│    Schlüssel auf Jabber-Server.de.                                         │
├─────────────────────────────────────────────────────────────────────────────┤
│ 2. **Lokale Verschlüsselung:**                                              │
│    Wenn Du eine Nachricht sendest, erzeugt Dein Client einen zufälligen     │
│    Einmalschlüssel (Symmetric AES Key) für den eigentlichen Inhalt.          │
├─────────────────────────────────────────────────────────────────────────────┤
│ 3. **Multi-Geräte Verschlüsselung:**                                       │
│    Dieser Einmalschlüssel wird nun für JEDES aktive Gerät Deines Chat-      │
│    Partners UND für all Deine eigenen Zweitgeräte einzeln verschlüsselt!    │
├─────────────────────────────────────────────────────────────────────────────┤
│ 4. **Sichere Übertragung:**                                                 │
│    Der Server leitet nur die verschlüsselten Pakete weiter. Er besitzt keine │
│    privaten Schlüssel und kann den Inhalt nicht lesen.                      │
└─────────────────────────────────────────────────────────────────────────────┘

Die 4 zentralen Sicherheits-Garantien von OMEMO

1. Vertraulichkeit (Confidentiality)

Niemand auf dem Übertragungsweg – weder Dein Internet-Anbieter (ISP), Betreiber öffentlicher WLAN-Hotspots noch der Serverbetreiber von Jabber-Server.de – kann Deine Nachrichten, Bilder oder Sprachnachrichten im Klartext lesen.

2. Vorwärtsgeheimhaltung (Forward Secrecy)

Für jede einzelne Nachricht werden die kryptografischen Schlüssel über das sogenannte „Ratchet-Verfahren“ (Sperrklinke) weitergedreht und danach unwiederbringlich gelöscht.
Die Folge: Selbst wenn ein Angreifer in der Zukunft Dein Smartphone beschlagnahmt und den aktuellen Geräteschlüssel ausliest, kann er vergangene, bereits empfangene Nachrichten nicht nachträglich entschlüsseln.

3. Zukunfts-Sicherheit (Break-in Recovery / Post-Compromise Security)

Sollte ein temporärer Schlüssel einmalig kompromittiert werden, stellt das System nach wenigen Nachrichtenaustauschen automatisch wieder den sicheren Zustand her, sobald neue Schlüsselpaare ausgetauscht wurden.

4. Abstreitbarkeit (Plausible Deniability)

OMEMO signiert Nachrichten nicht mit unumstößlichen digitalen Unterschriften, sondern nutzt Authentifizierungs-Codes (MACs). Mathematisch gesehen könnte theoretisch auch der Empfänger die Nachricht im Nachhinein gefälscht haben. Das bedeutet: Nachrichten können im Chat authentifiziert werden, eignen sich aber kryptografisch nicht als unumstößlicher Beweis vor Dritten.


Schlüsselverifikation: Warum Fingerabdrücke wichtig sind

Obwohl OMEMO automatisch im Hintergrund arbeitet, schützt es erst dann zu 100% vor sogenannten Man-in-the-Middle (MitM) Angriffen, wenn Du die Identity Keys (Fingerabdrücke) Deines Chatpartners verifizierst.

So verifizierst Du einen Kontakt:

  1. Öffne im XMPP-Client (Conversations, Gajim, Dino, Monal) das Profil Deines Kontakts.
  2. Wähle „Schlüssel verifizieren“ oder „QR-Code scannen“.
  3. Vergleiche die angezeigte Zeichenkette (Fingerprint) persönlich oder über einen zweiten vertrauenswürdigen Kanal (z. B. bei einem Treffen oder per Telefonat).
  4. Markiere den Schlüssel als „Vertrauenswürdig / Verifiziert“.

Sobald ein Schlüssel verifiziert ist, warnt Dich Dein Client sofort, falls Dein Kontakt ein neues Gerät hinzufügt oder sich ein fremdes Gerät in die Unterhaltung einschleust.


OMEMO in Gruppenchats (MUC)

OMEMO funktioniert nicht nur in Einzelchats, sondern auch in Gruppenräumen (Multi-User Chats – MUC). Hierbei wird die Nachricht für alle berechtigten Geräte aller Gruppenmitglieder verschlüsselt. Dadurch genießen auch vertrauliche Team-Besprechungen den vollen Schutz der Ende-zu-Ende-Verschlüsselung.


Zurück zur Security Hub Übersicht | Weiter zu Bedrohungsmodelle & Grenzen