Où Internet Explorer stocke-t-il les mots de passe enregistrés?

où Internet Explorer stocke-t-il les mots de passe enregistrés?

et comme il s'agit d'un site de programmation, Je ne demande pas littéralement l'emplacement où IE stocke les mots de passe, mais quelle API ie utilise pour sauvegarder les mots de passe.

au début, J'ai supposé que Microsoft utilisait l'api standard:

qui est utilisé pour enregistrer de domaine et justificatifs d'identité génériques de programme ou de site web.

CredRead/CredWrite puis tournez-vous et utilisez:

pour chiffrer les données avec l'utilisateur actuel du compte. CredRead/CredWrite puis stocker les données dans un endroit magique, dont vous pouvez voir le contenu de la commande Panneau:

enter image description here

mais je ne vois pas les mots de passe IE là-dedans. Donc ie ne stocke pas les mots de passe en utilisant CredRead/CredWrite.

que l'api utilise-t-elle pour stocker les mots de passe, et si elle utilise CryptProtectData, où stocke-t-il alors les données protégées?


Edit: la raison pour laquelle je demande n'a pas besoin d'explication (puisque c'est assez évident), mais c'est parce que je voudrais peut-être utiliser la même mécanisme.

18
demandé sur Ian Boyd 2010-06-11 18:23:29

3 réponses

j'ai trouvé la réponse. IE stocke les mots de passe à deux endroits différents selon le type de mot de passe:

  • Http-Auth:%APPDATA%\Microsoft\Credentials, dans des fichiers cryptés
  • Forme:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2, crypté avec l'url

Dans un très bonne page sur NirSoft.com:

à partir de la version 7.0 D'Internet Explorer, Microsoft complètement changé la façon dont les mots de passe sont enregistrés. Dans versions précédentes (4.0-6.0), toutes les mots de passe ont été enregistrés dans un emplacement dans le Registre connu comme le "Stockage Protégé". Dans la version 7.0 D'Internet Explorer, les mots de passe sont sauvegardé dans différents endroits, selon le type de mot de passe. Chaque type de mot de passe a un limitations dans la récupération de mot de passe:

  • Mots De Passe AutoComplete: Ces les mots de passe sont enregistrés dans le suivant emplacement dans le Registre: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2 La les mots de passe sont cryptés avec L'URL des sites Web qui ont demandé mots de passe, et donc ils ne peuvent être récupéré si les URL sont stockées dans le fichier d'historique. Si vous désactivez la fichier historique, C'est à dire PassView ne sera pas capable de récupérer les mots de passe jusqu'à vous visitez à nouveau les sites Web qui demandé pour les mots de passe. Alternativement, vous pouvez ajouter une liste de Adresses URL des sites Web qui nécessitent un utilisateur nom/Mot de passe dans le fichier des sites Web (voir ci-dessous).

  • authentification HTTP Mots de passe: Ces mots de passe sont stockés dans le fichier de vérification des pouvoirs sous Documents and Settings\Application Data\Microsoft\Credentials, avec les mots de passe de connexion des ordinateurs LAN et d'autres mots de passe. Pour des raisons de sécurité limites, C'est-à-dire que PassView peut récupérer ces mots de passe seulement si vous avez des droits d'administrateur.

dans mon cas particulier, il répond à la question de savoir où; et j'ai décidé que je ne veux pas dupliquer cela. je vais continuer à l'utiliser CredRead/CredWrite, où L'utilisateur peut gérer ses mots de passe à partir d'un système D'UI établi dans Windows.

17
répondu Ian Boyd 2010-12-28 15:07:05

brève réponse: dans le coffre-fort. Depuis Windows 7, Une chambre forte a été créée pour stocker toutes les données sensibles parmi elle les justificatifs d'identité D'Internet Explorer. La chambre forte est en fait un service LocalSystem-vaultsvc.DLL.

réponse: Internet Explorer permet deux méthodes de stockage des justificatifs d'identité: les justificatifs d'identité des sites web (par exemple: votre utilisateur Facebook et votre mot de passe) et les données autocomplètes. Depuis la version 10, au lieu d'utiliser le registre un nouveau terme a été introduit: Windows Vault. Windows Vault est la chambre forte de stockage par défaut pour les informations de gestionnaire de justificatifs.

vous devez vérifier quel système d'exploitation fonctionne. Si Windows 8 ou plus, vous appelez VaultGetItemW8. Si sa ne l'est pas, vous appelez VaultGetItemW7.

pour utiliser la "voûte", vous chargez une DLL nommée " vaultcli.dll" et accéder à ses fonctions selon les besoins.

un code C++ typique sera:

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);
}

alors vous énumérez tous les informations d'identification stockées en appelant

VaultEnumerateVaults

puis vous passez en revue les résultats.

2
répondu Michael Haephrati 2017-01-29 21:34:18

Pas de garantie, mais je soupçonne que IE utilise l'ancienne Stockage Protégé API.

0
répondu Jerry Coffin 2010-06-11 15:51:51