www.wikidata.de-de.nina.az
Argon2 ist ein Passwort Hashing Verfahren das neben der Authentifizierung auch zur Schlusselableitung und fur Kryptowahrungen verwendet werden kann Der Algorithmus wurde 2014 von Alex Biryukov Daniel Dinu und Dmitry Khovratovich von der Universitat Luxemburg vorgestellt und gewann 2015 die Password Hashing Competition Argon2 ist Arbeitsspeicher intensiv und fur die x86 Architektur optimiert Eine Kernfunktion ist eine Parallelitat die Time Memory Tradeoffs verhindert Inhaltsverzeichnis 1 Hintergrund 2 Geschichte 3 Struktur 3 1 Konkrete Instanzen 3 2 Empfohlene Parameter 4 Sicherheit 5 Lizenz 6 Weblinks 7 EinzelnachweiseHintergrund BearbeitenPasswort Hashing ist ein Verfahren um aus einem Passwort einen kryptographischen Schlussel zur Verschlusselung zu gewinnen oder um ein Passwort fur einen Authentifizierungsprozess zu speichern Bisherige Verfahren dafur wie bcrypt oder PBKDF2 erwiesen sich als sehr anfallig fur Angriffe mit spezialisierter Hardware custom hardware attacks mit denen vor allem Passwort Listen innerhalb kurzer Zeit durchprobiert werden konnen Eine erste Alternative bot das 2010 veroffentlichte Verfahren Scrypt das allerdings sehr kompliziert in der Implementierung ist was eine Kryptoanalyse erschwert 1 2013 wurde mit der Password Hashing Competition ein Auswahlverfahren ins Leben gerufen das die Forschung zum Passwort Hashing fordern und einen Algorithmus zur Verwendung vorschlagen sollte Geschichte Bearbeiten2014 wurde das Verfahren Argon bei der Password Hashing Competition eingereicht Argon basierte auf den AES Befehlsinstruktionen des Prozessors und erreichte damit eine schnelle Ausfuhrung die auch durch spezialisierte Hardware nicht wesentlich ubertroffen werden konnte Am 31 Januar 2015 Paper v2 S 34 wurde neben einer Modifikation von Argon auch das Verfahren Argon2 vorgestellt Argon2 verzichtet auf AES Befehlsinstruktionen und basiert stattdessen auf der Hashfunktion Blake2b Da dieses neue Verfahren wahrend der zweiten Phase der Password Hashing Competition eingereicht wurde in der eigentlich nur geringfugige Anderungen tweaks erlaubt waren musste dessen Zulassung durch das Gremium der Password Hashing Competition ausdrucklich beschlossen werden Am 20 Juli 2015 wurde schliesslich Argon2 zum Sieger des Auswahlverfahrens erklart 2 3 Struktur BearbeitenArgon2 erzeugt einen grossen Vektor im Arbeitsspeicher der als Matrix aufgebaut ist um eine synchronisierte Parallelitat zu ermoglichen Die Zugriffe auf den Vektor stellen sicher dass nur zugunsten einer sehr viel langeren Laufzeit darauf verzichtet werden kann diesen Vektor vollstandig im Arbeitsspeicher zu halten Es wird somit verhindert dass der Algorithmus durch spezialisierte Hardware ASICs und andere die uber geringe Arbeitsspeicher verfugen wesentlich schneller ausgefuhrt werden kann als auf einem PC oder Server Dazu berechnet die indexing function die Indices des Vektors auf die zugegriffen wird Sie ist im Falle von Argon2i unabhangig von Passwort und Salt dafur jedoch langsamer als Argon2d und kann daher in der gleichen Zeit nur einen kleineren Vektor berechnen Argon2 verwendet eine interne Kompressionsfunktion G mit zwei 1024 byte Inputs und einem 1024 byte output G ist aufgebaut aus der Runden Funktion P von Blake2b und umfasst lediglich eine Runde eine interne Hashfunktion H Blake2b Die Kompressionsfunktion G die Hashfunktion H die Blocklange und die Anzahl der slices sind grundsatzlich austauschbar in der Referenzimplementierung von Argon2 sind diese jedoch festgelegt Konkrete Instanzen Bearbeiten Argon2d kann Angriffen mit spezialisierter Hardware besser vorbeugen ist jedoch verwundbar fur Cache Timing Attacks Die Autoren schlagen diese Variante fur Kryptowahrungen und Backend Server vor Argon2i ist fur Szenarien geeignet in denen Angreifer moglicherweise Zugang zur CPU haben in der Argon2 ausgefuhrt wird Die Autoren schlagen als Anwendungsgebiete Passwort Hashing und Schlusselableitungen vor In einem Internet Draft vom August 2017 wurde fur diese Szenarien die Variante Argon2id empfohlen 4 Argon2i und Argon2d unterscheiden sich in der Art in der die Indices des Vektors berechnet werden Argon2d berechnet die Indices abhangig von Passwort und Salt Argon2i berechnet die Indices unabhangig von Passwort und Salt gegebenenfalls abhangig von offentlichen Input Parametern Mit der Version v1 2 1 vom Februar 2016 wurde die Instanz Argon2id als optionale Instanz eingefuhrt in der beide Instanzen kombiniert werden Diese Variante weist in Bezug auf eine Verwundbarkeit mit Cache Timing Attacks eine hybride Struktur auf ahnlich wie die die Verfahren Lyra2 und Pomelo Empfohlene Parameter Bearbeiten Die Auswahl der Parameter richtet sich nach dem System auf dem Argon2 ausgefuhrt wird Die Autoren legen keine Standard Parameter fest Jedoch befinden sich im RFC 9106 5 der Argon2 standardisiert zwei Empfehlungen Variante Argon2id Parallelismus p Doppelte Anzahl der Prozessorkerne Erste Empfehlung Iterationen t 1 Arbeitsspeicher 2 GiB fur alle Umgebungen geeignet Zweite Empfehlung Iterationen t 3 Arbeitsspeicher 64 MiB fur Umgebungen in denen Arbeitsspeicher begrenzt istFur bestimmte Anwendungen schlagen die Autoren folgende Werte fur Rechenzeit und Arbeitsspeicheranforderung vor Argon2d fur Krypto Wahrungen 0 1 s mit einem Kern p 2 256 MB RAM Argon2d fur Backend Server Authentifizierung 0 5 s mit 4 Kernen p 8 4 GB RAM Argon2i fur Schlusselableitung fur Festplattenverschlusselung 3s mit 2 Kernen p 4 6 GB RAM Argon2i fur Frontend Server Authentifizierung 0 5 s mit 2 Kernen p 4 1 GB RAM Sicherheit BearbeitenIm Januar 2016 wurde eine Kryptoanalyse der Variante Argon2i veroffentlicht die eine Ausfuhrung mit weniger Arbeitsspeicher Faktor 2 72 4 bei gleicher Rechenzeit erlaubt 6 Mit der 2017 veroffentlichten Version 1 3 wurde auf diese Analyse reagiert 7 Im August 2016 erweiterten Joel Alwen and Jeremiah Blocki ihren zuvor veroffentlichten Angriff auf die neue Version von Argon2i 8 Sie konnten zeigen dass durch ihren Angriff unter bestimmten Annahmen uber zukunftig verfugbare Hardware die Energiekomplexitat von Argon2i ohne Parallelismus p 1 drastisch gesenkt werden konnte Auf die Variante Argon2d sowie auf die hybride Form Argon2id wurde bisher kein praktizierbarer Angriff veroffentlicht Lizenz BearbeitenArgon2 steht unter der CC0 zur Verfugung mithin also unter Public Domain so auch explizit aufgefuhrt auf der PHC Site Stand 12 Februar 2020 siehe Links Weblinks BearbeitenArgon2 Password Hashing Competition englisch Referenzimplementierung von Argon2 auf GitHub A Biryukov D Dinu D Khovratovich RFC 9106 Argon2 Memory Hard Function for Password Hashing and Proof of Work Applications September 2021 englisch Einzelnachweise Bearbeiten Oliver Lau Argon2 gewinnt Passwort Hashing Wettbewerb In Heise Security 27 Juli 2015 abgerufen am 8 April 2019 Eric L Barnes Laravel 5 6 will Support the Argon2i Password Hashing Algorithm In Laravel News 26 Januar 2018 abgerufen am 8 April 2019 Hanno Bock Hashfunktion Argon2 gewinnt Wettbewerb In golem de 27 Juli 2015 abgerufen am 8 April 2019 The memory hard Argon2 password hash and proof of work function Internet Draft zu Argon2 abgerufen am 28 September 2018 A Biryukov D Dinu D Khovratovich RFC 9106 Argon2 Memory Hard Function for Password Hashing and Proof of Work Applications September 2021 englisch Balloon Hashing Provably Space Hard Hash Functions with Data Independent Access Patterns PDF 0 7 MB Vorstellen des Verfahrens Balloon Hashing und Kryptoanalyse von Argon2 iacr org abgerufen am 28 September 2018 Argon2 the memory hard function for password hashing and other applications PDF Vorstellung der Version 1 3 von Argon2 github abgerufen am 28 September 2018 PDF Towards Practical Attacks on Argon2i and Balloon Hashing PDF 0 5 MB Angriff auf Balloon Hashing und Argon2 iacr org abgerufen am 2 Mai 2020 Abgerufen von https de wikipedia org w index php title Argon2 amp oldid 235399259