Password Hashing Competition

Die Password Hashing Competition (PHC) war das Auswahlverfahren für ein neues password hashing scheme, einem Schema zum Speichern von Passwörtern oder zur Ableitung von kryptographischen Schlüsseln aus Passwörtern. Es wurde Anfang 2013 maßgeblich von Jean-Philippe Aumasson initiiert und endete 2015 mit der Empfehlung, zukünftig Argon2 als Passwort-Hashfunktion zu verwenden.

Hintergrund

Passwort-Hashing wird beim Login in ein System mittels Passwort, beispielsweise nach dem Starten eines Rechners, und bei der Ableitung von kryptographischen Schlüsseln aus Passwörtern, wie bei der Verschlüsselung von Partitionen, benutzt. Es existieren nur drei Verfahren, die eine gewisse Verbreitung besitzen: bcrypt, PBKDF2 und scrypt. Von diesen ist nur PBKDF2 vom NIST standardisiert, allerdings gilt besonders dieses Verfahren als sehr verwundbar für Angriffe mit spezialisierter Hardware, wie GPUs, ASICs und FPGAs. Weniger die Fortschritte in der Kryptoanalyse, sondern vielmehr die Entwicklungen der Hardware bewirken, dass viele Passwörter innerhalb kurzer Zeit mittels Wörterbuchangriff oder Brute-Force-Methode gebrochen werden können. Die neuere Funktion scrypt wurde zwar mit dem Ziel konzipiert, genau diese Angriffe zu verhindern, doch ist deren Einsatz insbesondere bei Webservern begrenzt. Die Password Hashing Competition hat sich zum Ziel gesetzt, die Forschung in diesem Bereich zu fördern und am Ende des Auswahlverfahrens ein oder mehrere Schemata zu empfehlen.

Organisation

Die Password Hashing Competition orientiert sich an transparenten Auswahlverfahren wie dem zur Auswahl der Blockchiffre AES, dem eSTREAM-Verfahren zur Auswahl einer Stromchiffre und dem SHA-3-Verfahren zur Auswahl einer Hashfunktion. Im Unterschied zu all diesen Auswahlverfahren ist die PHC nicht an eine bestimmte Institution gebunden, wie dem NIST im Falle des AES und SHA-3 oder NESSIE im Falle des eSTREAM-Projekts. Die Glaubwürdigkeit wird nur durch die beteiligten Personen gewährleistet. Diese entstammen der Industrie, dem universitären Bereich und staatlichen Institutionen. Die PHC hat damit neue Wege beschritten, noch bevor Edward Snowden die Einflussnahme der NSA auf kryptographische Standards bekannt machte.

Die PHC wurde nur drei Jahre nach einer offiziellen Empfehlung der NIST zum gleichen Thema ins Leben gerufen. Obwohl dieser Umstand eine Ablehnung der Empfehlung nahelegt, äußert die PHC öffentlich keine Kritik am NIST. Es sollen sogar Gespräche stattgefunden haben, bei denen NIST signalisiert habe, das Auswahlverfahren aufmerksam zu verfolgen. Zudem ist mit Meltem Sonmez Turan ein NIST-Mitarbeiter an der PHC beteiligt.

Personen

Neben bekannten Kryptologen wie Jean-Philippe Aumasson (Entwickler von BLAKE, einem der SHA-3-Finalisten) sind auch Entwickler von bestehenden Password Hashing Schemes beteiligt, wie Colin Percival (scrypt) und Stefan Lucks (Catena). Die PHC legt Wert darauf, Expertise nicht nur aus dem defensiven Bereich einzubeziehen, sondern auch aus dem „offensiven“ Bereich, also Personen, die zukünftige Angriffe simulieren sollen, sowie Sicherheitsbeauftragte und Personen aus der Software- und Hardware-Entwicklung, letztere insbesondere im Bereich ASICs, FPGAs und GPUs.

Finalisten (Verfahren der zweiten Runde)

Von den 22 Kandidaten der ersten Runde wurden neun Finalisten ausgewählt:

Sieger

Am 20. Juli 2015 wurde bekannt gegeben, dass Argon2 als Basis des endgültigen Siegers der Password Hashing Competition dienen solle. Es wurden außerdem die Finalisten Catena, Lyra2, Makwa und yescrypt für ihre spezifischen positiven Eigenschaften besonders hervorgehoben. Später im Jahr 2015 wurde die Version 1.2.1 vom 1. Oktober 2015 von Argon2 als Gewinner gekürt.

Argon2

Die PHC empfiehlt, den Sieger Argon2 zukünftig allen früheren Algorithmen vorzuziehen:

