Startseite Artikel Galerie Kontakt
JK ~ IT & Technik Blog

Archiv für Jan, 01.2012

Passwörter im Internet sicher speichern

Mit Erschrecken stelle ich immer wieder fest, dass viele Internetseiten die Sicherheit von Benutzerkonten hinsichtlich der Passwörter vernachlässigen.

Der schlimmste Fall betrifft eine recht populäre Internetseite mit angekoppeltem Online-Shop, die die Passwörter sogar im Klartext zu hinterlegen scheint. Hat man das Passwort vergessen wird es nämlich im Klartext per E-Mail zugesendet, was ein enormes Sicherheitsrisiko bedeutet. Zum einen können die Datenbestände des Anbieters in falsche Hände gelangen, zum anderen birgt der unverschlüsselte Versand des Passwortes weitere Risiken (z.B.: Man-In-The-Middle Angriff). Man kann sich leicht vorstellen, wie viele Benutzer das dortige Passwort auch auf anderen Internetseiten verwenden und was das im Falle von Datendiebstahl bedeuten kann… Einen Hinweis sucht man auf der Internetseite ebenfalls vergebens.

Leider stoße ich sogar bei etwas besser abgesicherten Internetseiten häufig über sehr niedrige Begrenzungen der Passwortlänge. Aus welchem Grund darf ein Passwort nur 10 oder 20 Zeichen lang sein? Das Passwort wird ohnehin verschlüsselt und ist damit immer gleich lang (z.B.: 64 Bytes bei MD5). Einzig die möglichen Performance-Verluste seitens des Webservers fallen mir dabei als Grund ein. Daraufhin bastelte ich mir kurzerhand ein kleines PHP-Script um Benchmarks für unterschiedlich lange Zeichenketten aufzuzeichnen. Dabei werden die Hash-Verfahren MD4, MD5, SHA1, SHA256 und SHA512 jeweils mit einer 32, 64, 160 und 320 Bytes langen Zeichenkette berechnet. Um auf einigermaßen aussagekräftige Werte zu kommen, wird jede Berechnung 10.000 mal durchgeführt und der Mittelwert gebildet. Als Ergebnis der Untersuchungen kam ich zu der Erkenntnis, dass die Hash-Verfahren MD4 und MD5 die Zeichenkette in der kürzesten Zeit berechnen konnten. Die Länge der Zeichenkette wirkt sich dabei zwar auf die Dauer der Berechnung aus, aber nicht sehr stark: während sich die Länge verzehnfacht, benötigen die beiden Hash-Verfahren lediglich die rund 1,4-fache Zeit.
Etwas anders sieht es bei SHAx aus. Die Leistung von SHA1 ist noch ungefähr vergleichbar mit MD4/MD5. Die Berechnung mit SHA256 dauert aber schon etwas länger und bei der zehnfachen Länge der Zeichenkette wird auch schon die doppelte Zeit benötigt. Am längsten dauert die Berechnung mit SHA512, nämlich rund drei bis vier mal so lange im Vergleich zu MD4/MD5. Die Proportionen verhalten sich hier wie bei SHA256.

Ergebnisse: hashbenchmark.txt

Was bedeutet das nun? Obwohl sich die Zeiten teilweise deutlich unterscheiden, kann ich mir kaum vorstellen, dass ein Webserver durch längere Berechnungen deutlich an Performance verliert. Im übrigen bin ich der Meinung, dass auch diese Umstände bei der Auslegung der Hardware des Servers berücksichtigt werden sollten! Übrigens sind schnelle Hash-Verfahren nicht unbedingt die besten, denn auch Rainbow-Tables lassen sich damit schneller erstellen, wovon die Cracker profitieren.

Eine Begrenzung der Passwortlänge würde ich erst ab mindestens 50 Zeichen ansetzen und als Hash-Verfahren SHA256 oder SHA512 verwenden. Weiterhin ist die Verwendung von Salts, die vor, hinter oder/und in das Passwort eingefügt werden, zu empfehlen. Damit lassen sich die Passwörter künstlich in die Länge ziehen und sogar Wörter aus Wörterbüchern so verschlüsseln, dass Angriffe mit Rainbow-Tables erfolglos bleiben. Eine weitere sinnvolle Methode ist das mehrfache Berechnen eines Hashes. So wird die resultierende Zeichenkette nach dem Verschlüsseln des Passwörtes wiederum verschlüsselt. Dieser Vorgang kann beliebig oft wiederholt werden, was wiederum die Rückverfolgung über Rainbow-Tables erschwert.

Den abschließenden Appell auf jeder Internetseite ein anderes Passwort zu verwenden kann so manch einer vielleicht nicht mehr hören, möchte ich an dieser Stelle der Vollständigkeit halber erwähnen!

Verfasst am: 06.01.2012 · Kategorien: Internet, Webserver
Schlagworte: , , , , , , , , , , , ,  · Kommentare: Keine Kommentare