2010-06-11 11 views
17

Wo speichert der Internet Explorer gespeicherte Passwörter?Wo speichert der Internet Explorer gespeicherte Passwörter?

Und da dies eine Programmierseite ist, frage ich nicht buchstäblich nach dem Ort, an dem IE Kennwörter speichert, aber welche API verwendet, um Passwörter zu speichern.

Zunächst ging ich davon aus, dass Microsoft den Standard-api wurde mit:

, der Domain zu speichern verwendet wird und generische Programm/Web-Site Anmeldeinformationen.

CredRead/CredWrite dann umdrehen um und Verwendung:

zu verschlüsseln Daten mit dem Konto des aktuellen Benutzers. CredRead/CredWrite dann speichern Sie die Daten in irgendeiner magischen Ort, Inhalt Sie in der Systemsteuerung sehen:

enter image description here

Aber ich dort sehen IE Passwörter nicht. Also dh speichert keine Passwörter mit CredRead/CredWrite.

Welche API verwendet der IE zum Speichern von Passwörtern und wenn er CryptProtectData verwendet, wo speichert er dann die geschützten Daten?


Edit: Der Grund, warum ich bedarf keiner Erklärung fragen (da es ziemlich offensichtlich ist), aber es ist, weil ich den gleichen Mechanismus verwenden möchte.

Antwort

17

Ich fand die Antwort. IE speichert Passwörter in zwei verschiedenen Standorten auf der Grundlage der Kennworttyp:

  • Http-Auth:%APPDATA%\Microsoft\Credentials, in verschlüsselten Dateien
  • formularbasierte:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2, verschlüsselt mit der URL

Von einem very good page on NirSoft.com:

Ausgehend von v ersion 7.0 des Internets Explorer, Microsoft hat die Art vollständig geändert, auf der Passwörter gespeichert werden. In früheren Versionen (4.0 - 6.0), alle Passwörter wurden in einem speziellen Speicherort in der Registry als "Protected Storage" gespeichert. In der Version 7.0 des Internet Explorers sind Passwörter in verschiedenen Orten gespeichert, je nach Art des Passworts. Jede Art von Passwörtern hat einige Einschränkungen in Passwort-Wiederherstellung:

  • Auto-Vervollständigen Passwörter: Diese Passwörter sind in der folgenden Lage in der Registry gespeichert: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2 Die Passwörter mit der URL verschlüsselt sind der Websites, die für die Passwörter aufgefordert, und somit können sie nur wiederhergestellt werden, wenn die URLs in die Verlaufsdatei gespeichert sind. Wenn Sie die Verlaufsdatei löschen, wird IE PassView nicht fähig sein, die Kennwörter wiederherzustellen, bis Sie wieder die Websites besuchen, die nach den Kennwörtern gefragt haben. Alternativ können Sie eine Liste von URLs von Websites hinzufügen, für die der Benutzer Name/Kennwort in die Websitedatei (siehe unten) eingegeben werden muss.

  • HTTP-Authentifizierung Passwörter: Diese Passwörter in den Anmeldeinformationen gespeichert werden Datei unter Documents and Settings\Application Data\Microsoft\Credentials zusammen mit Login-Passwörter von LAN-Computern und andere Passwörter. Aufgrund von Sicherheitseinschränkungen kann IE PassView diese Kennwörter nur wiederherstellen, wenn Sie Administratorrechte haben.

In meinem speziellen Fall beantwortet sie die Frage, wo; und ich entschied, dass ich das nicht kopieren möchte. Ich werde weiterhin verwenden CredRead/CredWrite, wo der Benutzer ihre Kennwörter aus einem etablierten UI-System in Windows verwalten können.

+0

Können Sie sie abrufen, wenn sie auf einer alten Festplatte im Regal sitzen? Nicht du, wie du, sondern du im allgemeinen Sinne. :) – HPWD

+0

@dlackey Konzeptionell ist es möglich, solange Sie Ihr altes Windows-Passwort kennen. –

0

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

+1

Sie haben teilweise Recht. Internet Explorer 4-6 verwendet die Protected Storage API. IE 7-8 speichert Passwörter in der Registry und eine Datei, abhängig vom Passwort-Typ. –

+1

PSAPI wurde vor langer Zeit eingestellt. IE6 verwendete es zuletzt. –

1

Kurze Antwort: in der Vault. Seit Windows 7 wurde ein Vault erstellt, in dem vertrauliche Daten unter den Anmeldeinformationen von Internet Explorer gespeichert werden. Der Vault ist in der Tat ein LocalSystem-Dienst - vaultsvc.dll.

Lange Antwort: Internet Explorer ermöglicht es zwei Methoden der Anmeldeinformationen Speicher: Web-Sites Anmeldeinformationen (zum Beispiel: Ihre Facebook-Nutzer und Passwort) und die automatische Vervollständigung Daten. Seit Version 10 wurde anstelle der Registrierung ein neuer Begriff eingeführt: Windows Vault. Windows Vault ist der standardmäßige Speichertresor für die Anmeldeinformationen des Anmeldungsmanagers.

Sie müssen überprüfen, welches Betriebssystem ausgeführt wird. Unter Windows 8 oder höher rufen Sie VaultGetItemW8 an. Wenn es nicht ist, rufen Sie VaultGetItemW7.

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

Eine typische C++ Code wird sein:

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

Dann Sie alle gespeicherten Anmeldeinformationen aufzuzählen von

VaultEnumerateVaults 

Dann rufen Sie die Ergebnisse gehen.