Надлежащее хранение и поиск пароля для учетных записей служб?
Большая часть информации, которую я нашел и прочитал о правильном хранении паролей в базе данных, говорит о том, что я должен хешировать открытый текст пароля с уникальным значением соли для каждого пользователя, а затем сохранять этот хэш в базе данных. Но этот процесс не работает для моих нужд...
У меня есть служба Windows, написанная на C#, которая должна подключаться к другим удаленным компьютерам в разных центрах обработки данных с использованием определенных учетных записей служб. Эти учетные записи служб похожи на учетные записи пользователей домена, но за ними нет реальных людей, и у них просто есть соответствующие разрешения для выполнения полезной нагрузки службы на каждом конкретном сервере. Информация об учетной записи службы хранится в таблице SQL Server, включая пароль для каждой учетной записи. В настоящее время я использую симметричное шифрование (Rijndael), чтобы скрыть пароли в таблице БД. Ключ сохраняется в отдельном конфигурационном файле, который имеет строгие права доступа.
Каждый раз, когда служба имеет запланированную полезную нагрузку для запуска на удаленном компьютере, я ищу соответствующую информацию учетной записи службы в таблице и расшифровываю ее с помощью ключа. Существует также внутренний веб-сайт, который в основном является интерфейсом для управления различными настройками этой службы, и там администратор может просматривать и изменять пароль учетных записей службы.
Это хороший подход к обеспечению безопасности? Есть ли очевидные недостатки в этой схеме?