„We recommend that you use Argon2 rather than legacy algorithms.“

Es existierten zunächst zwei Varianten von Argon2: die Variante Argon2i zielt auf Sicherheit gegenüber Seitenkanalangriffen ab, während die Variante Argon2d vorwiegend vor GPU-Brute-Force-Angriffen schützen soll. Argon2d wurde für Kryptowährungen und Backend-Server-Authentifizierungen empfohlen, während Argon2i für Frontend-Server-Authentifizierungen und Festplatten-Verschlüsselungen empfohlen wurde. Im Zweifel empfahlen die Entwickler, Argon2i zu verwenden. Beide Varianten verfügen über drei Parameter, mit denen sich die Ausführungsdauer, der Speicherverbrauch und die Parallelisierbarkeit einstellen lassen.

Im März 2017 wurde ein Dokument der IETF der Version 1.3 veröffentlicht, das die Variante Argon2id als primäre Variante vorstellt und Argon2i und Argon2d nur noch als zusätzliche Varianten aufführt. Argon2id ist eine hybride Funktion, deren erster Teil resistent gegen cache timing attacks ist, während der zweite Teil einen Time-Memory Tradeoff verhindern soll.

Eine Referenzimplementation in C89-Kompatiblem C, die auf x86-, x64- und den meisten Arm-Systemen unter Unix (wie Linux und macOS) und Windows läuft, wurde unter der Lizenz CC-0 als De-facto-Public-Domain freigegeben.

Einzelnachweise

  1. ↑ Aufruf-E-Mail von Jean-Philippe Aumasson Banana Competition Call for Submissions
  2. ↑ Markus Dürmuth, Tim Güneysu, Markus Kasper, Christof Paar, Tolga Yalcin, Ralf Zimmermann: Evaluation of Standardized Password-Based Key Derivation against Parallel Processing Platforms. In: Computer Security – ESORICS 2012, Springer-Verlag, Berlin Heidelberg 2012, ISBN 978-3-642-33166-4, S. 716–733.
  3. 1 2 Dennis Fisher: Cryptographers Aim to Find New Password Hashing Algorithm, 15. Februar 2013. Online-Artikel auf threadpost.com
  4. ↑ James Ball, Julian Borger and Glenn Greenwald: Revealed: how US and UK spy agencies defeat internet privacy and security. In: The Guardian, 6. September 2013.
  5. ↑ Jean-Philippe Aumasson: Crypto competitions 13/05/13, Invited talk at University of Passau (PDF; englisch).
  6. ↑ Alex Biryukov und Dmitry Khovratovich: Argon v1: Password Hashing Scheme (Version v1 auf GitHub)
  7. ↑ Steven Thomas: battcrypt (Blowfish All The Things) (PDF)
  8. ↑ Christian Forler, Stefan Lucks, Jakob Wenzel: The Catena Password-Scrambling Framework. (PDF, 669 KiB) Version 3.2. 29. September 2015, S. 45, abgerufen am 26. Oktober 2015 (englisch).
  9. ↑ Marcos A. Simplicio Jr., Leonardo C. Almeida, Ewerton R. Andrade, Paulo C. F. dos Santos, Paulo S. L. M. Barreto: The Lyra2 reference guide (PDF; 4,7 MB)
  10. ↑ Lyra Webseite: Lyra & Lyra2
  11. ↑ coinbrief.net: Vertcoin (VTC) plans algorithm change to Lyra2
  12. ↑ Thomas Pornin: The MAKWA Password Hashing Function (PDF; 355 kB)
  13. ↑ Steve Thomas: Parallel (PDF)
  14. ↑ Hongjun Wu: POMELO: A Password Hashing Algorithm (PDF)
  15. ↑ Jeremi M. Gosney: The Pufferfish Password Hashing Scheme (Memento des Originals vom 10. Januar 2016 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. (PDF)
  16. ↑ Alexander Peslyak: yescrypt - a Password Hashing Competition submission (PDF; 135 kB)
  17. ↑ Präsentation auf Openwall.com: yescrypt - password hashing scalable beyond bcrypt and scrypt
  18. 1 2 PHC candidates. (Memento vom 11. August 2015 im Internet Archive)
  19. ↑ Argon2-Spezifikationen, S. 1 u. 18, abgerufen am 8. Januar 2016
  20. ↑ Argon2 Spezifikationen, v1.2.1, abgerufen am 8. Januar 2016
  21. 1 2 password-hashing.net, abgerufen am 8. Januar 2015
  22. ↑ The memory-hard Argon2 password hash and proof-of-work function, abgerufen am 23. Juli 2017