it-swarm.com.de

Wo speichert Internet Explorer gespeicherte Kennwörter?

Wo speichert Internet Explorer gespeicherte Kennwörter?

Und da dies eine Programmierseite ist, frage ich nicht wörtlich nach dem Ort, an dem IE speichert Passwörter, , sondern welche API zum Speichern von Passwörtern verwendet wird .

Zuerst nahm ich an, dass Microsoft die Standard-API verwendet:

hiermit werden Domain und allgemeine Programm-/Website-Anmeldeinformationen gespeichert.

CredRead/CredWrite dann drehe dich um und benutze:

um Daten mit dem Konto des aktuellen Benutzers zu verschlüsseln. CredRead/CredWrite speichert die Daten dann an einem magischen Ort, dessen Inhalt Sie in der Systemsteuerung sehen können:

enter image description here

Aber ich sehe dort keine IE Passwörter. Also speichert ich keine Passwörter mit CredRead/CredWrite.

Welche API wird IE zum Speichern von Passwörtern verwendet, und wenn CryptProtectData verwendet wird, wo werden dann die geschützten Daten gespeichert?


Edit: Der Grund, den ich frage, bedarf keiner Erklärung (da es ziemlich offensichtlich ist), aber es könnte sein, dass ich den gleichen Mechanismus verwenden möchte.

18
Ian Boyd

ich habe die Antwort gefunden. IE speichert Kennwörter basierend auf dem Kennworttyp an zwei verschiedenen Speicherorten:

  • HTTP-Authentifizierung: %APPDATA%\Microsoft\Credentials In verschlüsselten Dateien
  • Formularbasiert: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2, Verschlüsselt mit der URL

Von einer sehr gute Seite auf NirSoft.com :

Ab Version 7.0 von Internet Explorer hat Microsoft die Art und Weise, in der Kennwörter gespeichert werden, vollständig geändert. In früheren Versionen (4.0 - 6.0) wurden alle Kennwörter an einem speziellen Speicherort in der Registrierung gespeichert, der als "Geschützter Speicher" bezeichnet wird. In Version 7.0 von Internet Explorer werden Kennwörter je nach Kennworttyp an verschiedenen Orten gespeichert. Für jede Art von Kennwörtern gelten einige Einschränkungen bei der Kennwortwiederherstellung:

  • AutoComplete-Kennwörter: Diese Kennwörter werden in der Registrierung an folgendem Speicherort gespeichert: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2 Die Kennwörter werden mit der URL der Websites verschlüsselt Diese haben nach den Passwörtern gefragt und können daher nur wiederhergestellt werden, wenn die URLs in der Verlaufsdatei gespeichert sind. Wenn Sie die Verlaufsdatei löschen, kann IE PassView die Kennwörter erst wiederherstellen, wenn Sie erneut die Websites besuchen, auf denen Sie nach den Kennwörtern gefragt wurden. Alternativ können Sie eine Liste der URLs von hinzufügen Websites, für die Benutzername/Kennwort in der Websitedatei erforderlich sind (siehe unten).

  • HTTP-Authentifizierungskennwörter: Diese Kennwörter werden zusammen mit den Anmeldekennwörtern von LAN-Computern und anderen Kennwörtern in der Anmeldedatei unter Documents and Settings\Application Data\Microsoft\Credentials Gespeichert. Aus Sicherheitsgründen kann IE PassView diese Kennwörter nur wiederherstellen, wenn Sie über Administratorrechte verfügen.

In meinem speziellen Fall beantwortet es die Frage, wo; und ich habe beschlossen, das nicht zu duplizieren. Ich werde weiterhin CredRead/CredWrite verwenden, wobei der Benutzer seine Passwörter über ein etabliertes UI-System in Windows verwalten kann.

17
Ian Boyd

Kurze Antwort: im Tresor. Seit Windows 7 wurde ein Tresor erstellt, in dem alle vertraulichen Daten gespeichert werden, die für Internet Explorer erforderlich sind. Der Tresor ist in der Tat ein LocalSystem-Dienst - vaultsvc.dll.

Lange Antwort: In Internet Explorer können Anmeldeinformationen auf zwei Arten gespeichert werden: Anmeldeinformationen für Websites (z. B. Ihr Facebook-Benutzer und Ihr Kennwort) und Daten werden automatisch vervollständigt. Ab Version 10 wurde anstelle der Registrierung ein neuer Begriff eingeführt: Windows Vault. Windows Vault ist der Standardspeicherort für die Anmeldeinformations-Manager-Informationen.

Sie müssen überprüfen, welches Betriebssystem ausgeführt wird. Ab Windows 8 rufen Sie VaultGetItemW8 auf. Wenn dies nicht der Fall ist, rufen Sie VaultGetItemW7 auf.

Um den "Tresor" zu verwenden, laden Sie eine DLL mit dem Namen "vaultcli.dll" und greifen nach Bedarf auf deren Funktionen zu.

Ein typischer C++ - Code ist:

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

Anschließend listen Sie alle gespeicherten Anmeldeinformationen auf, indem Sie aufrufen

VaultEnumerateVaults

Dann gehen Sie die Ergebnisse durch.

2

Keine Garantie, aber ich vermute IE verwendet die ältere Protected Storage API.

0
Jerry Coffin