Hallo,
Woraus liest du das?
Ich mein ja nur, dass es so wirkt. Man sollte explizit sagen, dass es nicht so ist.
Diese Methode schützt nur das Klartextpasswort falls man z.B. keine HTTPS-Verbindung nutzen kann, mehr nicht.
Ohne Salt bringt es dir aber nichts, weil man dann das Klartextpasswort überhaupt nicht mehr schützen müsste. Schließlich ineressiert sich der Angreifer nicht mehr für ein Klartextpasswort, wenn jedes Login-System nur einen Hash haben will. Er muss nicht einmal den Hash vom Passwort berechnen, sondern kann den abgefangenen Hash gleich bei anderen Servern testen.
Das Passwort bei der Übertragung aus dem Frontend zu salten macht das Passwort unsicherer, da das generieren einer Hash-Tabelle aus einem Wörterbuch oder per Zähler mit einem bekannten Prefix bei einem einzelnen Passwort durchaus noch sinnvoll ist.
Wenn ich ein Wörtebuch habe, für ein 8-stelliges Passwort, dann wäre dieses genauso groß wie ein Wörtebuch für ein 8-steliges Passwort + Salt. Das setzt die Sicherheit doch nicht herab. Die ersten feststehenden Zeichen beeinflussen zwar den Hash-Wert und verändern diesen. Jedoch wird dadurch die Anzahl der möglichen Hash-Werte nicht verringert. (Zumindest wenn man mögliche Kollisionen vernachlässigt, die bei einem relativen kurzen Salt und Passwort eher nicht auftreten sollten.)
Ein Salt ist dafür da, viele Passwörter zu schützen. Ein einzelnes schwaches Passwort profitiert davon nicht.
Doch damit der Hash nicht bei einem anderen Server verwendet werden kann, wo der Benutzer das gleiche Passwort einsetzt.
Und somit bleibe ich bei meiner am Anfang aufgestellten These, dass es nichts bringt, wenn man Passwörter einfach nur durch eine Hash-Funktion laufen lässt bevor man sie verschickt. Ohne Salt bringt es einfach nichts.
Doch, es schützt das Klartextpasswort wenn kein SSL zur Verfügung steht. Salt oder kein Salt spielt hier keine große Rolle.
Doch eine erhebliche, da ohne Salt wie schon mehrfach erwähnt der Hash auch bei anderen Servern verwendet werden kann.
Und für das eigene Loginsystem erhöht es nicht die Sicherheit.
Ich weiß immer noch nicht, wo das in dem Artikel steht :)
Es steht aber da, dass die Passwörter sicher übertragen werden. Daraus könnte man schließen, dass auch das eigene Loginsystem dadurch sicherer wird. Das ist zwar ein Trugschluss, auf den aber nicht aufmerksam gemacht wird.
Es glauben ohnehin viele Leute, dass ein Passwört durch MD5 sicher wäre.
Gerade deshalb muss auf so etwas hingewiesen werden. Beim der Beschreibung vom Passwortfeld in Selfhtml, wird auch extra darauf hingewiesen, dass die Passwörter nicht verschlüsselt werden.
"Passwörter werden häufig noch im Klartext im Internet/Intranet übertragen (vgl. SELFHTML Eingabefelder für Passwörter).
Neben diesem Risiko, werden die Zugangsdaten auf Seiten des Servers üblicherweise in einer Datenbank abgespeichert. Ein in diesem Beitrag besprochenes Verfahren bietet die Möglichkeit das Passwort direkt MD5 verschlüsselt über das Netz zu schicken."
Das klingt doch so, als könnte man damit das Problem durch die "Verschlüsselung" beheben.
Ebenso gibt es viele Leute, die glauben dass ein es sichrer wäre MD5 gegen SHA-256 zu ersetzen. Bei dämlichen Passwörtern ist es aber völlig unerheblich.
Das ist aber nicht die Aufgabe des von dir verlinkten Artikels.
Er beschreibt nur, wie man mit JavaScript einen MD5-Hash erzeugt.
Und es gibt ein Anwendungsbeispiel bei dem man auf solche Fallen hinweisen müsste. Ohne dem Anwendungsbeispiel würde ich dir zustimmen.
Viele Grüße Novi
--
"(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)