|
Passwortsicherheit in Datenbanken
|
|
25-01-2011, 10:35 PM
Beitrag #1
|
|||
|
|||
|
Passwortsicherheit in Datenbanken
Viele Webadmins werden immer irgendwann zu dem Punkt kommen an dem sie sich fragen, wie eigentlich die Passwörter in der Datenbank gespeichert werden. Klartext? Verschlüsselt? - Wenn ja, wie?
Es gibt mehrere Möglichkeiten Passwörter sicher in Datenbanken abzulegen. Die mit am häufigsten genutzte Methode erkläre ich im Folgenden. Dazu habe ich 3 Bilder erstellt welche nach und nach das Prinzip verdeutlichen sollen. Viele Forensoftware und Onlineshops nutzen diese Methode bereits. Es schadet aber nie vorallem als Entwickler zu wissen wie man in z.B. seinem eigenen CMS die Passwörter richtig speichert. One-Way Algorithmus Im wesentlichen handelt es sich dabei um eine Funktion die aus einem Eingabetext einen neuen Ausgabetext erzeugt. Im Gegensatz zum Eingabetext ist der Ausgabetext allerdings häufig gleichlang. Sprich es macht keinen Unterschied ob der Eingabetext 10 oder 40 Zeichen lang ist. Der Ausgabetext wird z.B. immer 32-stellig sein. Der Name One-Way Algorithmus ist Programm! Man kann den Ausgabetext NICHT zurück in den Eingabetext übersetzen. Es gibt einfach keine Möglichkeit. Genau dieses zunächst seltsam erscheinende Feature wird für die Passwortspeicherung genutzt. Bekannte One-Way Algorithmen sind: MD5, SHA1, SHA256, Whirlpool [center] [/center]Salting (saltzen) Da ein One-Way Algorithmus nicht entschlüsselt werden kann gibt es nur eine Möglichkeit wieder auf den Eingabetext zu kommen: Cracken (Brute-Force). Bei einer Brute-Force Attacke werden einfach ALLE Möglichkeiten durchprobiert. Sprich man erstellt den Hash von dem Eingabetext "aaa" und vergleicht diesen mit dem Hash des Passwortes. Ist es nicht der gleiche, so erstellt man den Hash vom Eingabetext "aaaa"... usw. Da das enorm Zeitaufwendig ist gibt es RIESIGE Datenbanken welche den Eingabetext und den dazugehörigen Hash speichern (s.g. Rainbowtables). Da man somit ein Hash welcher aus einem 6-8 stelliges Passwort gebildet wurde sehr schnell raufinden kann, verlängert man einfach den Eingabetext. Man konkatiniert (verkettet) dein Eingabetext mit irgendeinem zufälligen Text von beliebiger Länge. Je länger desto besser. Da der Hash von dem neuen, wirklich langem Passwort in praktisch keinem Rainbowtable zu finden sein wird, und das cracken einfach überhaupt keinen Sinn macht, ist das mit die sicherste Methode Passwörter online zu speichern. [center] [/center]Login Nun habe ich noch ein kleines Model erstellt, was verdeutlichen soll wie nun ein gewöhnlicher Login funktioniert. [center] [/center]
|
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



[/center]
[/center]
[/center]




