Как Google Chrome хранит пароли?

Зашифрованы ли они на диске? Как? Безопасны ли они, например, при загрузке с Live CD и установке жесткого диска?

Как генерируется ключ шифрования? Различие в Windows и Linux?

  • Каков самый простой способ шифрования каталога? (На Ubuntu)
  • Как найти и удалить «пряные» мультимедийные файлы с моего ПК
  • Расшифровать файлы EFS
  • Cracking truecrypt файлы за считанные минуты? Или просто перекодировать жесткие диски за считанные минуты?
  • Как вы можете разрешить mutt шифровать письма в папке отправленной почты?
  • «Панический пароль» в Linux
  • Что произойдет, когда я накрою ссылку в Chrome?
  • Flash-файлы (.swf) запрашивают загрузку вместо открытия
  • Как изменить папку установки Chrome на Mac?
  • Выберите только компонент пути url (аналогично команде + L)
  • Панель автоматического закрытия Google Chrome
  • Несколько процессов chrome.exe в диспетчере задач
  • 5 Solutions collect form web for “Как Google Chrome хранит пароли?”

    Вам, похоже, интересно узнать о ключе, который используется для шифрования паролей в Chrome.

    Ответ:

    Каждый пароль зашифровывается с помощью другого случайного ключа.

    И тогда зашифрованный пароль хранится в файле базы данных SQLite:

    %LocalAppData%\Google\Chrome\User Data\Default\Login Data 

    Вы можете использовать что-то вроде SQLite Database Browser или SQLite Maestro для его просмотра. Вот фрагмент из моего файла Login Data :

     origin_url username_value password_value ======================================== ============== ======================== http://thepiratebay.org/register JolineBlomqvist@example.com 01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA 

    Вы заметите, что пароль является зашифрованным блоком данных. Примерный алгоритм шифрования нового пароля:

    • Сгенерировать новый случайный ключ сеанса
    • Шифровать пароль с помощью ключа сеанса
    • Шифровать ключ сеанса с помощью открытого ключа пользователя RSA
    • Генерировать код аутентификации сообщения (HMAC) для зашифрованных данных
    • Объединить зашифрованный ключ сеанса, зашифрованный пароль и MAC

    И Chrome сохраняет этот blob в своей базе данных SQLite.

    Но чтобы ответить на ваш вопрос: откуда берется ключ шифрования?

    Каждый пароль зашифровывается с помощью другого случайно сгенерированного ключа

    Техническая информация

    Конечно, я не учитывал технических деталей. Chrome не шифрует ваши пароли. У Chrome нет главного ключа, который используется для шифрования. Chrome не выполняет шифрование. Windows делает.

    Существует функция Windows CryptProtectData , которая используется для шифрования любых произвольных данных, которые вам нравятся. Детали вызова его менее важны. Но если я придумаю псевдоязык, который может быть несколько дешифрован, как и любое программирование, Chrome вызывает:

     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 

    Итак, пароль:

    • Обычный текст : correct battery horse staple
    • Зашифрованные: 01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA

    Вы заметите, что мне никогда не нужно было вводить пароль. Это потому, что Windows все это заботится. В конце:

    • Для шифрования пароля создается случайный пароль
    • Этот пароль зашифрован случайным паролем
    • Этот пароль зашифрован паролем Windows

    Таким образом, единственный способ узнать вашего пароля – узнать, знает ли он ваш пароль.

    Пароли шифруются и хранятся в базе данных SQLite:

    Здесь важна CryptProtectData , которая является функцией Windows API для шифрования данных. Данные, зашифрованные с помощью этой функции, довольно прочные. Его можно расшифровать только на том же компьютере и тем же пользователем, который зашифровал его в первую очередь.

    Они «зашифрованы», но это обратимое шифрование. Chrome должен отправить необработанный пароль на сайт, на котором он был сохранен, поэтому, если Chrome может расшифровать и использовать его, так могут другие люди. Хранение паролей никогда не будет на 100% безопасным.

    Google Chrome шифрует пароли и хранит их в SQLite DB, но их можно легко просмотреть с помощью специальных приложений для восстановления пароля, таких как ChromePass ( http://www.nirsoft.net/utils/chromepass.html ) или SecurePassword Kit ( http: // http://Www.getsecurepassword.com/ )

    На Mac эквивалент функции CryptProtectData в Windows заключается в доступе к паролю для «Хранилища Chrome Safe» в Keychain OS X.

    Давайте будем гением компьютера.