Где Internet Explorer хранит сохраненные пароли?

где Internet Explorer хранит сохраненные пароли?

и так как это сайт программирования, я не буквально прошу место, где IE хранит пароли,но какой API ie использует для сохранения паролей.

сначала я предположил, что Microsoft использует стандартный api:

который используется для сохранения домена и общие учетные данные программы/веб-сайта.

CredRead/CredWrite затем повернитесь и используйте:

для шифрования данных с учетной записи текущего пользователя. CredRead/CredWrite затем сохраните данные в некотором магическом месте, содержимое которого вы можете видеть из элемента управления Панель:

enter image description here

но я не вижу там паролей IE. Поэтому ie не хранит пароли с помощью CredRead/CredWrite.

какой api использует IE для хранения паролей, и если он использует CryptProtectData, где он затем хранит защищенные данные?


Edit: причина, по которой я спрашиваю, не нуждается в объяснении (поскольку это довольно очевидно), но это потому, что я могу использовать тот же механизм.

3 ответов


Я нашел ответ. IE хранит пароли в двух разных местах на основе типа пароля:

  • Http-Auth: %APPDATA%\Microsoft\Credentials, в зашифрованные файлы
  • на основе формы: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2, зашифрованный url

С очень хорошая страница на NirSoft.com:

начиная с версии 7.0 в Сети Explorer, Microsoft полностью изменилась способ сохранения паролей. В в предыдущих версиях (4.0 - 6.0), все пароли были сохранены в специальном расположение в реестре, известном как "защищенное хранилище." В версии 7.0 в Internet Explorer пароли сохранено в разных местах, в зависимости от типа пароля. Каждый тип паролей имеет некоторые ограничения в восстановлении пароля:

  • Автозаполнение Паролей: эти пароли сохраняются следующим образом местонахождение в реестре: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2 Этот пароли шифруются с помощью URL веб-сайтов, которые просили пароли, а значит они могут быть только восстановлено, если URL-адреса хранятся в файл истории. Если вы очистите файл истории, т. е. PassView не будет возможность восстановления паролей до вы снова посещаете веб-сайты, которые спросил пароли. Кроме того, вы можете добавить список URL-адреса веб-сайтов, для которых требуется пользователь имя / пароль в файле веб-сайтов (смотреть ниже.)

  • аутентификация HTTP Пароли: эти пароли хранятся в файле учетных данных под Documents and Settings\Application Data\Microsoft\Credentials вместе с паролями входа компьютеров LAN и другие пароли. Из-за безопасности ограничения, IE PassView может восстановить эти пароли только если у вас есть права администратора.

CredRead/CredWrite, где пользователь может управлять своими паролями из установленной системы пользовательского интерфейса в Windows.

короткий ответ: в хранилище. Начиная с Windows 7, было создано хранилище для хранения любых конфиденциальных данных среди учетных данных Internet Explorer. Хранилище фактически является сервисом LocalSystem-vaultsvc.файл DLL.

ответ: Internet Explorer позволяет использовать два метода хранения учетных данных: учетные данные веб-сайтов (например, пользователя и пароль Facebook) и данные автозаполнения. Начиная с версии 10, вместо использования реестра новый термин был представил: хранилище Windows. Хранилище Windows-это хранилище данных диспетчера учетных данных по умолчанию.

вам нужно проверить, какая ОС работает. Если его Windows 8 или выше, вы вызываете VaultGetItemW8. Если это не так, вы звоните VaultGetItemW7.

чтобы использовать "хранилище", вы загружаете DLL с именем " vaultcli.dll " и доступ к его функциям по мере необходимости.

типичный код C++ будет:

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

затем вы перечисляете все сохраненные учетные данные по вызову

VaultEnumerateVaults

затем вы переходите к результатам.


нет гарантии, но я подозреваю, что IE использует старый Защищенное Хранилище API-интерфейс.