Skip to content

Komfort vs. Sicherheit

Bislang waren die Backupplatz-Bereiche von Root-Server-Kunden die einzige Stelle, an der wir Passwörter im Klartext gespeichert haben - aus Komfort-Gründen.

Wir haben dies am heutigen Tage geändert - zu Gunsten der Sicherheit (und zu Lasten des Komforts). Ab sofort werden Passwörter nur noch als SHA512-Hash (natürlich mit Random-Salt) gespeichert. Somit ist ein Anzeigen des Passworts nach dem Anlegen (bzw. Bearbeiten) nicht mehr möglich.

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Felix Gilcher

Ich hoffe ihr habt zu dem SHA-512 auch ein PBKDF2 [1] verwendet - alleine sind die SHA-XXX Hashes nämlich für diesen Zweck denkbar ungeeignet: Sie sind leicht in Hardware zu implementieren und prinzipbedingt schnell zu berechnen - was wiederum einem Angreifer bei einer Brute-Force-Attacke in die Hände spielt. Die Berechnung auf GPUs ist auch möglich, was die Performance eines Angreifes weiter verbessert. Besser wäre bcrypt, scrypt oder key-stretching über og PBKDF2

[1] https://en.wikipedia.org/wiki/PBKDF2

Christoph

Kommt aber immer drauf an, welche Hash-Verfahren die Software anbietet. ;)

Felix Gilcher

Naja, jein. Klar ist SHA-512 besser als Plain-Text und SHA mit Salt besser als SHA ohne Salt. Wenn die Software also nix anderes anbietet muss man das halt nehmen. Allerdings sollte man sich dessen bewusst sein, dass (SHA|MD5)Hashes von mittelmässig langen Passwörten mit etwas Hardware praktisch so schlecht sind wie Plaintext.

Mit etwas Hardware von 2010 (AMD Server Prozessor 2,2 GHz) schafft man in 330MiB/s Plaintext mit md5 zu hashen. Damit schafft man alle lowercase alphanumerischen Passwörter bis 6 Zeichen in 40 Sekunden. [1]

SHA-256 ist halb so schnell - aber auch 80 Sekunden auf 3 Jahre alter Hardware, nun ja - nicht wirklich dramatisch. Mit GPU-Unterstützung und 2010er Hardware für ~ 2000 USD kriegt man so 700.000.000 Versuche gegen SHA-1 pro Sekunde durch. Das wäre ein solches Passwort pro Sekunde sicher geknackt. IGHASHGPU schafft auf einer ATI HD 5970 5,3 Millarden MD5-Passwörter die Sekunde und 2,3 Millarden SHA-1. [3] Das ist so in der Reichweite von alle lowercase alphanumerische Passwörter

Felix Gilcher

hmm. Links verschluckt. Es lebe die Software!

[1] http://www.cryptopp.com/benchmarks-amd64.html
[2] http://www.win.tue.nl/cccc/sha-1-challenge.html
[3] http://www.golubev.com/hashgpu.htm

Felix Gilcher

ei, sehr gut. Eine spitze Klammer bringt die Kommentarfunktion aus dem Trott. Hier nochmal in Gänze, sorry für den Spam. Wenn das jemand aufräumen könnte wäre super :)

-------

Naja, jein. Klar ist SHA-512 besser als Plain-Text und SHA mit Salt besser als SHA ohne Salt. Wenn die Software also nix anderes anbietet muss man das halt nehmen. Allerdings sollte man sich dessen bewusst sein, dass (SHA|MD5)Hashes von mittelmässig langen Passwörten mit etwas Hardware praktisch so schlecht sind wie Plaintext.

Mit etwas Hardware von 2010 (AMD Server Prozessor 2,2 GHz) schafft man in 330MiB/s Plaintext mit md5 zu hashen. Damit schafft man alle lowercase alphanumerischen Passwörter bis 6 Zeichen in 40 Sekunden. [1]

SHA-256 ist halb so schnell - aber auch 80 Sekunden auf 3 Jahre alter Hardware, nun ja - nicht wirklich dramatisch. Mit GPU-Unterstützung und 2010er Hardware für ~ 2000 USD kriegt man so 700.000.000 Versuche gegen SHA-1 pro Sekunde durch. Das wäre ein solches Passwort pro Sekunde sicher geknackt. IGHASHGPU schafft auf einer ATI HD 5970 5,3 Millarden MD5-Passwörter die Sekunde und 2,3 Millarden SHA-1. [3] Das ist so in der Reichweite von alle lowercase alphanumerische Passwörter bis 7 Zeichen in 2 Sekunden. Salts helfen dir da wenig.

Die Zahlen werden etwas weniger dramatisch wenn man auch Groß-Kleinschreibung mit einbezieht und auch das Laufzeitverhalten von SHA-512 unterscheidet sich ein wenig, aber die Zeit arbeitet da einfach für den Angreifer - Hardware wird einfach besser - und wir reden hier noch nicht mal über in Hardware gegossene Implementierungen. Generell ist also festzuhalten dass für Passwort-Speicherung die SHA-Familie denkbar ungeeignet ist, es sei denn man verwendet Key-Stretching (PBKDF2) mit einem adäquaten Work-Factor.

[1] http://www.cryptopp.com/benchmarks-amd64.html
[2] http://www.win.tue.nl/cccc/sha-1-challenge.html
[3] http://www.golubev.com/hashgpu.htm

fh

Wenn ihr schon Passworthashes in PHP umsetzt, würde ich darüber nachdenken, mit PHPass zu arbeiten (http://www.openwall.com/phpass/). Hat neben vielen Kleinigkeiten den Vorteil, automatisch den geeignetsten Crypto-Mechanismus zu wählen, den PHP zu bieten hat. Durch einen Hash-Type-Identifier als Präfix ist es dann nichtmal ein Problem, wenn sich der Mechanismus dann irgendwann ändert.

fh

..und das ganze in ein bisschen hübscher, und PSR-0-Standard dann hier: https://github.com/rchouinard/phpass

nbdy

PHP 5.5 bringt eine einfache aber effektive Passwort-Hash-API (zur Zeit auf bcrypt basierend) mit. Es wird mit ihr schon relativ schwer, Passwörter unsicher zu speichern. Für frühere PHP-Versionen gibt es eine Bibliothek mit identischer API in reinem PHP geschrieben.

Daveman

Etwas OT:

Ich wollte hier
http://www.hostblogger.de/blog/archives/5564-Wenn-Debian-nach-einem-Update-nicht-mehr-bootet.html

gestern Abend einen Kommentar hinterlassen. Ich bekomme die Meldung, dass der Kommentar eingefügt wurde, jedoch sehe ich ihn nicht. Ist das kaputt?

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

BBCode-Formatierung erlaubt
Formular-Optionen