2010-06-11 28 views
17

¿Dónde guarda la tienda Internet Explorer contraseñas?¿Dónde almacena Internet Explorer las contraseñas guardadas?

Y dado que este es un sitio de programación, literalmente no estoy preguntando por la ubicación donde IE almacena las contraseñas, pero qué API es decir, para guardar las contraseñas.

Al principio supuse que Microsoft estaba usando el API estándar:

que se utiliza para guardar dominio y credenciales de programa/sitio web genéricos.

CredRead/CredWrite luego dar la vuelta alrededor y uso:

para cifrar los datos con la cuenta del usuario actual. CredRead/CredWrite continuación, almacenar los datos en algún lugar mágico, los contenidos de las cuales se puede ver en el panel de control:

enter image description here

Pero no veo las contraseñas de IE en ese país. Por lo tanto, es decir, no almacena contraseñas usando CredRead/CredWrite.

¿Qué API usa IE para almacenar contraseñas, y si usa CryptProtectData, dónde almacena los datos protegidos?


Editar: La razón que pido necesidades ninguna explicación (ya que es bastante obvio), pero es porque puede ser que desee utilizar el mismo mecanismo.

Respuesta

17

encontré la respuesta. IE almacena las contraseñas en dos lugares diferentes en función del tipo de contraseña:

  • Http-Auth:%APPDATA%\Microsoft\Credentials, en los archivos cifrados basado en la forma
  • :HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2, cifrada con la url

De un very good page on NirSoft.com:

A partir de v ersion 7.0 de Internet Explorer, Microsoft cambió completamente la forma en que se guardan las contraseñas. En versiones anteriores (4.0 - 6.0), todas las contraseñas se guardaron en una ubicación especial en el Registro conocido como "Almacenamiento protegido". En la versión 7.0 de Internet Explorer, las contraseñas son guardadas en diferentes ubicaciones, dependiendo del tipo de contraseña. Cada tipo de contraseñas tiene algunas limitaciones en la recuperación de la contraseña:

  • Autocompletar contraseñas: Estos contraseñas se guardan en la ubicación siguiente en el Registro: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2 Los contraseñas se cifran con la URL de los sitios web que solicitaron las contraseñas y, por lo tanto, solo pueden recuperarse si las URL se almacenan en el archivo del historial. Si borra el archivo de historial , IE PassView no será capaz de recuperar las contraseñas hasta que visite nuevamente los sitios web que solicitaron las contraseñas. Como alternativa, puede agregar una lista de URLs de sitios web que requieren nombre/contraseña en el archivo de sitios web (ver a continuación).

  • autenticación HTTP Contraseñas: Estas contraseñas se almacenan en Credenciales archivo bajo Documents and Settings\Application Data\Microsoft\Credentials, junto con las contraseñas de acceso de equipos de la LAN y otras contraseñas. Debido a las limitaciones de seguridad , IE PassView puede recuperar estas contraseñas solo si tiene derechos de administrador.

En mi caso particular, se responde a la pregunta de dónde; y decidí que no quiero duplicar eso. Continuaré usando CredRead/CredWrite, donde el usuario puede administrar sus contraseñas desde un sistema de IU establecido en Windows.

+0

¿Puedes recuperarlos si están en un viejo disco duro en el estante? No eres tú, sino tú en el sentido general. :) – HPWD

+0

@dlackey Conceptualmente es posible, siempre que sepa su contraseña anterior de Windows. –

0

Sin garantía, pero sospecho que IE utiliza la API Protected Storage anterior.

+1

Tienes razón en parte. Internet Explorer 4-6 usa la API de almacenamiento protegido. Internet Explorer 7-8 almacena contraseñas en el registro y un archivo, según el tipo de contraseña. –

+1

PSAPI quedó en desuso hace mucho tiempo. IE6 lo usó último. –

1

Respuesta corta: en la Bóveda. Desde Windows 7, se creó una bóveda para almacenar los datos confidenciales entre ellos las credenciales de Internet Explorer. The Vault es, de hecho, un servicio LocalSystem - vaultsvc.dll.

Respuesta larga: Internet Explorer permite dos métodos de almacenamiento de credenciales: Sitios web credenciales (por ejemplo: tu usuario y contraseña) y datos de autocompletar. Desde la versión 10, en lugar de utilizar el Registro, se introdujo un nuevo término: Windows Vault. Windows Vault es la bóveda de almacenamiento predeterminada para la información del administrador de credenciales.

Debe verificar qué sistema operativo se está ejecutando. Si es Windows 8 o superior, llame al VaultGetItemW8. Si no es así, llame al VaultGetItemW7.

Para usar la "Bóveda", carga una DLL llamada "vaultcli.dll" y accede a sus funciones según sea necesario.

Un típico código C++ será:

hVaultLib = LoadLibrary(L"vaultcli.dll"); 

if (hVaultLib != NULL) 
{ 
    pVaultEnumerateItems = (VaultEnumerateItems)GetProcAddress(hVaultLib, "VaultEnumerateItems"); 
    pVaultEnumerateVaults = (VaultEnumerateVaults)GetProcAddress(hVaultLib, "VaultEnumerateVaults"); 
    pVaultFree = (VaultFree)GetProcAddress(hVaultLib, "VaultFree"); 
    pVaultGetItemW7 = (VaultGetItemW7)GetProcAddress(hVaultLib, "VaultGetItem"); 
    pVaultGetItemW8 = (VaultGetItemW8)GetProcAddress(hVaultLib, "VaultGetItem"); 
    pVaultOpenVault = (VaultOpenVault)GetProcAddress(hVaultLib, "VaultOpenVault"); 
    pVaultCloseVault = (VaultCloseVault)GetProcAddress(hVaultLib, "VaultCloseVault"); 

    bStatus = (pVaultEnumerateVaults != NULL) 
     && (pVaultFree != NULL) 
     && (pVaultGetItemW7 != NULL) 
     && (pVaultGetItemW8 != NULL) 
     && (pVaultOpenVault != NULL) 
     && (pVaultCloseVault != NULL) 
     && (pVaultEnumerateItems != NULL); 
} 

A continuación, enumerar todas las credenciales almacenadas llamando

VaultEnumerateVaults 

Entonces usted se pasa de los resultados.