Die Passwörter werden im Klartext gespeichert, sofern kein Hauptkennwort verwendet wird.
Wenn Leute sagen, dass Sie nur Hashes von Passwörtern speichern müssen, sprechen sie von serverseitigem Speicher, nicht von clientseitigem.
Serverseitig
Wenn Sie eine eigene Website haben, auf der sich die Benutzer mit ihren Passwörtern registrieren / anmelden können, müssen (und dürfen) sie die Passwörter nicht selbst speichern:
Sie müssen keine einfachen Kennwörter speichern , da Sie nur überprüfen müssen, ob das bei einer Anmeldung verwendete Kennwort mit dem Kennwort übereinstimmt, das der Benutzer bei der Registrierung angegeben hat. Sie können dies mit Hashes tun, da unterschiedliche Passwörter unterschiedliche Hashes haben würden¹.
Sie dürfen keine einfachen Passwörter speichern . Was ist, wenn Ihre Website gehackt wird? Darüber hinaus verwenden viele Menschen immer wieder dieselben Passwörter, sodass Sie praktisch jedem Hacker die Möglichkeit geben, auf das Facebook-Konto, das E-Mail-Konto usw. Ihres Benutzers zuzugreifen.
Client-Seite
Browser sind anders. Sie speichern die Kennwörter auf dem Client-Computer und müssen ein Originalkennwort und keinen Hash haben.
Dies bedeutet, dass diese Passwörter in den meisten Fällen im Klartext gespeichert werden.
In Bezug auf die Sicherheit spielt es keine Rolle. Diese Passwörter werden in einem Verzeichnis gespeichert, das zum Benutzerkonto gehört. Dies bedeutet, dass es Sache des Betriebssystems (und des Benutzers) ist, die Berechtigungen für die Benutzerdateien ordnungsgemäß zu konfigurieren und den Zugriff auf die Datei, die die Kennwörter enthält, auf den Benutzer selbst zu beschränken.
In Bezug auf die Benutzererfahrung ist dies am einfachsten. Eine andere Möglichkeit besteht darin, diese Kennwörter mit einem Hauptkennwort zu verschlüsseln. In diesem Fall müsste der Benutzer das Hauptkennwort jedes Mal angeben, wenn er den Browser öffnet . Ich bin mir ziemlich sicher, dass die meisten Benutzer das niemals genießen würden.
Wenn das Master-Passwort irgendwo gespeichert ist, tritt das gleiche Problem auf: Wenn Sie das Master-Passwort im Klartext speichern, worum geht es dann? Wenn Sie es verschlüsseln, müssen Sie ein Master-Master-Passwort haben.
Synchronisieren
Beachten Sie, dass die meisten Browser es den Benutzern ermöglichen, ihre Daten auf mehreren Computern zu synchronisieren. Die Synchronisierung verwendet einen Remote-Server zum Speichern der Cookies, des Verlaufs, der Lesezeichen und der Kennwörter. Chrome verwendet beispielsweise Google-Server, um diese Daten zu speichern.
In diesem Fall werden die Kennwörter auf Synchronisierungsservern niemals im Klartext gespeichert , da dies sonst ein Sicherheitsproblem darstellt. In Chrome müssen Sie das Hauptkennwort für die Synchronisierung auswählen (oder das Kennwort aus Ihrem Google-Konto verwenden). Dieses Hauptkennwort wird verwendet, um die Kennwörter (immer) und andere Daten wie den Verlauf oder die Lesezeichen (optional) zu verschlüsseln.
¹ Der Einfachheit halber können Sie sich vorstellen, dass die verschiedenen Passwörter nicht dieselben Hashes haben können. Theoretisch ist dies falsch, da Kollisionen existieren können. In der Praxis können Sie bei Verwendung eines starken Hash-Algorithmus wie SHA-256 das Kollisionsrisiko für eine Website selbst bei Millionen registrierter Benutzer vernachlässigen. Anders sieht es aus, wenn Sie einen veralteten und veralteten Hash-Algorithmus wie MD5 verwenden.