Dieser umfassende Leitfaden erkundet fortgeschrittene Verschlüsselungskonzepte, Algorithmen und Protokolle, die in modernen sicheren Kommunikationssystemen verwendet werden. Ideal für Entwickler und Sicherheitsprofis.
Symmetrische Verschlüsselungsalgorithmen
AES (Advanced Encryption Standard)
Der Goldstandard für symmetrische Verschlüsselung, 2001 von der US-Regierung übernommen.
Hauptmerkmale
- Schlüsselgrößen: 128, 192 oder 256 Bits
- Blockgröße: 128 Bits
- Runden: 10, 12 oder 14 abhängig von der Schlüsselgröße
- Performance: Hochoptimiert, Hardware-Beschleunigung verfügbar
Gängige Modi
- GCM (Galois/Counter Mode): Authentifizierte Verschlüsselung, empfohlen für die meisten Anwendungsfälle
- CBC (Cipher Block Chaining): Traditioneller Modus, benötigt separaten MAC
- CTR (Counter): Parallelisierbar, in einigen Protokollen verwendet
ChaCha20
Moderne Stream-Cipher, entworfen von Daniel J. Bernstein, zunehmend beliebt als AES-Alternative.
Vorteile
- Schneller als AES auf Geräten ohne Hardware-Beschleunigung
- Constant-Time-Implementierung (resistent gegen Timing-Angriffe)
- Einfaches Design, leichter sicher zu implementieren
- Wird mit Poly1305 für authentifizierte Verschlüsselung verwendet
Asymmetrische Verschlüsselung
RSA (Rivest-Shamir-Adleman)
Weit verbreitet für Schlüsselaustausch und digitale Signaturen.
Wichtige Überlegungen
- Minimale Schlüsselgröße: 2048 Bits (4096 Bits empfohlen für langfristige Sicherheit)
- Performance: Rechenintensiv im Vergleich zu symmetrischer Verschlüsselung
- Padding-Schemata: Verwende OAEP für Verschlüsselung, PSS für Signaturen
- Quanten-Bedrohung: Anfällig für Quantencomputer (Shor-Algorithmus)
Elliptic Curve Cryptography (ECC)
Effizientere Alternative zu RSA mit gleichwertiger Sicherheit bei kleineren Schlüsselgrößen.
Beliebte Kurven
- Curve25519: Entworfen für ECDH-Schlüsselaustausch, weit verbreitet
- Ed25519: Für digitale Signaturen, verwendet in SSH, GPG
- P-256 (secp256r1): NIST-Standard, weit unterstützt
- P-384, P-521: Höhere Sicherheitsstufen
Vorteile gegenüber RSA
- 256-Bit ECC ≈ 3072-Bit RSA-Sicherheit
- Schnellere Berechnung
- Kleinere Schlüssel und Signaturen
- Geringere Bandbreiten- und Speicheranforderungen
Schlüsselaustausch-Protokolle
Diffie-Hellman (DH)
Ermöglicht es zwei Parteien, ein gemeinsames Geheimnis über einen unsicheren Kanal zu etablieren.
Varianten
- Classic DH: Ursprüngliche Implementierung
- ECDH: Elliptic Curve-Version (effizienter)
- X25519: Moderner ECDH mit Curve25519
Perfect Forward Secrecy (PFS)
Stellt sicher, dass vergangene Kommunikationen sicher bleiben, selbst wenn langfristige Schlüssel kompromittiert werden.
Implementierung
- Erzeuge ephemere Schlüsselpaare für jede Sitzung
- Zerstöre Sitzungsschlüssel nach Gebrauch
- Verwendet in TLS 1.3, Signal Protocol, etc.
Hash-Funktionen
SHA-2-Familie
- SHA-256: 256-Bit-Ausgabe, weit verbreitet
- SHA-384, SHA-512: Höhere Sicherheitsstufen
- Anwendungen: Digitale Signaturen, Zertifikatsvalidierung, Passwort-Hashing (mit geeigneten Techniken)
SHA-3 (Keccak)
- Andere Konstruktion als SHA-2 (Sponge-Funktion)
- Resistent gegen Length-Extension-Angriffe
- Geeignet für Anwendungen mit hohen Sicherheitsmargen
BLAKE2/BLAKE3
- Schneller als SHA-2 und SHA-3
- Kryptographisch sicher
- BLAKE3: Hochgradig parallelisierbar, ausgezeichnet für große Datenmengen
Key Derivation Functions (KDFs)
PBKDF2 (Password-Based Key Derivation Function 2)
- Zweck: Ableitung kryptographischer Schlüssel aus Passwörtern
- Iterationen: Minimum 100.000 (OWASP-Empfehlung)
- Anwendungsfall: Passwortspeicherung, Schlüsselableitung
Argon2
Gewinner der Password Hashing Competition (2015), empfohlen für neue Anwendungen.
Varianten
- Argon2id: Hybrid (empfohlen für die meisten Anwendungsfälle)
- Argon2i: Optimiert gegen Side-Channel-Angriffe
- Argon2d: Maximale Resistenz gegen GPU-Angriffe
scrypt
- Memory-Hard-Funktion (resistent gegen Hardware-Angriffe)
- Verwendet von Litecoin, Tarsnap
- Gute Balance zwischen Sicherheit und Kompatibilität
Message Authentication Codes (MACs)
HMAC (Hash-based MAC)
- Kombiniert Hash-Funktion mit geheimem Schlüssel
- Bietet Authentifizierung und Integrität
- Gängig: HMAC-SHA256, HMAC-SHA512
Poly1305
- Einmal-Authentifikator
- Verwendet mit ChaCha20 für authentifizierte Verschlüsselung
- Schnell und Constant-Time
Authentifizierte Verschlüsselung
Warum es wichtig ist
Verschlüsselung allein garantiert keine Integrität. Ein Angreifer könnte den Ciphertext modifizieren, ohne erkannt zu werden. Authentifizierte Verschlüsselung löst dieses Problem.
AEAD (Authenticated Encryption with Associated Data)
- AES-GCM: Am weitesten unterstützt
- ChaCha20-Poly1305: Besser auf mobilen Geräten
- AES-CCM: Verwendet in einigen Wireless-Protokollen
Digitale Signaturen
RSA-Signaturen
- Padding: Verwende PSS (Probabilistic Signature Scheme)
- Hash-Funktion: SHA-256 oder höher
- Schlüsselgröße: 2048 Bits minimum
ECDSA (Elliptic Curve Digital Signature Algorithm)
- Kleinere Signaturen als RSA
- Erfordert sorgfältige Nonce-Generierung (schwacher RNG = kompromittierter Schlüssel)
- Deterministische Variante (RFC 6979) empfohlen
Ed25519
- Deterministisch (kein RNG erforderlich)
- Schnelle Signaturerzeugung und -verifizierung
- Kleine Signaturen (64 Bytes)
- Resistent gegen Side-Channel-Angriffe
Moderne Protokolle
Signal Protocol
Hochmodernes End-to-End-Verschlüsselungsprotokoll, verwendet von Signal, WhatsApp, Facebook Messenger.
Hauptmerkmale
- Double Ratchet: Aktualisiert kontinuierlich Schlüssel
- Perfect Forward Secrecy: Vergangene Nachrichten bleiben sicher
- Post-Compromise Security: Erholt sich von Schlüsselkompromittierung
- Asynchron: Funktioniert auch wenn der Empfänger offline ist
TLS 1.3
Neueste Version des Transport Layer Security-Protokolls.
Verbesserungen
- Schwache Algorithmen und Cipher Suites entfernt
- Bietet immer Forward Secrecy
- Schnellerer Handshake (1-RTT, 0-RTT-Option)
- Verschlüsseltes Server Hello
Noise Protocol Framework
Modernes kryptographisches Protokoll-Framework zum Aufbau sicherer Kommunikationssysteme.
Anwendungen
- WireGuard VPN
- Lightning Network
- I2P Messaging
Post-Quanten-Kryptographie
Die Bedrohung
Quantencomputer können RSA und ECC mit dem Shor-Algorithmus brechen. Symmetrische Algorithmen sind weniger betroffen, benötigen aber größere Schlüssel.
NIST Post-Quanten-Kandidaten
- Kyber: Gitterbasierte Schlüsselkapselung
- Dilithium: Gitterbasierte digitale Signaturen
- SPHINCS+: Hash-basierte Signaturen
Übergangsstrategie
- Hybrid-Ansatz: Kombiniere klassische und Post-Quanten-Algorithmen
- Erhöhe symmetrische Schlüsselgrößen auf 256 Bits
- Verfolge den NIST-Standardisierungsprozess
- Plane für Algorithmen-Agilität
Best Practices bei der Implementierung
Entwickle keine eigene Kryptographie
Verwende etablierte, peer-reviewte Bibliotheken:
- libsodium: High-Level, einfach zu verwenden
- OpenSSL: Umfassend, weit unterstützt
- BoringSSL: Googles OpenSSL-Fork
- Ring: Rust-Kryptographie-Bibliothek
Schlüsselverwaltung
- Verwende Hardware Security Modules (HSMs) für kritische Schlüssel
- Implementiere Schlüsselrotations-Richtlinien
- Hardcode niemals Schlüssel im Quellcode
- Verwende Schlüsselableitung für mehrere Zwecke
- Lösche Schlüssel sicher aus dem Speicher nach Gebrauch
Sichere Zufallszahlengenerierung
- Verwende kryptographisch sicheren RNG (CSPRNG)
- Verwende niemals Standard-rand()-Funktionen
- Betriebssystem-RNGs: /dev/urandom (Linux), CryptGenRandom (Windows)
- Sprachspezifisch: crypto.randomBytes (Node.js), secrets-Modul (Python)
Prävention von Timing-Angriffen
- Verwende Constant-Time-Vergleich für Geheimnisse
- Vermeide Verzweigungen basierend auf geheimen Daten
- Sei dir Cache-Timing-Angriffen bewusst
- Verwende Bibliotheken, die für Timing-Angriffs-Resistenz entwickelt wurden
Tests und Validierung
Security Audits
- Regelmäßige Penetrationstests
- Code-Reviews durch Sicherheitsexperten
- Externe Sicherheitsaudits
- Bug-Bounty-Programme
Compliance
- FIPS 140-2/3: US-Regierungsstandard
- Common Criteria: Internationale Sicherheitszertifizierung
- PCI DSS: Anforderungen der Kreditkartenindustrie
Ressourcen zum Weiterlernen
Bücher
- "Cryptography Engineering" von Ferguson, Schneier und Kohno
- "Serious Cryptography" von Jean-Philippe Aumasson
- "Applied Cryptography" von Bruce Schneier
Online-Ressourcen
- Cryptopals Crypto Challenges
- Stanfords Kryptographie-Kurse (Coursera)
- IACR ePrint Archive
- Crypto Stack Exchange