Sind sie auf der Festplatte verschlüsselt? Wie? Sind sie beispielsweise sicher, wenn jemand von einer Live-CD bootet und die Festplatte einbindet?
Wie wird der Verschlüsselungsschlüssel generiert? Unterscheidet es sich in Windows und Linux?
Sind sie auf der Festplatte verschlüsselt? Wie? Sind sie beispielsweise sicher, wenn jemand von einer Live-CD bootet und die Festplatte einbindet?
Wie wird der Verschlüsselungsschlüssel generiert? Unterscheidet es sich in Windows und Linux?
Antworten:
Sie scheinen besonders neugierig auf den Schlüssel zu sein, mit dem die Passwörter in Chrome verschlüsselt werden.
Die Antwort ist:
Jedes Passwort wird mit einem anderen zufälligen Schlüssel verschlüsselt.
Anschließend wird das verschlüsselte Kennwort in der SQLite-Datenbankdatei gespeichert:
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
Sie können etwas wie SQLite Database Browser oder SQLite Maestro verwenden , um es anzuzeigen. Hier ist ein Ausschnitt aus meiner Login Data
Datei:
origin_url username_value password_value
======================================== ============== ========================
http://thepiratebay.org/register JolineBlomqvist@example.com 01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
Sie werden feststellen, dass das Kennwort ein verschlüsselter Datenblock ist. Der ungefähre Algorithmus zum Verschlüsseln eines neuen Passworts lautet:
Und Chrome speichert diesen Blob in seiner SQLite-Datenbank.
Aber um Ihre Frage zu beantworten: Woher kommt der Verschlüsselungsschlüssel?
Jedes Passwort wird mit einem anderen zufällig generierten Schlüssel verschlüsselt
Natürlich habe ich die technischen Details ausgelassen. Chrome verschlüsselt Ihre Passwörter nicht selbst. Chrome verfügt nicht über einen Hauptschlüssel, mit dem etwas verschlüsselt werden kann. Chrome führt die Verschlüsselung nicht durch. Windows macht.
Es gibt eine Windows-Funktion, CryptProtectData
mit der Sie beliebige Daten verschlüsseln können. Die Details des Aufrufs sind weniger wichtig. Aber wenn ich eine Pseudo-Sprache erfinde, die wie jede Programmiersprache leicht zu entziffern ist, ruft Chrome auf:
CryptProtectData(
{ cbData: 28, pbData: "correct battery horse staple" },
"The password for superuser.com and all the glee therein",
null, //optional entropy
null, //reserved
null, //prompt options
0, //flags
{ cbData: pbData: }); //where the encrypted data will go
Also das Passwort:
correct battery horse staple
01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
Sie werden feststellen, dass ich nie ein Passwort eingeben musste. Das liegt daran, dass Windows sich darum kümmert. Schlussendlich:
Der einzige Weg für jemanden, Ihr Passwort zu kennen, ist, wenn er Ihr Passwort kennt.
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
Die Passwörter werden verschlüsselt und in einer SQLite-Datenbank gespeichert:
Das Wichtige hierbei ist
CryptProtectData
, dass es sich um eine Windows-API-Funktion zum Verschlüsseln von Daten handelt. Mit dieser Funktion verschlüsselte Daten sind ziemlich solide. Es kann nur auf demselben Computer und von demselben Benutzer entschlüsselt werden, der es ursprünglich verschlüsselt hat.
CryptProtectData
Verwendet unter Windows Ihre Windows-Anmeldeinformationen (nicht das Kennwort, sondern einige andere Daten) als Schlüssel. AFAIK, es ist die gleiche Funktion, die zum Schutz Ihrer Zertifikate, Netzwerkanmeldeinformationen und all dieser Dinge verwendet wird.
Encryptor::EncryptString
macht das nichts . Es scheint Code für die Verwendung von GNOME Keyring und KDE Wallet zu geben.
Sie sind "verschlüsselt", aber es ist eine umkehrbare Verschlüsselung. Chrome muss das Raw-Passwort an die Site senden, für die es gespeichert wurde. Wenn Chrome es also entschlüsseln und verwenden kann, können es auch andere Personen. Das Speichern von Passwörtern ist niemals 100% sicher.
CryptProtectData
ist eine Windows-API, Windows übernimmt die Verschlüsselung und das Abrufen aller Daten. Der Verschlüsselungsschlüssel hängt von Ihrem Benutzerkonto und Ihrem System ab.
Google Chrome verschlüsselt Kennwörter und speichert sie in SQLite DB. Mit speziellen Anwendungen zur Kennwortwiederherstellung wie ChromePass ( http://www.nirsoft.net/utils/chromepass.html ) oder SecurePassword Kit ( http: // www.getsecurepassword.com/ )
Auf dem Mac besteht das Äquivalent zur CryptProtectData-Funktion in Windows darin, auf das Kennwort für "Chrome Safe Storage" im Schlüsselbund von OS X zuzugreifen.