Lohnt es sich, Passwörter auf der Client-Seite zu haschen?


132

Wenn ich ein Anmeldesystem einrichten möchte, vergleiche ich immer das MD5 des angegebenen Kennworts mit seinem Wert in der Benutzertabelle auf der Serverseite.

Ein Freund von mir sagte mir jedoch, dass ein "klares" Passwort von einer Netzwerksoftware abgehört werden könnte.

Meine Frage lautet also: Ist es eine gute Idee, das Passwort auf der Clientseite zu hashen? Ist es besser als es auf der Serverseite zu hashen?


1
Ich habe darüber nachgedacht, das Passwort auf der Clientseite zu haschen, aber nur, damit ich sicher sein kann, dass das Passwort des Clients auf der Serverseite nie als Klartext existiert, was bedeutet, dass sie sich leichter fühlen können, wenn sie wissen, dass ich ihr tatsächliches Passwort nicht kenne, oder kann es nicht einfach aufgeben, wenn es kompromittiert wird. Bin ich verrückt?
Zyklon

1
Nur der Vollständigkeit halber, da es sich um Sicherheit handelt und MD5 im OP erwähnt wurde: Beim Verschlüsseln eines Passworts sollte immer ein Salt verwendet werden. Die Verwendung von einfachem, ungesalzenem MD5 ist nur unwesentlich besser als das Speichern von Klartextkennwörtern in Ihrer Datenbank.
sffc

1
@Cyclone Hashing NUR auf der Clientseite ist definitiv eine schlechte Idee, da der Angreifer, wenn er den Hash irgendwie kennt, sich damit anmelden kann, als ob er das Passwort kenne, wobei der clientseitige Hashing-Code umgangen wird.
Teejay

5
@Teejay: Deshalb schickst du den Hash nicht im Klartext. Der Server sendet ein zufälliges Salt an den Client. Sie hängen den Kennwort-Hash an und hashen das Ganze erneut. Anschließend senden Sie diesen an den Server zurück, der die gleiche Berechnung durchführt. Ein Wiederholungsangriff schlägt fehl, weil das Salz anders sein wird
MSalters

2
Sollte diese Frage bei security.stackexchange.com nicht zu Ende sein?
efr4k

Antworten:


115

Grundsätzlich hat dein Freund recht. Aber einfach auf der Client - Seite die Passwort - Hashing ist nur gerade besser , als es als Klartext an den Server. Jemand, der auf Ihre Nur-Text-Passwörter warten kann, kann sicherlich auch auf Hash-Passwörter warten und diese erfassten Hashes selbst verwenden, um sich bei Ihrem Server zu authentifizieren.

In diesem Fall springen sicherere Authentifizierungsprotokolle normalerweise durch eine Reihe von Rahmen, um sicherzustellen, dass ein solcher Wiederholungsangriff normalerweise nicht funktioniert, indem der Client eine Reihe von zufälligen Bits auswählen kann, die zusammen mit dem Kennwort gehasht werden und auch im Klartext an den Server übermittelt.

Auf dem Server:

  • Generieren Sie ein paar zufällige Bits
  • Senden Sie diese Bits (im Klartext) an den Client

Auf dem Client:

  • generiere ein paar zufällige Bits
  • Verketten Sie das Passwort, die zufälligen Bits des Servers und die zufälligen Bits des Clients
  • Generieren Sie einen Hash der oben genannten
  • Senden Sie zufällige Bits (im Klartext) und Hash an den Server

Da der Server seine eigenen zufälligen Informationen sowie die zufälligen Bits des Clients kennt (er hat sie als Klartext erhalten), kann er im Wesentlichen dieselbe Transformation durchführen. Dieses Protokoll stellt sicher, dass niemand, der in diesem Gespräch zuhört, die Informationen später verwenden kann, um sich anhand der aufgezeichneten Informationen fälschlicherweise zu authentifizieren (es sei denn, ein sehr schwacher Algorithmus wurde verwendet ...), solange beide Parteien jedes Mal unterschiedliche "Rauschbits" erzeugen. Der Handschlag wird durchgeführt.

Bearbeiten All dies ist fehleranfällig und langwierig und etwas schwer zu korrigieren (sprich: sicher). Wenn möglich, sollten Sie Authentifizierungsprotokollimplementierungen verwenden, die bereits von sachkundigen Personen geschrieben wurden (im Gegensatz zu mir! Das Obige stammt nur aus der Erinnerung an ein Buch, das ich vor einiger Zeit gelesen habe). Sie möchten dies normalerweise nicht selbst schreiben.


