004
11.06.2005, 13:32 Uhr
Crazy-X
|
Zitat von Pler: |
Wie werden diese Passwörter von diesen Programm hinterlegt?
|
Also normalerweise speichern Programme (oder eben auch Datenbanken) die Passwörter nicht als Klartext. Es werden nur sogenannte Hash-Werte der Passwörter gespeichert. D.h. diese Hash-Werte sind Prüfsummen, die üblicherweise durch Ein-Weg-"Verschlüsselungen" (bzw. Ein-Weg-Hash-Verfahren) generiert werden.
Diese Algorithmen generieren aus dem Passwort eine Prüfsumme (den Hash-Wert), die man *nicht* mehr entschlüsseln kann. D.h. aus dem Hash-Wert kann man das Passwort nicht mehr wiederherstellen. Das entscheidende ist aber, dass der Algorithmus aus dem gleichen Passwort immer die gleiche Prüfsumme generiert.
Die Prüfung des Passwortes läuft dann so ab:
Der Benutzer gibt das Passwort ein und das Programm wendet den gleichen Hash-Algorithmus darauf an. Die entstehende Prüfsumme vergleicht das Programm dann mit dem gespeicherten Hash-Wert. War das Passwort richtig, stimmen auch die Prüfsummen überein.
Zitat von Pler: |
Kann ein fremder dann nicht auch mit dem Verschlüsselten Passwort was anfangen?
|
Normalerweise kann man aus oben genannten Gründen (Ein-Weg-Verfahren) nichts mit dem Verschlüsselten Passwort anfangen. Allerdings gibt es aber auch immer Meldungen über erfolgreiche "Angriffe" auf solche Hash-Verfahren: D.h. mann versucht ein Wort zu finden, dass verschlüsselt genau die selbe Prüfsumme ergibt, wie das Passwort. Allerdings ist sowas meistens sehr theoretisch und kompliziert. Man muss eben aufpassen, dass man einen Algorithmus benutzt der (noch) als sicher gilt. AFAIK gibt es schon Algorithmen, die aufgrund solcher Kollisionen als nicht mehr sicher gelten.
Zitat von Pler: |
Gibts dafür irgendwie schon funktionen?
|
Für Passwörter wird meistens der MD5 Algorithmus benutzt. Suche einfach mal im Internet danach. Eigentlich sollte man für jede Zielsprache eine entsprechende Implementation dafür finden.
HTH Crazy-X Dieser Post wurde am 11.06.2005 um 13:34 Uhr von Crazy-X editiert. |