He publicado un script Python de ejemplo aquí para decodificar las cookies cifradas en OSX o Linux.
Los comentarios son un poco confusos, así que solo para aclarar, esta es la fuente de cromo en os_crypt_win.cc para que pueda ver que solo está poniendo la cadena en un blob y ejecutando CryptUnprotectData()
bool OSCrypt::DecryptString(const std::string& ciphertext,
std::string* plaintext) {
DATA_BLOB input;
input.pbData = const_cast<BYTE*>(
reinterpret_cast<const BYTE*>(ciphertext.data()));
input.cbData = static_cast<DWORD>(ciphertext.length());
DATA_BLOB output;
BOOL result = CryptUnprotectData(&input, NULL, NULL, NULL, NULL,
0, &output);
if (!result)
return false;
plaintext->assign(reinterpret_cast<char*>(output.pbData), output.cbData);
LocalFree(output.pbData);
return true;
}
He estado trabajando en eso también. Hasta ahora, descubrí que Chrome (Windows) usa la función CryptProtectData para cifrar los valores de sus cookies. La misma función que ha estado usando para cifrar las contraseñas guardadas en el archivo de datos de inicio de sesión. CryptProtectData utiliza la información de la cuenta de usuario y la contraseña del usuario de Windows que inició sesión para cifrar los datos. Para descifrarlo tenemos que usar la función CryptUnProtectData con la misma cuenta de usuario iniciada.
Aquí hay un fragmento para descifrar los datos de inicio de sesiónhttps://gist.github.com/jordan-wright/5770442
Ahora, con respecto a Linux, he leído aquí:http://www.linkedin.com/groups/Google-Chrome-encrypt-Stored-Cookies-36874.S.5826955428000456708
en otros sistemas parece ofuscar las contraseñas con la sal "saltysalt" y la contraseña "peanuts"