5
Wie kann er sich mit dem Hash-Passwort im Anmeldesystem authentifizieren, da es erneut gehasht wird?
Zakaria

4
Wenn Sie Ihre Passwörter in Hash-Form auf dem Server speichern (wie Sie sollten), muss der Client das Passwort zweimal hashen: zuerst das Passwort allein, damit es mit der Weltanschauung des Servers übereinstimmt, und dann wie oben für beschrieben um des Protokolls willen.
Dirk

3
@Dirk, da der Angreifer in beide Richtungen schnüffeln kann, würden die "zufälligen Bits" mitgeschnüffelt. Anschließend kann der Angreifer das Anforderungs- und Antwortpaar offline analysieren (lesen: Brute Force), um das ursprüngliche Kennwort zu finden.
Pacerier

7
Zum Übermitteln eines Passworts oder des Hash eines Passworts wird jedoch häufig ein asymmetrischer Prozess wie Diffie-Hellman verwendet, um einen Verschlüsselungsschlüssel einzurichten, mit dem beide Seiten Informationen austauschen können, ohne dass eine Snooping-Partei sie entschlüsseln kann. Dies ist genau das, was SSL tut, und der Grund, warum die meisten Websites ihre Anmeldeseite auf HTTPS / SSL haben. SSL schützt bereits vor Wiederholungsangriffen. Ich würde empfehlen, SSL zu nutzen, anstatt ein eigenes Protokoll zu erstellen. Ich bin zwar mit Salting + Hashing der Passwort-Client-Seite einverstanden, sende diese aber über eine hergestellte SSL-Verbindung.
AaronLS

14
Um ganz klar zu sein: Wenn Sie kein HTTPS verwenden, spielt es keine Rolle, welches Javascript Sie auf dem Client ausführen. Ein MITM kann den Inhalt Ihrer Seite ändern, bevor er den Client erreicht. HTTPS ist die einzige Lösung.
Aidan

60

Erstens verbessert dies NICHT die Sicherheit Ihrer Anwendung (vorausgesetzt, es handelt sich um eine Webanwendung).

Verwenden Sie SSL (oder tatsächlich TLS, das allgemein als SSL bezeichnet wird), es ist nicht wirklich teuer (Messen Sie die Zeit, die Sie verwenden, um Wege zu finden, und multiplizieren Sie es mit dem Mindestlohn, der Kauf eines Zertifikats gewinnt fast immer).

Das Warum dazu ist einfach. TLS löst ein Problem (bei Verwendung mit gekauften Zertifikaten, nicht selbstsigniert), das in der Kryptografie ziemlich groß ist: Woher weiß ich, dass der Server, mit dem ich spreche, der Server ist, mit dem ich zu sprechen glaube? TLS-Zertifikate sind eine Art zu sagen: "Ich, die von Ihrem Browser vertrauenswürdige Zertifizierungsstelle, bescheinige, dass die Website unter [url] diesen öffentlichen Schlüssel mit einem entsprechenden privaten Schlüssel hat, den (privater Schlüssel) nur dem Server bekannt ist Ich habe meine Unterschrift im gesamten Dokument unterschrieben. Wenn jemand sie geändert hat, können Sie sehen ".

Ohne TLS wird jede Verschlüsselung sinnlos, denn wenn ich in einem Coffeeshop neben Ihnen sitze, kann ich Ihren Laptop / Ihr Smartphone glauben lassen, ich sei der Server und MiTM (Man in The Middle) Sie. Mit TLS schreit Ihr Laptop / Smartphone "UNTRUSTED CONNECTION", weil ich kein von der Zertifizierungsstelle signiertes Zertifikat habe, das Ihrer Site entspricht. (Verschlüsselung vs. Authentifizierung).

Haftungsausschluss: Benutzer klicken in der Regel direkt durch diese Warnungen: "Nicht vertrauenswürdige Verbindung? Was? Ich möchte nur meine Bilder von Kätzchen! Ausnahme hinzufügen Klicken Sie auf Bestätigen Klicken Sie auf YAY! Kätzchen!"

Wenn Sie jedoch wirklich kein Zertifikat kaufen möchten, implementieren Sie dennoch clientseitiges Javascript-Hashing (und verwenden Sie dazu die Standford-Bibliothek (SJCL). Implementieren Sie CRYPTO NIEMALS selbst ).

