Warum Encrypt-Then-MAC besser ist als MAC-Then-Encrypt
Verstehen Sie die kryptografische Begründung dafür, Verschlüsselung und Authentifizierung in der richtigen Reihenfolge zu kombinieren.
Warum Encrypt-Then-MAC besser ist als MAC-Then-Encrypt ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Drei Reihenfolgen bei der Komposition
Beim Kombinieren von Verschlüsselung und einem MAC gibt es drei Reihenfolgen: Encrypt-then-MAC (EtM), MAC-then-Encrypt (MtE) und Encrypt-and-MAC (E&M). Jede davon hat grundlegend andere Sicherheitseigenschaften, und nur eine ist in allen Situationen nachweislich sicher.
Encrypt-then-MAC definiert
Bei Encrypt-then-MAC wird der Klartext zunächst verschlüsselt, um den Ciphertext zu erzeugen, und anschließend der MAC über diesem Ciphertext berechnet. Der Empfänger kann den MAC überprüfen, bevor er überhaupt eine Entschlüsselung versucht. Dadurch wird eine manipulierte Nachricht sofort abgewiesen, ohne Informationen preiszugeben.
MAC-then-Encrypt definiert
Bei MAC-then-Encrypt wird der MAC über dem Klartext berechnet, anschließend werden Klartext und MAC gemeinsam verschlüsselt. Der Empfänger muss die Nachricht entschlüsseln, bevor er den MAC überprüfen kann. Dadurch werden Padding-Oracle- und Decryption-Oracle-Angriffe ermöglicht.
Schwachstelle von SSL 3.0 und TLS 1.0
SSL 3.0 und TLS 1.0 verwendeten bei Blockchiffren im CBC-Modus die Reihenfolge MAC-then-Encrypt. Diese Schwachstelle wurde 2011 durch den BEAST-Angriff und 2014 durch den POODLE-Angriff ausgenutzt. Beide Angriffe nutzten das Oracle aus, das entsteht, wenn die Entschlüsselung vor der MAC-Überprüfung erfolgt.
Beweis von Bellare und Namprempre
Bellare und Namprempre haben im Jahr 2000 formal bewiesen, dass von den drei Kompositionsreihenfolgen nur Encrypt-then-MAC für alle Kombinationen sicherer Verschlüsselungs- und MAC-Primitiven IND-CCA2-Sicherheit (Sicherheit gegen Angriffe mit gewähltem Ciphertext) erreicht. MtE und E&M können bei bestimmten Kompositionen fehlschlagen.
Encrypt-and-MAC in SSH
SSH verwendet Encrypt-and-MAC: Der MAC wird über dem Klartext berechnet und zusammen mit dem Ciphertext in unverschlüsselter Form übertragen. SSH war zwar nicht denselben Exploits wie SSL/TLS mit MtE ausgesetzt, aber auch diese Komposition ist theoretisch fehlerhaft, da sie durch den unverschlüsselten MAC Informationen über den Klartext preisgeben kann.
AEAD als sichere Abstraktion
Authenticated Encryption with Associated Data (AEAD) ist die moderne Abstraktion, die das Kompositionsproblem bereits durch ihr Design löst. AEAD integriert Verschlüsselung und Authentifizierung in einem einzigen Primitiv und stellt sicher, dass beide immer korrekt kombiniert werden, ohne dass der Entwickler eine Kompositionsreihenfolge auswählen muss.
AES-GCM: Der AEAD-Standard
AES-GCM (Galois/Counter Mode) ist die am weitesten verbreitete AEAD-Cipher-Suite. Sie bietet authentifizierte Verschlüsselung durch eine Kombination aus Verschlüsselung im CTR-Modus und GHASH-Authentifizierung und wird auf modernen CPUs durch die Anweisungen AES-NI und CLMUL hardwarebeschleunigt.
TLS 1.3 schreibt ausschließlich AEAD vor
TLS 1.3 vollzog einen klaren Bruch mit der Vergangenheit, indem alle Cipher-Suites ohne AEAD entfernt wurden. Jede TLS-1.3-Cipher-Suite verwendet AEAD und beseitigt dadurch ganze Klassen von Schwachstellen, die durch eine fehlerhafte manuelle Kombination von Verschlüsselungs- und MAC-Primitiven in früheren TLS-Versionen verursacht wurden.
Primitive nicht manuell kombinieren
Die wichtigste Lehre aus Jahrzehnten kryptografischer Angriffe ist, dass das manuelle Kombinieren von Verschlüsselungs- und MAC-Primitiven selbst für Experten fehleranfällig ist. Moderne kryptografische Bibliotheken stellen AEAD-Schnittstellen speziell bereit, um zu verhindern, dass Entwickler bei der Kombination Fehler machen, die zu Schwachstellen in der Praxis führen.
Praktische Hinweise
Verwenden Sie beim heutigen Aufbau von Systemen immer ein AEAD-Primitiv wie AES-GCM oder ChaCha20-Poly1305. Wenn Sie mit Legacy-Systemen interoperieren müssen, die einen separaten MAC und eine separate Verschlüsselung verwenden, stellen Sie sicher, dass die Reihenfolge Encrypt-then-MAC verwendet wird, und verwenden Sie niemals MtE oder E&M.
EtM vs. MtE im Vergleich
Welche Aussage beschreibt den Sicherheitsunterschied zwischen Encrypt-then-MAC und MAC-then-Encrypt korrekt?
Lektion zusammengefasst: Die Reihenfolge der Kombination ist entscheidend
EtM ist die einzige nachweislich sichere Reihenfolge für die Kombination separater Verschlüsselungs- und MAC-Primitiven. TLS 1.3 beseitigt das Problem vollständig, indem es ausschließlich AEAD-Cipher-Suites vorschreibt. Verwenden Sie im Zweifel ein AEAD-Primitiv wie AES-GCM oder ChaCha20-Poly1305 und überlassen Sie der Bibliothek die korrekte Kombination.
Häufig gestellte Fragen
Ist die Lektion „Warum Encrypt-Then-MAC besser ist als MAC-Then-Encrypt“ kostenlos?
Ja — der vollständige Text von „Warum Encrypt-Then-MAC besser ist als MAC-Then-Encrypt“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Warum Encrypt-Then-MAC besser ist als MAC-Then-Encrypt“?
Verstehen Sie die kryptografische Begründung dafür, Verschlüsselung und Authentifizierung in der richtigen Reihenfolge zu kombinieren. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cryptology Academy zu starten?
Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Warum Encrypt-Then-MAC besser ist als MAC-Then-Encrypt“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Warum Encrypt-Then-MAC besser ist als MAC-Then-Encrypt
- SIV-Modus: AEAD mit Schutz vor Noncen-Fehlverwendung
- AEGIS: Hochperformante authentifizierte Verschlüsselung
- AEAD für Produktionssysteme auswählen