Где Internet Explorer хранит сохраненные пароли?
где Internet Explorer хранит сохраненные пароли?
и так как это сайт программирования, я не буквально прошу место, где IE хранит пароли,но какой API ie использует для сохранения паролей.
сначала я предположил, что Microsoft использует стандартный api:
который используется для сохранения домена и общие учетные данные программы/веб-сайта.
CredRead
/CredWrite
затем повернитесь и используйте:
для шифрования данных с учетной записи текущего пользователя. CredRead
/CredWrite
затем сохраните данные в некотором магическом месте, содержимое которого вы можете видеть из элемента управления Панель:
но я не вижу там паролей 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:
CredRead/начиная с версии 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 может восстановить эти пароли только если у вас есть права администратора.
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-интерфейс.