Argon2-Hash-Rechner | Argon2id, Argon2i & Argon2d
Berechnet den Argon2-Hash eines Textes wie z. B. eines Passworts. Unterstützt die drei Varianten Argon2id, Argon2i und Argon2d sowie die von OWASP empfohlenen Voreinstellungen für Speicherkosten und Iterationen. Die Berechnung erfolgt vollständig im Browser, Eingaben werden nicht an den Server gesendet.
Was dieser Argon2-Hashrechner leistet
Geben Sie ein Kennwort oder eine beliebige andere Zeichenkette ein, und dieses Werkzeug bildet den Hash mit einer der drei Argon2-Varianten: Argon2id, Argon2i oder Argon2d. Argon2 ging als Sieger aus dem Password Hashing Competition hervor und widersteht nicht nur schlichten Brute-Force-Angriffen, sondern auch den schnellen Attacken mit eigens dafür gebauter Hardware wie GPUs und ASICs. Deshalb gilt es weithin als erste Wahl, um Kennwörter in neu entwickelten Systemen abzulegen.
Die Stärke des Hashs beruht auf drei Parametern – Speicherkosten, Durchläufe und Parallelität. Höhere Werte treiben den Aufwand des Angreifers, erhöhen aber ebenso Zeit- und Speicherbedarf einer regulären Anmeldung. Dieses Werkzeug bietet die fünf im OWASP Password Storage Cheat Sheet empfohlenen Kombinationen als Voreinstellungen an; probieren Sie zunächst eine davon und passen Sie sie dann an die Leistung des Servers an, auf dem Sie tatsächlich betreiben werden.
So berechnen Sie einen Hash
- Kennwort oder Zeichenkette eingeben Tragen Sie den zu hashenden Text in das Kennwortfeld ein. Das Eingegebene wird nirgendwohin übertragen.
- Variante wählen Sofern kein besonderer Grund dagegenspricht, wählen Sie Argon2id, das Widerstandsfähigkeit gegen GPU-Angriffe und gegen Seitenkanalangriffe verbindet.
- Eine OWASP-Voreinstellung anwenden Ein Klick auf eine Voreinstellung setzt Speicherkosten, Durchläufe und Parallelität auf eine der von OWASP empfohlenen Kombinationen.
- Die Parameter bei Bedarf anpassen Speicherkosten in KiB, Durchläufe und Parallelität lassen sich jeweils unmittelbar bearbeiten. Je größer die Werte, desto länger dauert die Berechnung.
- Berechnen und das Ergebnis ablesen Der kodierte Hash im PHC-Format erscheint zusammen mit der tatsächlich benötigten Rechenzeit. Über die Kopierschaltfläche sichern Sie das Ergebnis.
Tipps für die Nutzung
- Argon2 gewann 2015 die Password Hashing Competition, und Argon2id ist die von OWASP derzeit empfohlene Variante. Wählen Sie ohne besonderen Grund immer Argon2id.
- Die Voreinstellungs-Schaltflächen entsprechen den fünf Kombinationen aus Speicherkosten und Iterationen, die im OWASP Password Storage Cheat Sheet empfohlen werden. Je höher der Speicherverbrauch, desto besser die Resistenz gegen parallele Angriffe mit GPUs.
- Eine Erhöhung der „Parallelität (p)" hat in dieser WebAssembly-Implementierung im Browser keine tatsächliche Parallelverarbeitung zur Folge, sodass sich die Berechnungsdauer kaum ändert. Die Beschleunigung durch Parallelität wirkt sich nur auf Server mit mehreren CPU-Kernen aus.
- Bei jeder Berechnung wird automatisch ein neues Salt erzeugt, sodass derselbe Text mit denselben Parametern jedes Mal einen anderen kodierten Hash-Wert ergibt.
- Bei sehr hohen Speicherkosten kann der Browser-Tab vorübergehend nicht mehr reagieren. Es empfiehlt sich, zunächst mit einigen Dutzend Megabyte zu beginnen.
Wofür sich der Rechner eignet
Die Kennwortablage eines neuen Dienstes festlegen
Beim Entwurf der Kennwortspeicherung für ein neues System sehen Sie unmittelbar die tatsächliche Hashlänge und die Rechenzeit je Parametersatz.
API-Schlüssel und Token sicher aufbewahren
Über Anmeldekennwörter hinaus hilft es, wenn Sie vertrauliche Zeichenketten wie API-Schlüssel oder gemeinsame Geheimnisse nicht im Klartext in der Datenbank halten wollen.
Testhashes für Entwicklung und Prüfung erzeugen
Erzeugen Sie hier Hashes für Testkonten, die Sie unmittelbar in eine Datenbank einspielen, ohne die Anwendung zu starten.
Ein Gefühl für den Zusammenhang von Parametern und Laufzeit gewinnen
Rechnen Sie mehrmals mit unterschiedlichen Werten und vergleichen Sie die ausgewiesenen Zeiten; dieser Vergleich sagt Ihnen, welche Einstellungen zu Ihrem Produktivserver passen.
Eine Ablösung von bcrypt erwägen
Hashen Sie dieselbe Zeichenkette mit dem bcrypt-Hashrechner und vergleichen Sie Ausgabeformat und Dauer – das liefert die Grundlage für die Umstellungsentscheidung.
Begriffe rund um Argon2
- Argon2id
- Eine Mischform, die die Eigenschaften von Argon2d und Argon2i verbindet. Sie bietet zugleich Widerstand gegen GPU- und gegen Seitenkanalangriffe; OWASP nennt sie als erste Empfehlung.
- Argon2i
- Eine Variante, deren Reihenfolge der Speicherzugriffe nicht von der Eingabe abhängt. Das macht sie stark gegen Seitenkanalangriffe – jene, die Informationen aus Laufzeit oder Stromverbrauch ablesen –, gegenüber GPUs ist sie jedoch etwas schwächer als Argon2d.
- Argon2d
- Eine Variante, deren Reihenfolge der Speicherzugriffe sehr wohl von der Eingabe abhängt. Sie bietet den stärksten Widerstand gegen parallele Angriffe mit GPUs oder ASICs, ist aber anfällig für Seitenkanalangriffe.
- Speicherkosten
- Der Parameter, der festlegt, wie viel Speicher die Hashberechnung belegt, angegeben in KiB. Höhere Werte verteuern parallele Angriffe mit eigens gebauter Hardware.
- Durchläufe
- Auch Zeitkosten genannt: der Parameter, der bestimmt, wie oft die interne Verarbeitung wiederholt wird. Höhere Werte verlängern die Berechnung und stärken den Schutz vor Brute Force.
- Parallelität
- Der Parameter, der die Zahl der parallel laufenden Spuren festlegt. Auf einem Mehrkernserver hilft er, in der im Browser laufenden WebAssembly-Umsetzung bleibt er wirkungslos.
- Salt
- Ein vor dem Hashen hinzugefügter Zufallswert. Dieses Werkzeug erzeugt ihn bei jeder Berechnung neu, sodass dieselbe Zeichenkette mit denselben Parametern jedes Mal einen anderen Hash ergibt.
- PHC-Format
- Die vom Password Hashing Competition festgelegte Kodierung, die Algorithmusnamen, Version, Parameter, Salt und den Hash selbst in einer einzigen Zeichenkette bündelt, geschrieben etwa als $argon2id$v=19$m=…
Häufig gestellte Fragen
password_verify() oder entsprechenden Argon2-Verifikationsbibliotheken anderer Sprachen abgleichen. Achten Sie dennoch auf einen sorgfältigen Umgang mit den eingegebenen Daten.
Übrigens – die Password Hashing Competition und die Entstehung von Argon2
Argon2 wurde bei der zwischen 2013 und 2015 ausgetragenen „Password Hashing Competition" (PHC) unter 24 eingereichten Verfahren zum Sieger gekürt. Bestehende Verfahren wie BCrypt (1999) und PBKDF2 (2000) wiesen die Schwäche auf, gegenüber Brute-Force-Angriffen mit spezieller Hardware wie GPUs oder ASICs anfällig zu sein. Argon2 begegnet diesem Problem durch ein Design, das für die Berechnung große Mengen an Arbeitsspeicher erfordert.
Es gibt drei Argon2-Varianten. Argon2d maximiert die Resistenz gegen GPU-Angriffe, ist jedoch anfällig für Seitenkanalangriffe, während Argon2i gegen Seitenkanalangriffe widerstandsfähig ist, aber eine etwas geringere GPU-Resistenz besitzt. Argon2id kombiniert als Hybridverfahren beide Eigenschaften und wird von OWASP sowie zahlreichen weiteren Sicherheitsorganisationen als erste Wahl für die Passwortspeicherung empfohlen.
Seit PHP 7.2 lässt sich mit der Funktion password_hash() und der Konstante PASSWORD_ARGON2ID ganz einfach ein Argon2id-Hash erzeugen. Auch für Node.js, Python, Ruby und andere gängige Sprachen stehen offizielle oder quasi-offizielle Bibliotheken zur Verfügung, sodass Argon2id bei neu entwickelten Systemen zur Passwortspeicherung zunehmend gegenüber BCrypt bevorzugt wird.