Eles são criptografados em disco? Quão? Eles são seguros, por exemplo, no caso de alguém inicializar a partir de um Live CD e montar o disco rígido?
Como é gerada a chave de criptografia? É diferente no Windows e Linux?
Eles são criptografados em disco? Quão? Eles são seguros, por exemplo, no caso de alguém inicializar a partir de um Live CD e montar o disco rígido?
Como é gerada a chave de criptografia? É diferente no Windows e Linux?
Respostas:
Você parece curioso especificamente sobre a chave usada para criptografar as senhas no Chrome.
A resposta é:
E a senha criptografada é armazenada no arquivo de banco de dados SQLite:
Você pode usar algo como o SQLite Database Browser ou o SQLite Maestro para visualizá-lo. Aqui está um trecho do meu
Login Data
arquivo:Você notará que a senha é um blob de dados criptografado. O algoritmo aproximado para criptografar uma nova senha é:
E o Chrome salva esse blob no banco de dados SQLite.
Mas, para responder à sua pergunta: De onde vem a chave de criptografia?
Os detalhes técnicos
Claro que deixei de fora os detalhes técnicos. O Chrome não criptografa suas senhas. O Chrome não possui uma chave mestra usada para criptografar nada. O Chrome não faz a criptografia. Windows faz.
Existe uma função do Windows,
CryptProtectData
usada para criptografar quaisquer dados arbitrários que você desejar. Os detalhes de chamá-lo são menos importantes. Mas se eu inventar uma pseudo-linguagem que possa ser decifrável à medida que qualquer programação fica lenta, o Chrome chama:Então a senha:
correct battery horse staple
01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
Você notará que eu nunca precisei fornecer uma senha. Isso ocorre porque o Windows cuida de tudo isso. No final:
Portanto, a única maneira de alguém saber sua senha é se ela souber.
fonte
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
As senhas são criptografadas e armazenadas em um banco de dados SQLite:
fonte
CryptProtectData
usa suas credenciais do Windows (não a senha, mas alguns outros dados) como chave. AFAIK, é a mesma função usada para proteger seus certificados, credenciais de rede e tudo mais.Encryptor::EncryptString
não faz nada . Parece haver um código para usar o GNOME Keyring e o KDE Wallet.Eles são "criptografados", mas é uma criptografia reversível. O Chrome precisa enviar a senha bruta para o site para o qual foi armazenada; portanto, se o Chrome pode descriptografar e usá-lo, o mesmo acontece com outras pessoas. O armazenamento de senhas nunca é 100% seguro.
fonte
CryptProtectData
é uma API do Windows, o Windows realmente faz toda a criptografia e recuperação, a chave de criptografia depende da sua conta e sistema de usuário.O Google Chrome criptografa senhas e as armazena no SQLite DB, mas elas podem ser facilmente visualizadas com aplicativos especiais de recuperação de senhas, como ChromePass ( http://www.nirsoft.net/utils/chromepass.html ) ou SecurePassword Kit ( http: // www.getsecurepassword.com/ )
fonte
No Mac, o equivalente à função CryptProtectData no Windows é acessar a senha do "Armazenamento Seguro do Chrome" no Keychain do OS X.
fonte