Passwort verschlüsseln

Foermchen82

Mitglied
Hallo zusammen.

Ich mach mir grad gedanken über die Verschlüsselung und Speicherung von Passwörtern.

So weit bin ich zu Zeit:

1. MD5 und SHA-1 sind zwar weit verbreitet, aber auch nicht mehr zeitgemäß da bereits geknackt.
2. ein höherer SHA- Algorythmus ist besser, wie Z.B. SHA-256
3. Sahlted Hashes erhöhen die sicherheit.

Aber ich habe noch viele Fragen:

In der Datenbank speichert man ja nun den Benutzernamen, den SHA-256 salted hash und den Salt.

Was wird aber nun bei der Komunikation zwischen Client und Server übertragen Das Passwort in Klartext(sicher nicht), der PW-Hash? oder der Salted-PW-Hash
Die Prüfung des Passwortes erfolgt sicher auf dem Server, und nur der Sollte ja auch den Algorithmus kennen. also wo Verschlüssele ich nun was, und was übertrage ich

Danke im voraus
 
1. MD5 und SHA-1 sind zwar weit verbreitet, aber auch nicht mehr zeitgemäß da bereits geknackt.

Das ist falsch. Erstens hat Hashing nicht viel mit Verschlüsselung gemein, zweitens basieren alle Angriffe auf BruteForce ausgehen von RainbowTables. Kollisionen haben in diesem Bereich so gut wie keine Relevanz.

2. ein höherer SHA- Algorythmus ist besser, wie Z.B. SHA-256
3. Sahlted Hashes erhöhen die sicherheit.

Das stimmt. Aber auch hier sollte man abwägen zwischen Nutzen und Kosten. Selbst SHA1 ist bei einem starkem Passwort nicht in relevanter Zeit erratbar. Dazu kommt, dass der Angreifer auch den Hash wissen muss, und den wird man ja nicht mal eben so rausgeben,

Was wird aber nun bei der Komunikation zwischen Client und Server übertragen Das Passwort in Klartext(sicher nicht), der PW-Hash? oder der Salted-PW-Hash
Die Prüfung des Passwortes erfolgt sicher auf dem Server, und nur der Sollte ja auch den Algorithmus kennen. also wo Verschlüssele ich nun was, und was übertrage ich

Das liegt allein an dem Programm, welches Du verwendest. Normalerweise sollte Dir vom Server das Salt geschickt werden, Du gibst das Passwort ein und generierst den Hash, den Du dann an den Server schickst. Damit ist die Authentifizierung hinreichend sicher. Das Ganze wenn möglich noch über eine gesicherte Kommunikation verschicken.
 
Wieso sollte der Client direkt den hash an den Server schicken? Das macht doch keinen Sinn. Man will ja den Hash deswegen speichern, damit man nicht mit dem Wert der in der DB liegt sich einfach anmelden kann. Wenn ich aber den Client die hash-bildung überlasse und diesen an den server schicke kann ich doch auch gleich den klartext hinschicken. wenn jemand zugriff auf den server hat ist es ihm egal ober er ein klartext oder hash-passwort eingibt. Hasht aber erst der Server das PW dann geht das nicht so einfach.
 

Neue Beiträge

Zurück