Файл паролей в среде Windows?

Файл паролей в среде Windows?

Я ищу способ сохранить пароль базы данных на рабочей машине, чтобы мое собственное приложение могло его прочитать (чтобы подключиться к базе данных), но пользователь без прав администратора не мог его прочитать. Администратор должен иметь возможность изменить пароль, желательно автоматически.

Я имею в виду что-то вродеФайл .pgpass для PostgreSQLв среде Linux. Возможно ли это также в среде Windows?

Я думаю, что файл паролей можно сделать доступным только для администраторов. Но может ли программа, которая является исполняемой для пользователя, также получить доступ к этому файлу? Далее, возможно ли с помощью групповых политик распространить такой файл по сети?


Другие решения, которые я рассматриваю (вероятно, потребуют больше усилий):

  1. Зашифруйте файл паролей. Только приложение и администраторы имеют действительные ключи для расшифровки и изменения/чтения файла.
  2. Получите пароль из сетевого ресурса, предположительно также зашифрованного.

решение1

В ответ на ваш вопрос о доступе только администратора:

Windows запускает службы с разрешения пользователя (если только вы специально не запускаете их как администратор или другой пользователь), поэтому, если у пользователя нет доступа к файлу, то и у программы его не будет.

В ответ на вопрос о групповой политике:

Да, вы можете использовать групповую политику для распространения файлов через настройки групповой политики. (См.:https://www.adamfowlerit.com/2016/07/group-policy-preferences-replace-existing-file/)

решение2

Если кому интересно: я придумал следующее решение.

Пароль хранится в зашифрованном виде в XML-файле («контейнер паролей»). Контейнер можно открыть и редактировать с помощью пароля администратора. Шифрование симметрично. Контейнер размещается на сетевом ресурсе, просто в сетевом каталоге.

Приложению сообщается местоположение контейнера с паролем, и оно может открыть контейнер с паролем, поскольку пароль администратора хранится в коде.

Я знаю, что это решение не на 100% безопасно, так как пароли не должны храниться в коде. Однако для этих требований (пароль базы данных должен быть скрыт от пользователя, пароль базы данных должен быть администрируемым) решение достаточно хорошее.

Связанный контент