Argon2 ist eine Hashfunktion zur Passwort-Speicherung und Schlüsselableitung. Sie gewann 2015 den Password Hashing Competition und wurde 2021 in RFC 9106 standardisiert. Die OWASP-Empfehlung führt Argon2id als erste Wahl für neue Systeme — vor bcrypt und PBKDF2.
Memory-hard: der Kern des Konzepts
Wie scrypt ist Argon2 memory-hard: Die Berechnung benötigt eine konfigurierbare Menge Arbeitsspeicher. Angreifer können Hashes damit nicht effizient auf GPUs oder Spezialhardware (ASICs) parallelisieren, weil pro Versuch viel RAM belegt wird. Genau daran scheitern Brute-Force-Angriffe auf klassische Hashes.
Die drei Varianten
- Argon2d: Speicherzugriffe hängen von den Daten ab — am schnellsten, geeignet für Proof-of-Work, aber anfällig für Seitenkanal-Angriffe.
- Argon2i: Datenunabhängige Zugriffe — resistenter gegen Seitenkanäle, aber etwas langsamer.
- Argon2id: Hybrid aus beiden (erste Hälfte wie Argon2i, danach wie Argon2d) — von RFC 9106 und OWASP empfohlen.
Parameter
Drei Werte steuern die Kosten: m (Speicher in KiB), t (Iterationen) und p (Parallelitätsgrad). OWASP nennt als Minimum 19 MiB, 2 Iterationen und 1 Grad Parallelität; ein übliches Profil ist 64 MiB mit t=3 und p=4. Wie bei bcrypt gehört ein zufälliger Salt zum Hash — Rainbow Tables greifen nicht.
Verwandte Grundlagen: Hashfunktion, Salt, bcrypt, PBKDF2, Brute-Force-Angriff.