¿Están encriptados en el disco? ¿Cómo? ¿Son seguros, por ejemplo, en caso de que alguien arranque desde un Live CD y monte el disco duro?
¿Cómo se genera la clave de cifrado? ¿Es diferente en Windows y Linux?
¿Están encriptados en el disco? ¿Cómo? ¿Son seguros, por ejemplo, en caso de que alguien arranque desde un Live CD y monte el disco duro?
¿Cómo se genera la clave de cifrado? ¿Es diferente en Windows y Linux?
Respuestas:
Parece que tiene curiosidad específicamente sobre la clave utilizada para cifrar las contraseñas en Chrome.
La respuesta es:
Y luego la contraseña cifrada se almacena en el archivo de base de datos SQLite:
Puede usar algo como SQLite Database Browser o SQLite Maestro para verlo. Aquí hay un fragmento de mi
Login Data
archivo:Notarás que la contraseña es un blob de datos cifrado. El algoritmo aproximado para cifrar una nueva contraseña es:
Y Chrome guarda ese blob en su base de datos SQLite.
Pero para responder a su pregunta: ¿De dónde viene la clave de cifrado?
Los detalles técnicos
Por supuesto, omití los detalles técnicos. Chrome no cifra sus contraseñas en sí. Chrome no tiene una clave maestra utilizada para cifrar nada. Chrome no hace el cifrado. Windows lo hace.
Hay una función de Windows
CryptProtectData
, que se utiliza para cifrar cualquier información arbitraria que desee. Los detalles de llamarlo son menos importantes. Pero si invento un pseudo-lenguaje que de alguna manera puede ser descifrable como cualquier lenguaje de programación, Chrome llama:Entonces la contraseña:
correct battery horse staple
01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
Notarás que nunca necesité proporcionar una contraseña. Eso es porque Windows se encarga de todo eso. En el final:
Entonces, la única manera para que alguien sepa su contraseña es si la conocen.
fuente
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
Las contraseñas están encriptadas y almacenadas en una base de datos SQLite:
fuente
CryptProtectData
utiliza sus credenciales de Windows (no la contraseña, sino algunos otros datos) como clave. AFAIK, es la misma función utilizada para proteger sus certificados, credenciales de red y todo eso.Encryptor::EncryptString
no hace nada . Parece que hay código para usar GNOME Keyring y KDE Wallet.Están "encriptados" pero es una encriptación reversible. Chrome tiene que enviar la contraseña sin procesar al sitio donde se almacenó, por lo que si Chrome puede descifrarlo y usarlo, también pueden hacerlo otras personas. Almacenar contraseñas nunca es 100% seguro.
fuente
CryptProtectData
es una API de Windows, Windows realmente hace todo el cifrado y la recuperación, la clave de cifrado depende de su cuenta de usuario y sistema.Google Chrome cifra las contraseñas y las almacena en SQLite DB, pero se pueden ver fácilmente con las aplicaciones especiales de recuperación de contraseña como ChromePass ( http://www.nirsoft.net/utils/chromepass.html ) o SecurePassword Kit ( http: // www.getsecurepassword.com/ )
fuente
En Mac, el equivalente a la función CryptProtectData en Windows es acceder a la contraseña para "Chrome Safe Storage" en el llavero de OS X.
fuente