🔐 AES-128: Die Fakten auf den Punkt
AES-128 (Advanced Encryption Standard mit 128-Bit-Schlüssel) ist einer der am meisten genutzten Verschlüsselungsstandards weltweit. Symmetrisch, schnell und sicher – aber nur, wenn du nicht schlampig bist.
🔑 Schlüsselgröße & Sicherheit
- 128 Bit Schlüssel bedeuten:
2^128 mögliche Schlüssel, eine astronomisch große Zahl. Brute Force ist damit praktisch ausgeschlossen. - Aktuelle Sicherheit:
AES-128 gilt als sehr sicher. Es gibt keine praktikablen Angriffe, die den Standard in realen Anwendungen brechen könnten. - Theoretische Schwachstellen:
Forschung findet immer mal wieder kleine Angriffspunkte (z. B. bei reduzierten Runden oder speziellen Angriffen), aber keine, die die echte Sicherheit gefährden.
⚡ Performance
- AES-128 ist schneller als AES-192 und AES-256, weil es nur 10 Runden anstatt 12 oder 14 durchläuft.
- Das macht es besonders attraktiv für Systeme mit begrenzten Ressourcen (Smartcards, IoT-Geräte).
- Moderne Prozessoren unterstützen AES per Hardware-Befehl (AES-NI), was die Geschwindigkeit nochmals steigert.
⚠️ Wichtige Fallen & Gefahrenquellen
1. Implementierungsfehler
- Der größte Unsicherheitsfaktor ist nicht AES an sich, sondern wie es eingebaut wird.
- Beispiele:
- Verwendung von schwachen oder wiederverwendeten Schlüsseln
- Schlechte Zufallszahlengeneratoren
- Fehlerhafte Verwaltung von Initialisierungsvektoren (IVs) oder Nonces
- Fazit: Wenn hier Mist gebaut wird, hilft die beste Verschlüsselung nichts.
2. Betriebsmodus (Mode of Operation)
- AES ist eine reine Blockchiffre (128-Bit Blöcke). Damit man ganze Nachrichten sicher verschlüsseln kann, braucht man einen Modus wie CBC, GCM, CTR etc.
- Kein Modus ist perfekt. Falsche Modi (wie ECB) sind komplett unsicher, weil sie Muster im Klartext sichtbar lassen.
- Moderne Empfehlung: AES-GCM (Galois/Counter Mode) – bietet Verschlüsselung + Authentizität.
3. Quantum Computing
- Quantencomputer könnten mit Grover’s Algorithmus die Sicherheit halbieren: AES-128 würde auf Sicherheitsniveau 64 Bit fallen.
- Das wäre heute gefährlich, weil 64-Bit Sicherheit gilt als „knackbar“ mit ausreichend Ressourcen.
- Praktische Quantencomputer dieser Größe gibt es aber aktuell nicht.
🔒 AES-256: Die „Zukunftssicherung“
- Viele Organisationen empfehlen AES-256 statt 128, weil:
- Größerer Schlüssel = mehr Sicherheit bei zukünftigen Bedrohungen (Quantum Computing, längere Nutzung)
- In der Praxis kaum langsamer auf moderner Hardware (AES-NI)
- Wenn du wirklich auf Nummer sicher gehen willst (Banken, Militär), nimm AES-256.
📋 Zusammenfassung: So nutzt du AES-128 richtig
Punkt | Empfehlung |
---|---|
Schlüsselverwaltung | Nutze sichere, zufällige Schlüssel |
Zufallsquellen | Vermeide schlechte PRNGs (Pseudo-Random-Number-Generatoren) |
Betriebsmodus | Nutze AES-GCM oder CBC mit HMAC |
Wiederverwendung | Keine Wiederverwendung von IV/Nonce |
Implementierung | Nutze bewährte Libraries (z.B. OpenSSL, libsodium) |
Quantum Computing | Für Langzeit-Schutz AES-256 bevorzugen |
🔍 Praxisbeispiele für AES-128 Nutzung
Beispiel 1: AES-128 in Python mit cryptography
(AES-GCM)
cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os
# Schlüssel erzeugen (128 Bit = 16 Bytes)
key = AESGCM.generate_key(bit_length=128)
# AES-GCM Objekt erstellen
aesgcm = AESGCM(key)
# Zufälliger Nonce (12 Bytes empfohlen)
nonce = os.urandom(12)
# Klartext
plaintext = b"Geheime Nachricht"
# Zusätzliche Authentifizierte Daten (optional)
aad = b"Header-Daten"
# Verschlüsseln
ciphertext = aesgcm.encrypt(nonce, plaintext, aad)
# Entschlüsseln
decrypted = aesgcm.decrypt(nonce, ciphertext, aad)
assert decrypted == plaintext
print("Verschlüsselung und Entschlüsselung erfolgreich")
Warum hier alles richtig ist:
- Sichere Schlüsselgenerierung
- Zufälliger Nonce für jede Verschlüsselung
- Authentifizierte Verschlüsselung (Vertraulichkeit + Integrität)
Beispiel 2: Fehlerhafte Nutzung – Wiederverwendung von Nonce (NO-GO!)
# Falsche Praxis: Nonce wird wiederverwendet
nonce = b'\x00' * 12 # Statisch und immer gleich
ciphertext1 = aesgcm.encrypt(nonce, b"Nachricht1", None)
ciphertext2 = aesgcm.encrypt(nonce, b"Nachricht2", None)
# Hier kann ein Angreifer Muster erkennen und verschlüsselte Daten knacken
Warum das gefährlich ist:
- Die Wiederverwendung eines Nonce in AES-GCM zerstört die Sicherheit komplett.
- Angreifer können die XOR-Beziehung der Klartexte herausfinden.
Beispiel 3: AES-128 in WPA2 (WLAN)
- WPA2 nutzt AES-128 im CCMP-Modus (ähnlich GCM).
- Schlüssel wird bei Verbindungsaufbau per 4-Wege-Handshake generiert.
- Jedes Paket bekommt einen eigenen IV (Nonce), um Wiederholungsangriffe zu verhindern.
- Fehlerhafte Implementierungen (z.B. schlechte Zufallszahlengeneratoren) können WLAN-Netze angreifbar machen (KRACK-Angriff).
Beispiel 4: Festplattenverschlüsselung (BitLocker)
- BitLocker verwendet AES-128 oder AES-256, je nach Einstellung.
- Verwendet Modi, die Integrität und Vertraulichkeit garantieren (XTS-Modus).
- Schlüssel werden durch TPM (Trusted Platform Module) geschützt, nicht nur durch Passwort.
- Ein gutes Beispiel, wie AES-128 sicher in der Praxis eingesetzt wird.
🛠️ Empfehlungen zum Einstieg
- Vertraue bewährten Bibliotheken, z.B.:
- Python:
cryptography
- C/C++: OpenSSL
- Java: Bouncy Castle
- Python:
- Verwende zufällige IVs/Nonces für jede Verschlüsselung!
- Nutze authentifizierte Verschlüsselung (AES-GCM, AES-CCM) statt nur reine Verschlüsselung.
- Kontrolliere und aktualisiere deine Schlüssel regelmäßig.
Inhaltsverzeichnis