У меня есть сценарий, который беспокоит меня годами. Если вам нужно подключиться к базе данных или другой службе (например, веб-службе) с использованием имени пользователя и пароля, где было бы самым безопасным местом для хранения этой информации, если вы подключаетесь через сборку .NET? Я понимаю, что вам нужно будет зашифровать пароль, но тогда вы столкнетесь с проблемой куриного яйца - отлично - вы можете зашифровать его, но тогда куда вы кладете ключ?
В .NET вы не можете жестко задавать пароль, потому что вы можете декомпилировать .NET-код.
Я посмотрел на использование прав на сборке с изолированным хранилищем, но MS рекомендует не хранить незашифрованные секретные элементы там, потому что priveledged пользователи могут получить доступ, поэтому снова мы перемещаем проблему из точки A в точку B. Так, например, m, a администратор домена, не нуждающийся в информации об информации в базе данных, сможет получить доступ из-за возможности быть администратором на любой рабочей станции в домене.
Вы можете шифровать App.Config и Web.Config, но я считаю, что пользователи могут получить доступ к ключам.
Я думаю, что вы столкнулись с той же проблемой с DPAPI.
Я рассмотрел возможность хранения паролей, зашифрованных в удаленной базе данных и получения их через проверку подлинности ОС, но наш отдел запрещает хранение паролей на серверах баз данных. Я уверен, что застрял и хотел подтверждения.