Passwort Salting

Was ist denn dieses MD5 überhaupt?
MD5 (Message-Digest Algorithm 5) ist eine weit verbreitete kryptographische Hash-Funktion, die einen 128-Bit-Hashwert erzeugt. MD5 wurde 1991 von Ronald L. Rivest entwickelt. Die errechneten MD5-Summen (kurz md5sum) werden zum Beispiel zur Integritätsprüfung von Dateien eingesetzt. (Quelle: Wikipedia.org)

Was ist salten und warum sollte ich es tun?
Unter salzen (bzw. salt) versteht man das einhashen von weiteren Zeichenkombinationen (z. B. „salz“) in den Passworthash, der dann zur Überprüfung des eingegebenen User-Passworts herangezogen wird. Salten empfiehlt sich generell, um auch kurze Passwörter sicher vor Rainbow Table Datenbanken und Bruteforce Angriffen zu machen.

Wie soll das funktionieren?
Das ganze lässt sich in PHP z. B. sogar relativ simpel realisieren:

<?php

$hash = md5(md5($passwort).'salt');

// oder auch mit dem Usernamen...
$hash = md5(md5($passwort).$username);

?>

Eine Überprüfung müsste dementsprechend so aussehen:

<?php

if (md5(md5($_POST['pass'].'salt')) == $pass_hash) return 1;
if (md5(md5($_POST['pass']).$username) == $pass_hash) return 1;

?>

Natürlich bietet auch dies keine 100%ige Sicherheit, aber es ist in jedem Fall sicherer als das Passwort im Klartext zu hashen. Wenn keiner die eigene Verschlüsselungsmethode kennt, wird das ganze natürlich um so sicherer. Ist sie allerdings bekannt, ist das ganze auch leicht wieder rückgängig zu machen.

Einen Kommentar hinterlassen

Dein Kommentar