Wie speichern aktuelle Webbrowser (oder Mobile Mail-Clients und Software im Allgemeinen) Benutzerkennwörter? Alle Antworten zum Speichern von Passwörtern besagen, dass wir nur Hashes speichern sollten, nicht das Passwort selbst. Es fällt mir jedoch schwer, im Internet nach den besten Techniken zum Speichern von Passwörtern zu suchen, wenn wir wissen, dass wir sie später im Klartext benötigen werden - ohne sie im Klartext zu speichern, ohne eine schwache Verschlüsselung (bekannter Schlüssel) und zu verwenden ohne den Benutzer nach einem Master-Passwort zu fragen. Irgendwelche Ideen?
encryption
passwords
hashing
Marcus
quelle
quelle
Antworten:
lokal wird es entweder als Klartext gespeichert oder verschlüsselt.
Bei der Verschlüsselung kann der Entschlüsselungs- / Entschlüsselungsschlüssel pro Browser (in der ausführbaren Datei fest codiert), pro Computer (bei der Installation generiert und im Installationsverzeichnis gespeichert) oder pro Benutzer (bei der ersten Verwendung des Kennwortmanagers generiert und im
%appdata%
) gespeichert werden.oder sie können kombiniert werden: Der Schlüssel auf Benutzerebene wird mit dem Schlüssel auf Maschinenebene verschlüsselt, sodass Malware, wenn die Datei, in der die Kennwörter gespeichert sind, gespeichert wird, ohne die Schlüssel auf Benutzerebene und auf Maschinenebene unbrauchbar wird
In einigen Browsern können Sie auch ein "Master" -Kennwort verwenden, das mit dem vorhandenen Schlüssel kombiniert wird, um mehr Sicherheit zu bieten
Wenn Sie einen (guten) Synchronisationsdienst verwenden, werden die Kennwörter niemals im Klartext auf dem Server gespeichert und niemals serverseitig entschlüsselt.
quelle
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.
quelle
Diese Programme benötigen das Passwort im Klartext (sie müssen es auf Anfrage senden). Es wird daher als Klartext gespeichert. Viele Browser erlauben es, alle gespeicherten Passwörter mit einem Hauptkennwort zu verschlüsseln (nur einmal gefragt).
quelle