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.