Authentifizierte Verschlüsselung (AEAD)
Kurz: AEAD-Verfahren wie AES-GCM oder ChaCha20-Poly1305 verschlüsseln Daten und stellen gleichzeitig sicher, dass sie nicht verändert wurden. Reine Verschlüsselung ohne Integritätsprüfung ist unsicher.
Genauer: Eine Blockchiffre im Modus CTR/GCM erzeugt einen Schlüsselstrom, der mit den Klartextdaten verknüpft wird. Zusätzlich wird ein Authentifizierungs-Tag berechnet. Beim Entschlüsseln wird das Tag geprüft; stimmt es nicht, wird nichts ausgegeben. Zusätzliche, nicht verschlüsselte Daten (Header) können mit abgesichert werden.
Im Detail
- Nonce: Einmalwert pro Nachricht. Wiederverwendung mit demselben Schlüssel bei GCM bricht die Sicherheit komplett.
- Tag: Meist 128 Bit. Schützt vor Manipulation (Bit-Flipping).
- Associated Data: Mit authentifiziert, aber nicht verschlüsselt (z. B. Metadaten).
- AES-GCM: Schnell mit Hardwareunterstützung (AES-NI).
- ChaCha20-Poly1305: Schnell in Software, gut für Handys.
- Padding-Oracle: Klassischer Angriff auf CBC ohne Integrität. AEAD vermeidet das.
- Nie selbst bauen: Bibliotheken wie libsodium oder WebCrypto nutzen.
Siehe auch: TLS-Handshake im Detail, Schlüsselableitung und Passwort-Hashing (Argon2)