Czy są szyfrowane na dysku? W jaki sposób? Czy są bezpieczne, na przykład, gdy ktoś uruchomi się z Live CD i zamontuje dysk twardy?
Jak generowany jest klucz szyfrujący? Czy jest inaczej w systemach Windows i Linux?
Czy są szyfrowane na dysku? W jaki sposób? Czy są bezpieczne, na przykład, gdy ktoś uruchomi się z Live CD i zamontuje dysk twardy?
Jak generowany jest klucz szyfrujący? Czy jest inaczej w systemach Windows i Linux?
Odpowiedzi:
Wygląda na to, że jesteś ciekawy klucza używanego do szyfrowania haseł w Chrome.
Odpowiedź to:
Każde hasło jest szyfrowane innym losowym kluczem.
A następnie zaszyfrowane hasło jest przechowywane w pliku bazy danych SQLite:
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
Możesz użyć czegoś takiego jak SQLite Database Browser lub SQLite Maestro, aby go wyświetlić. Oto fragment mojego Login Data
pliku:
origin_url username_value password_value
======================================== ============== ========================
http://thepiratebay.org/register JolineBlomqvist@example.com 01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
Zauważysz, że hasło jest zaszyfrowaną kroplą danych. Przybliżony algorytm szyfrowania nowego hasła to:
Chrome zapisuje ten obiekt blob w swojej bazie danych SQLite.
Ale żeby odpowiedzieć na twoje pytanie: Skąd pochodzi klucz szyfrujący?
Każde hasło jest szyfrowane innym losowo generowanym kluczem
Oczywiście pominąłem szczegóły techniczne. Chrome nie szyfruje samych haseł. Chrome nie ma klucza głównego używanego do szyfrowania czegokolwiek. Chrome nie szyfruje. Windows tak.
Istnieje funkcja systemu Windows CryptProtectData
, która służy do szyfrowania dowolnych dowolnych danych. Szczegóły nazywania go są mniej ważne. Ale jeśli wymyślę pseudojęzyk, który w pewnym sensie może być rozszyfrowany jako język programowania, Chrome wywołuje:
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
Więc hasło:
correct battery horse staple
01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
Zauważysz, że nigdy nie musiałem podawać hasła. Dzieje się tak, ponieważ Windows zajmuje się tym wszystkim. Na końcu:
Więc jedynym sposobem, aby ktoś zna twoje hasło, jest to, że zna twoje hasło.
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
Hasła są szyfrowane i przechowywane w bazie danych SQLite:
Ważnym elementem jest tutaj
CryptProtectData
funkcja Windows API służąca do szyfrowania danych. Dane zaszyfrowane za pomocą tej funkcji są dość solidne. Może być odszyfrowany tylko na tym samym komputerze i przez tego samego użytkownika, który go zaszyfrował.
CryptProtectData
Windows kluczem są dane uwierzytelniające systemu Windows (nie hasło, ale niektóre inne dane). AFAIK, to ta sama funkcja, która służy do ochrony twoich certyfikatów, poświadczeń sieciowych i wszystkich innych rzeczy.
Encryptor::EncryptString
nic nie robi . Wydaje się, że jest kod do używania kluczy GNOME i portfela KDE.
Są „szyfrowane”, ale jest to szyfrowanie odwracalne. Chrome musi wysłać nieprzetworzone hasło do witryny, dla której zostało zapisane, więc jeśli Chrome może je odszyfrować i użyć, to inni też mogą to zrobić. Przechowywanie haseł nigdy nie jest w 100% bezpieczne.
CryptProtectData
to interfejs API systemu Windows, system Windows faktycznie dokonuje całego szyfrowania i pobierania, klucz szyfrowania zależy od konta użytkownika i systemu.
Google Chrome szyfruje hasła i przechowuje je w SQLite DB, ale można je łatwo przeglądać za pomocą specjalnych aplikacji do odzyskiwania haseł, takich jak ChromePass ( http://www.nirsoft.net/utils/chromepass.html ) lub SecurePassword Kit ( http: // www.getsecurepassword.com/ )
Na komputerze Mac odpowiednikiem funkcji CryptProtectData w systemie Windows jest uzyskanie dostępu do hasła „Chrome Safe Storage” w pęku kluczy systemu OS X.