🔐 AES-GCM: Authenticated Encryption mit AES
AES-GCM (Galois/Counter Mode) ist ein moderner Betriebsmodus für AES, der Verschlüsselung und Authentifizierung in einem Schritt kombiniert. Das macht ihn heute zu einer der sichersten und praktischsten Methoden, um Daten zu schützen.
⚙️ Was ist AES-GCM?
- AES-GCM ist ein Modus von AES, der AES im Counter Mode (CTR) für Verschlüsselung nutzt, kombiniert mit einer Galois-Feld-basierenden Authentifizierung (MAC).
- Das Ergebnis:
- Vertraulichkeit durch Verschlüsselung
- Integrität und Authentizität durch den Galois-Hash
- Es verhindert Manipulationen am verschlüsselten Text und stellt sicher, dass der Text wirklich vom richtigen Sender stammt.
✅ Vorteile von AES-GCM
Vorteil | Erklärung |
---|---|
Sicherheit auf hohem Niveau | Verschlüsselung + Integritätsprüfung in einem Schritt |
Schnelle Performance | Gut geeignet für Hardwarebeschleunigung (AES-NI) und parallele Verarbeitung |
Parallele Verarbeitung | Anders als CBC können Blöcke parallel verarbeitet werden, was Geschwindigkeit erhöht |
Standard in vielen Protokollen | TLS 1.2+, IPsec, SSH, WPA3 setzen auf AES-GCM |
Keine Padding-Probleme | Kein Padding nötig, dadurch weniger Fehlerquellen |
⚠️ Wichtige Fallstricke bei AES-GCM
- Nonce-Wiederverwendung = Katastrophe:
- Jede Verschlüsselung benötigt einen einzigartigen Nonce (oft 12 Bytes).
- Wird ein Nonce wiederverwendet, kann das zu totalem Schlüsselverlust führen.
- Nonce muss zufällig oder sequenziell, aber niemals wiederholt sein.
- Schlüssel müssen sicher verwaltet werden.
- Falsche Implementierungen oder unsichere Zufallszahlen zerstören die Sicherheit.
📋 So funktioniert AES-GCM grob
- Ein Nonce (Initialisierungsvektor) wird erzeugt – eindeutig pro Verschlüsselung.
- Klartext wird im Counter Mode (CTR) mit AES verschlüsselt.
- Ein Authentifizierungs-Tag (MAC) wird über den verschlüsselten Text und optional zusätzliche Daten berechnet.
- Empfänger prüft den Tag, um Manipulationen zu erkennen. Wenn der Tag nicht passt, wird die Nachricht verworfen.
🔍 Praxisbeispiel: AES-GCM in Python
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os
key = AESGCM.generate_key(bit_length=128) # 128 oder 256 Bit möglich
aesgcm = AESGCM(key)
nonce = os.urandom(12) # 12 Bytes Nonce, einzigartig pro Nachricht
plaintext = b"Vertrauliche Nachricht"
aad = b"Header-Daten, die mit authentifiziert werden"
# Verschlüsseln (gibt Ciphertext + Auth-Tag zurück)
ciphertext = aesgcm.encrypt(nonce, plaintext, aad)
# Entschlüsseln & Authentizität prüfen
decrypted = aesgcm.decrypt(nonce, ciphertext, aad)
assert decrypted == plaintext
print("AES-GCM Verschlüsselung und Authentifizierung erfolgreich")
📌 Wo wird AES-GCM genutzt?
- TLS/HTTPS: Standard für sichere Internetverbindungen
- IPsec: VPN-Verbindungen
- WLAN WPA3: Verschlüsselung von drahtlosen Netzwerken
- Cloud-Verschlüsselung: Daten in der Cloud werden oft mit AES-GCM geschützt
🛠️ Empfehlungen
- Verwende AES-GCM immer mit einem einzigartigen Nonce!
- Verwende bewährte Libraries, keine Eigenbau-Implementationen.
- Nutze den Authentifizierungs-Tag, um Manipulationen zu erkennen.
- GCM ist heute der meistempfohlene Modus für neue Projekte mit AES.
Inhaltsverzeichnis