Warum? Passwort wiederverwenden! Ich kann Ihr Sitzungscookie (mit dem ich Ihrem Server vorgeben kann, dass ich Sie bin) ohne HTTPS einfach stehlen (siehe Feuerschaf). Wenn Sie jedoch Ihrer Anmeldeseite ein Javascript hinzufügen, das vor dem Senden Ihr Passwort hasht (verwenden Sie SHA256 oder noch besser SHA256, senden Sie ihnen einen von Ihnen generierten öffentlichen Schlüssel und verschlüsseln Sie dann das Passwort damit, können Sie kein Salt verwenden mit diesem) und sendet dann das gehashte / verschlüsselte Passwort an den Server. REHASHEN Sie den Hash auf Ihrem Server mit einem Salt und vergleichen Sie ihn mit dem, was in Ihrer Datenbank gespeichert ist (speichern Sie das Passwort wie folgt :

(SHA256(SHA256(password)+salt))

(Speichern Sie das Salz auch als Klartext in der Datenbank)). Und senden Sie Ihr Passwort wie folgt:

RSA_With_Public_Key(SHA256(password))

und überprüfen Sie Ihr Passwort wie folgt:

if SHA256(RSA_With_Private_Key(SHA256(sent_password))+salt_for_username) == stored_pass: login = ok

Denn WENN jemand Ihren Kunden Schnüffeln, werden sie auf Login als Client (Session Hijacking) fähig sein , aber sie werden nie das Klartext - Passwort sehen (es sei denn , sie Ihr Javascript ändern, aber Starbucks ein Hacker wird wahrscheinlich nicht wissen Howto / interessieren in diesem.) So erhalten sie Zugriff auf Ihre Webanwendung, aber nicht auf ihre E-Mail / Facebook / etc. (für die Ihre Benutzer wahrscheinlich dasselbe Passwort verwenden). (Die E-Mail-Adresse ist entweder ihr Loginname oder befindet sich in ihrem Profil / ihren Einstellungen auf Ihrer Webanwendung.)


Ich denke, dies ist eine gute Antwort, aber es braucht wahrscheinlich weitere Informationen darüber, wie man richtig salzt und dass es besser ist, eine "langsame" Hashing-Funktion zu verwenden, bevor das Passwort auf dem Server gespeichert wird (wie bcrypt).
Neyt

24

Sie können sich wahrscheinlich keine Sorgen machen - wie Dirk erwähnt, selbst wenn Sie die Passwörter hashen, könnte sich ein böswilliger Benutzer in einem Netzwerk befinden und sehen, dass der Hash gesendet wird, und könnte einfach denselben Hash selbst senden.

Es ist insofern etwas besser, als es den böswilligen Benutzer daran hindert, das Kennwort zu kennen. Da er sich jedoch weiterhin anmelden (oder möglicherweise das ursprüngliche Kennwort rekonstruieren ) kann, ist dies nicht hilfreich.

Wenn Sie sich Sorgen über die Sicherheit der Kennwörter und Daten Ihres Benutzers machen (und das sollten Sie auch!), Sollten Sie im Allgemeinen einen sicheren SSL-Server verwenden. Wenn dies aus irgendeinem Grund kein Problem für Sie ist, können Sie sich genauso gut nicht um Hashing kümmern. Es ist nur Sicherheit durch Dunkelheit .


Edit Aug 2014: Google drängt immer stärker darauf, dass Websites überall auf HTTPS umsteigen , da die Sicherung der Kommunikation selbst die einzige Möglichkeit ist, Netzwerk-Sniffing-Angriffe zu verhindern. Versuche, die übertragenen Daten zu verschleiern, behindern einen dedizierten Angreifer nur, halten ihn nicht auf und können Entwicklern ein gefährliches falsches Sicherheitsgefühl vermitteln.


Ich denke, Ihre Meinung, dass clientseitiges Hashing nur "etwas besser" ist, ist wahr, wenn Sie sich ausschließlich darauf konzentrieren, xdas Kennwort des Benutzers zu erhalten und auf einen einzelnen Dienst zuzugreifen. Wenn Sie den kollektiven Effekt betrachten, würde ich sagen, dass er "viel besser" ist; weil es verhindert, dass große Suchdatenbanken mit Kennwörtern erstellt werden, mit denen gesalzene Hashes über mehrere Dienste hinweg brutal erzwungen werden. IMO. Sehen Sie als Referenz, was AWS Cognito im Client tut.
f1lt3r

