www.wikidata.de-de.nina.az
bcrypt ist eine kryptologische Hashfunktion die speziell fur das Hashen und Speichern von Passwortern entwickelt wurde Die auf dem Blowfish Algorithmus basierende Funktion wurde von Niels Provos und David Mazieres konzipiert und auf der USENIX Konferenz im Jahre 1999 der Offentlichkeit prasentiert Inhaltsverzeichnis 1 Hintergrund 2 Design 3 Funktionsweise 4 Sicherheit 5 Weiterentwicklung 6 Weblinks 7 EinzelnachweiseHintergrund BearbeitenUm Benutzer einer Anwendung oder Website zu authentifizieren wird in der Regel eine Kombination von Benutzername oder E Mail Adresse und einem Passwort eingesetzt Die Website muss das Passwort hierzu speichern allerdings ist das Speichern des Passworts in unverschlusselter Form ein beachtliches Sicherheitsrisiko Falls Passwort und Benutzername einem Dritten bekannt werden etwa falls die Website gehackt wird kann dieser sich gegenuber der Website authentifizieren Da viele Anwender fur viele Dienste die gleiche Kombination von Benutzername und Passwort verwenden kann dies auch weitere Dienste betreffen Dieses Problem wird in der Regel mittels kryptographischer Hashfunktionen umgangen Dabei wird mit einer solchen Funktion ein Hashwert des Passwortes ermittelt und gespeichert Solche Funktionen zeichnet aus dass das Original Passwort nicht wiederhergestellt werden kann Um den Benutzer zu authentifizieren wird die Eingabe des Benutzers mit der gleichen Funktion gehasht und die beiden Hashwerte verglichen wenn die Original Passworter gleich sind sind auch die Hashwerte gleich Die Hashfunktionen MD5 und die Secure Hash Algorithm SHA1 usw sind mit dem Ziel entwickelt worden die Daten moglichst effizient zu hashen da sie etwa auch zur Verifizierung von grossen Dateien verwendet werden Diese Effizienz erleichtert es aber auf der anderen Seite die Passworter mittels Brute Force Attacken zu erraten oder sog Rainbow Tables zu erstellen weswegen diese nicht mehr zum Hashen von Passwortern verwendet werden sollten Design BearbeitenPasswort Hashing Verfahren wie PBKDF2 scrypt und auch bcrypt wurden im Gegensatz zu regularen Hashing Verfahren mit dem Ziel entwickelt das Hashing moglichst aufwandig zu gestalten Fur normale Anwendungszwecke fallt dieser Aufwand gegenuber anderen Faktoren nicht ins Gewicht erst wenn die Berechnung haufig hintereinander durchgefuhrt werden soll wie z B bei einem Brute Force Angriff tritt eine erhebliche Verlangsamung ein Die Prasentation von bcrypt fuhrte zu diesem Zweck einige Design Kriterien fur Passwort basierte Schlusselableitungsfunktionen ein Bcrypt verfugt uber einen je nach Anwendungszweck einstellbaren Kostenfaktor der den Arbeitsaufwand der Hashwert Berechnung definiert Mit diesem Faktor kann auch der Aufwand erhoht werden wenn sich in der Zukunft die Leistungsfahigkeit der Computer weiterentwickelt Die Funktion soll fur den Kontext fur den sie konstruiert wurde optimiert sein Performance Vorteile fur Hardware Implementierungen und andere Programmiersprachen sollen gering ausfallen da solche Vorteile einem Angriff zugutekommen Eine moderate Speicheranforderung begrenzt den Vorteil von Hardware Optimierungen Bcrypt fordert 4 KB Arbeitsspeicher an Software Implementierungen sollen auf Operationen beruhen die fur CPUs optimiert sind wie exklusiv Oder Addition oder Shift Operationen Die NIST Empfehlung von 2010 zur PBKDF2 1 berucksichtigt nur das erste Kriterium Aufgenommen und erweitert wurden diese Kriterien jedoch in der Schlusselableitungsfunktion scrypt und von der Password Hashing Competition 2 Funktionsweise BearbeitenBcrypt unterscheidet sich nur in einigen Punkten von der Blockverschlusselung Blowfish Die Verlangsamung findet hauptsachlich innerhalb der Passwort abhangigen Berechnung der Runden Schlussel und der S Boxen statt Diese werden in mehreren Runden abhangig vom Salt und dem Passwort durch die Funktion EksBlowfishSetup modifiziert Die Anzahl dieser Runden ist 2 hoch der cost Parameter Im Anschluss daran wird mit den so erzeugten Runden Schlusseln und S Boxen der 192 Bit Wert OrpheanBeholderScryDoubt 64 mal im ECB Modus verschlusselt Das Resultat der bcrypt Referenz Implementierung ist eine 60 Zeichen lange Zeichenabfolge die an die Erfordernisse des ursprunglichen Anwendungszwecks der Benutzer Authentifizierung von OpenBSD angepasst ist Mit dem Zeichen wird die Zeichenfolge eingeleitet und jeweils Versionsnummer Kostenfaktor und eine Zeichenfolge bestehend aus Salt und Hashwert getrennt Salt und Hashwert werden mit einer speziellen Base64 Kodierung abgebildet der eigentliche Hashwert ist in den letzten 31 Zeichen enthalten Dieses Format wird auch von anderen Implementierungen ubernommen Sicherheit BearbeitenDie Lange des Passworts ist bei bcrypt auf 56 Bytes beschrankt auch wenn die meisten Passworter diese Grenze nicht uberschreiten Die Speicheranforderung von 4 KB wird der Anforderung Hardware Implementierungen beispielsweise in FPGAs und ASICs zu limitieren nicht gerecht Unter Einbeziehung der Energieeffizienz und der Kosten fur die Hardware ist bcrypt vor allem durch parallel rechnende FPGAs angreifbar Worterbuchangriff oder Brute Force Methode Ein Angriffsszenario mit speziellen ASICs ware noch aussichtsreicher 3 4 5 Dennoch schneidet bcrypt bei Vergleichen in Bezug auf Angriffe mit spezialisierter Hardware oft besser ab als die meisten anderen Passwort basierten Schlusselableitungsfunktionen abgesehen von scrypt 6 7 8 9 Weiterentwicklung BearbeitenMit Pufferfish von Jeremi Gosney nimmt ein Algorithmus an der Password Hashing Competition teil der stark an bcrypt angelehnt ist 10 Auch der an scrypt angelehnte Algorithmus yescrypt nimmt den Mechanismus des schnellen zufalligen Zugriffs der den Algorithmus GPU resistent macht auf 11 Weblinks BearbeitenA Future Adaptable Password Scheme von Niels Provos und David Mazieres englisch Einzelnachweise Bearbeiten Meltem Sonmez Turan Elaine B Barker William E Burr Lidong Chen Recommendation for Password Based Key Derivation Part I Storage Applications NIST SP 800 132 2010 Password Hashing Competition Call for submissions Memento vom 2 September 2013 im Internet Archive Kriterien fur Passwort basierte Schlusselableitungsfunktionen Katja Malvoni Solar Designer Josip Knezovic Are Your Passwords Safe Energy Efficient Bcrypt Cracking with Low Cost Parallel Hardware Untersuchung uber die Performance von Hardware zum Brechen von bcrypt Hashwerten pdf englisch Energy efficient bcrypt cracking Takeaways Prasentation bei openwall englisch Wiemer F Zimmermann R High speed implementation of bcrypt password search using special purpose hardware In 2014 International Conference on Reconfigurable Computing and FPGAs ReCoFig 2014 Colin Percival Stronger Key Derivation via Sequential Memory Hard Functions Prasentation auf dem BSDCan 09 Auf S 14 werden die Kosten zum Brechen verschiedene Funktionen miteinander verglichen European Union Agency for Network and Information Security Algorithms key size and parameters report 2014 Memento vom 17 Oktober 2015 im Internet Archive S 53 pdf http www openwall com presentations Passwords12 The Future Of Hashing Enthalt auf S 45 und 46 einen Vergleich bezuglich FPGAs ASICs und GPUs Markus Durmuth and Thorsten Kranz On Password Guessing with GPUs and FPGAs Memento vom 26 Juni 2015 im Internet Archive 2014 PDF 391 kB Wiki der Password Hashing Competition Pufferfish Memento vom 19 August 2014 im Internet Archive englisch Wiki der Password Hashing Competition yescrypt Memento vom 19 August 2014 im Internet Archive englisch Abgerufen von https de wikipedia org w index php title Bcrypt amp oldid 234634102