Подтвердить что ты не робот

Windows эквивалент OS X Keychain?

Есть ли эквивалент OS X Keychain, используемый для хранения пользовательских паролей в Windows? Я бы использовал его, чтобы сохранить пароль пользователя для веб-службы, которую использует мое (настольное) программное обеспечение.

Из ответов на этот связанный вопрос (Защита паролей пользователей в настольных приложениях (Rev 2)) и множество сторонних инструментов хранения паролей, я предполагаю, что такой вещи не существует. Я застрял или просил пароль каждый раз, когда я обращаюсь к веб-службе, или просто сохраняю ее запутанным?

4b9b3361

Ответ 1

"Традиционным" эквивалентом Windows будет подсистема защищенного хранения, используемая IE (pre IE 7), Outlook Express и несколькими другими программами. Я считаю, что он зашифрован паролем входа в систему, который предотвращает некоторые оффлайн-атаки, но как только вы вошли в систему, любая программа, которая хочет ее прочитать. (См., Например, NirSoft Защищенный файл PassView для хранения.)

Windows также предоставляет API CryptoAPI и Data Protection, которые могут помочь. Опять же, я не думаю, что Windows делает что-либо, чтобы предотвратить запуск процессов под одной учетной записью друг от друга.

Похоже, книга Механика идентификации пользователя и аутентификации содержит более подробную информацию обо всех этих.

Eclipse (через Secure Storage) реализует нечто подобное, если вам интересно узнать, как это делает другое программное обеспечение.

Ответ 2

В Windows 8 есть понятие связки ключей, называемое Password Vault. Приложения Windows Runtime (Modern/Metro), а также управляемые настольные приложения могут использовать его. Согласно документации:

Приложения и службы не имеют доступа к учетным данным, связанным с другими приложениями или службами.

См. Как сохранить учетные данные пользователя в MSDN.

Pre-Windows 8, API защиты данных (DPAPI) является самым близким эквивалентом ключевой цепи. Произвольные данные могут быть зашифрованы с использованием этого API, хотя хранение зашифрованных данных зависит от разработчика. Данные в конечном счете зашифровываются с использованием текущего пароля пользователя, однако пользователь или разработчик, поставляющий "дополнительную энтропию", могут быть включены для дальнейшей защиты данных от другого программного обеспечения или пользователей. Данные также могут быть дешифрованы на разных компьютерах в домене.

Доступ к DPAPI можно получить через собственные вызовы в функции Crypt32.dll CryptProtectData и CryptUnprotectData или через .NET. Framework ProtectedData, который представляет собой ограниченную оболочку функций для предыдущих функций.

Более подробную информацию, чем когда-либо нужно было узнать о DPAPI, можно найти в статье Passcape DPAPI Secrets. Анализ безопасности и восстановление данных в DPAPI.

Ответ 3

На самом деле, просматривая MSDN, функции, которые они рекомендуют использовать (вместо защищенного хранилища):

  • CryptProtectData
  • CryptUnprotectData

Ссылка для CryptProtectData находится в функции CryptProtectData.

Ответ 4

Это 2018 год, и в Windows 10 есть "Диспетчер учетных данных", который можно найти в "Панели управления".