17

Eigentlich bin ich nicht der Meinung, dass clientseitiges Hashing in diesem Fall sicherer ist. Ich denke, es ist weniger sicher.

Der gesamte Sinn des Speicherns eines Hashs des Passworts in Ihrer Datenbank im Gegensatz zum realen Passwort (oder sogar einem verschlüsselten Passwort) besteht darin, dass es mathematisch unmöglich ist, das ursprüngliche Passwort aus einem Hash zu erhalten (obwohl es theoretisch möglich ist, eine Kollision zu erhalten Hash-Eingabe, deren Schwierigkeit von der Sicherheitsstärke des Hashing-Algorithmus abhängt. Der mögliche Angriffsvektor hier ist, dass ein potenzieller Angreifer, der Ihre Kennwortspeicherdatenbank irgendwie kompromittiert hat, immer noch nicht in der Lage ist, die ursprünglichen Kennwörter Ihrer Benutzer zu erhalten.

Wenn Ihr Authentifizierungsmechanismus einen Hash des Passworts sendet, muss der Angreifer in diesem Sicherheitsverletzungsszenario das echte Passwort nicht kennen. Er sendet nur den Hash, den er hat, und hey presto, er hat Zugriff auf das Konto eines bestimmten Benutzers. und damit Ihr gesamtes System. Damit ist der Punkt, an dem ein Hash-Passwort gespeichert wird, völlig zunichte gemacht!

Der wirklich sichere Weg, dies zu tun, besteht darin, dem Client einen einmaligen öffentlichen Schlüssel zu senden, damit er das Kennwort verschlüsselt. Anschließend entschlüsseln Sie es und hashen es erneut auf der Serverseite.

Übrigens wird diese Art von Frage wahrscheinlich mehr Expertenantworten auf Security StackExchange erhalten.


3
Stimmen Sie dem voll und ganz zu. Damit ein clientseitiger Ansatz funktioniert, müsste man auch das Salz an den Kunden senden, was den gesamten Zweck des Salzens ungültig machen würde!
James Wright

@JamesWright: Der Punkt ist das Senden eines zufälligen Salt für jede Verwendung, wodurch die illegale Wiederverwendung von Anmeldenachrichten verhindert wird. (Eine Form von Wiederholungsangriffen). Es ist in der Tat sinnlos, jedes Mal das gleiche Salz zu senden.
MSalters

Was Sie tun müssen, ist eine "Nonce" ( en.wikipedia.org/wiki/Cryptographic_nonce ). Auf diese Weise kontrolliert der Server auch das Salz und macht dies sicher. Das Hashing auf der Clientseite ist ebenfalls wichtig, damit injizierter JS-Code ihn später nicht leicht finden kann. Mehr hier: stackoverflow.com/a/21716654/43615
Thomas Tempelmann


Wenn Sie es auf der Clientseite hashen, müssen Sie es natürlich erneut auf der Serverseite hashen, um zu verhindern, dass Sie etwas sagen. Wie andere jedoch betonen, möchten Sie aus Datenschutzgründen bereits eine clientseitige Verschlüsselung.
Daniel Methner

5

Beachten Sie, dass die Sicherheit von Passwörtern gegenüber Dritten nicht alles ist, was dazu gehört.

Sobald Privatsphäre beteiligt ist (und wenn überhaupt ist es nicht, in diesen Tagen?) Sie wollen nicht , um das Passwort kennen. Sie können nicht missbrauchen oder auslaufen, was Sie nicht haben , sodass Sie und Ihre Kunden besser schlafen können, wenn Sie ihre Klartext-Passwörter nie sehen.

Daher ist das Hashing / Verschlüsseln clientseitig sinnvoll.


Einverstanden! Viele Leute vermissen diesen Punkt. Wenn ich Ihre Passwortdatenbank mit gesalzenen Hash-Passwörtern herunterlade und mit einer Hash-Lookup-Datenbank nur eines knacken kann, kann ich sie wahrscheinlich alle knacken. Sobald ich 50.000 Originalkennwörter habe, habe ich jetzt den Schlüssel für xBenutzer von nDiensten, die nur auf dem Server verschlüsseln. Wenn jeder Dienst das Kennwort eindeutig hascht, bevor er den Client verlässt, wird die große Datenbank dienstübergreifender Kennwörter sehr viel kleiner. Überprüfen Sie Ihren AWS-Anmeldeverkehr und sehen Sie, was er tut. Es ist wahrscheinlich, mein lieber Watson.
f1lt3r


1

Ich habe in letzter Zeit viel daran gearbeitet, IRL, es gibt zwei Probleme mit der clientseitigen Hash- / symmetrischen Verschlüsselung, die die Idee wirklich zunichte machen: 1. Sie müssen das Salz irgendwie auf den Server zurückbringen ... und verschlüsseln Auf der Clientseite benötigen Sie ein Passwort, das den Zweck zunichte macht. 2. Sie legen Ihre Hashing-Implementierung offen (kein RIESIGES Geschäft, da die meisten Websites eines von 3 oder 4 Hashing-Algen verwenden), was den Angriff erleichtert (da Sie nur eines anstelle von n versuchen müssen).

Schließlich ging ich zu einer asymmetrischen Verschlüsselung auf dem Client mit OpenPGP.js oder ähnlichem. Dies basiert auf einem importierten oder clientseitig generierten Schlüssel auf dem Client und dem Server, der seinen öffentlichen Schlüssel sendet. Es darf nur der öffentliche Schlüssel des Clients an den Server zurückgesendet werden. Dies schützt vor MIM-Angriffen und ist so sicher wie das Gerät (ich speichere derzeit den privaten Schlüssel des Clients standardmäßig in localStore, es ist eine Demo).

Der Hauptvorteil davon ist, dass ich niemals Benutzerdaten auf meinem Server / Datenspeicher unverschlüsselt im Speicher speichern muss (und der private Schlüssel meines Servers physisch getrennt ist).

Die Grundlage dafür war, den Menschen eine Möglichkeit zu bieten, sicher zu kommunizieren, wo HTTPS eingeschränkt war (z. B. Iran / Nordkorea atc ​​...), und auch nur ein lustiges Experiment.

Ich bin weit davon entfernt, daran zu denken, http://www.mailvelope.com/ verwendet dies


1

Wenn jemand die Daten in Ihrer Verbindung sehen kann, werden Sie durch die Authentifizierung nicht gerettet. Stattdessen würde ich Folgendes für super geheime Sachen tun.

Auf der Clientseite vorgewaschene Kennwörter, bevor sie an den Server gesendet werden. (Der Server speichert einen anderen Hash- und Salted-Wert dieses vom Browser gesendeten Hashs.)

Ein Middle-Man-Angriff könnte es ihnen also ermöglichen, denselben Hash-Wert zum Anmelden wie sie zu senden, aber das Benutzerpasswort wäre nicht bekannt. Dies würde sie davon abhalten, andere Dienste mit denselben Anmeldeinformationen zu versuchen, sich an anderer Stelle anzumelden.

Benutzerdaten werden auch auf der Browserseite verschlüsselt.

Ah, also würde ein Middle-Man-Angriff die verschlüsselten Daten erhalten, aber ohne das tatsächliche Passwort für die Anmeldung nicht entschlüsseln können. (Benutzerkennwort, das beim Anmelden im DOM des Browsers gespeichert wurde). Der echte Benutzer würde also den entschlüsselten Inhalt sehen, der mittlere Mann jedoch nicht. Dies bedeutet auch, dass eine NSA oder eine andere Agentur Sie / Firma / Hosting-Anbieter nicht auffordern kann, diese Daten zu entschlüsseln, da dies auch für sie unmöglich wäre.

Einige kleine Beispiele für diese beiden Methoden finden Sie in meinem Blog http://glynrob.com/javascript/client-side-hashing-and-encryption/


1

Kürzlich gaben sowohl GitHub als auch Twitter bekannt, dass Passwörter in internen Protokollen gespeichert wurden. Ich habe dies versehentlich in Fehlerberichten und anderen Protokollen erlebt, die ihren Weg in Splunk usw. gefunden haben. Für Twitter könnte es eine große Sache für einen Administrator sein, "zu sehen", wenn Trumps Passwort in diesem Protokoll enthalten ist, für andere Websites wahrscheinlich nicht so Eine große Sache, da die Administratoren nicht viel dafür brauchen würden. Unabhängig davon, wie Administratoren wir es nicht mögen, die Passwörter zu sehen, oder?

Die Frage ist also wirklich, ob das Hashing aus Sicherheitsgründen clientseitig erfolgen sollte, aber wie können wir das Kennwort schützen, bevor es letztendlich gehasht und von der Serverseite verglichen wird, damit es nicht irgendwie protokolliert wird.

Verschlüsselung ist keine schlechte Idee, da die Entwickler zumindest durch einige Rahmen springen müssen. Wenn Sie feststellen, dass Kennwörter in Protokollen enthalten sind, können Sie einfach den Verschlüsselungsschlüssel ändern, das Original zerstören und die Daten werden unbrauchbar. Besser noch die Tasten jede Nacht drehen und es könnte die Fenster stark reduzieren.

Sie können auch einen Hash in Ihrem Benutzerdatensatz hashen. Die durchgesickerten Passwörter wären reine Hash-Passwörter. Der Server würde eine Hash-Version des Hash speichern. Sicher, der Hash wird zum Passwort, aber wenn Sie kein fotografisches Gedächtnis haben, werden Sie sich nicht an ein 60-Zeichen-Bcyrpt erinnern. Salz mit dem Benutzernamen. Wenn Sie während des Anmeldevorgangs etwas über den Benutzer erfahren könnten (ohne zu offenbaren, dass der Benutzerdatensatz vorhanden ist), können Sie damit auch einen robusteren Hash erstellen, der nicht zwischen Websites geteilt werden kann. Kein Mann in der Mitte wäre in der Lage, den erfassten Hash einfach zwischen Websites auszuschneiden und einzufügen.

Kombinieren Sie es mit einem Cookie, das nicht an den Server zurückgesendet wird, und Sie befinden sich möglicherweise auf etwas. Senden Sie auf erste Anfrage ein Cookie mit einem Schlüssel an den Client, und stellen Sie dann sicher, dass das Cookie nicht zum Anmeldedienst zurückkehrt, sodass die Wahrscheinlichkeit gering ist, dass es protokolliert wird. Speichern Sie den Schlüssel in einem Sitzungsspeicher und löschen Sie ihn dann direkt nach der Anmeldung oder nach Ablauf der Sitzung. Dies erfordert einen Status für Sie JWT-Leute, aber verwenden Sie möglicherweise nur einen nosql-Dienst dafür.

Ein Administrator stößt also später auf eines dieser gehashten und verschlüsselten Passwörter in Splunk oder einem Tool zur Fehlerberichterstattung. Es sollte für sie nutzlos sein, da sie den Verschlüsselungsschlüssel nicht mehr finden können, und selbst wenn sie dies tun, müssen sie einen Hash brutal erzwingen. Außerdem hat der Endbenutzer keinen Klartext entlang der Linie gesendet, sodass es jedem Mann in der Mitte zumindest schwerer fällt und Sie nicht einfach zu einer anderen Site springen und sich anmelden können.


Genau meine Sorge. Wenn sich der Server aufgrund einer schlechten Implementierung oder böswilligen Absicht versehentlich anmeldet, kann ein anderes Konto des Benutzers gefährdet werden, wenn er Kennwörter wiederverwendet.
Dan

0

Bedenken Sie:-

Der Client sendet eine Anfrage an den Server "Ich habe ein Passwort zur Validierung".

Der Server sendet dem Client eine einmalige zufällige Zeichenfolge. R $

Der Client bettet das Kennwort des Benutzers in diese Zeichenfolge ein (basierend auf allen (variablen) Regeln, die Sie anwenden möchten).

Der Client sendet die Zeichenfolge an den Server. Wenn das Kennwort OK ist, meldet sich der Server beim Benutzer an.

Sollte der Server eine weitere Anmeldeanforderung mit R $ erhalten, wird der Benutzer abgemeldet und das Konto wird bis zur Untersuchung eingefroren.

Offensichtlich würden alle anderen (normalen) Sicherheitsvorkehrungen getroffen.


0

Diese Idee des clientseitigen Hashings dient dem Schutz des Benutzers und nicht Ihrer Website. Wie bereits mehrfach erwähnt, haben sowohl Klartext- als auch Hash-Passwörter gleichermaßen Zugriff auf Ihre Website. Sie erhalten keinen Sicherheitsvorteil.

Das tatsächliche Klartext-Passwort Ihrer Benutzer sollte jedoch nur ihnen bekannt sein. Zu wissen, was sie als Passwort gewählt haben, sind Informationen, die auf anderen Websites und Systemen gegen sie verwendet werden können. Sie sind eine kundenorientierte Site, indem Sie sie davor schützen, dass ihre Serverauswahl von Ihren Serverentwicklern oder von Dritten entdeckt wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.