Где хранить пароли базы данных при использовании приложений Windows .NET или ASP.NET

У меня есть сценарий, который беспокоил меня в течение многих лет. Если вам нужно подключиться к базе данных или другому сервису (например, веб-сервису) с помощью имени пользователя и пароля, где будет самое безопасное место для хранения этой информации, если вы подключаетесь через сборку .NET? Я понимаю, что вам придется зашифровать пароль, но тогда вы столкнетесь с проблемой куриного яйца — хорошо — вы можете зашифровать его, но куда вы поместите ключ?

В .NET вы не можете жестко запрограммировать пароль, потому что вы можете декомпилировать код .NET.

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

Вы можете зашифровать App.Config и Web.Config, но я считаю, что пользователи с привилегиями могут получить доступ к ключам.

Я думаю, что вы столкнулись с той же проблемой с DPAPI.

Я рассматривал возможность хранения паролей в зашифрованном виде в удаленной базе данных и получения их через аутентификацию ОС, но наш отдел запрещает хранение паролей на серверах баз данных.Я почти уверен, что застрял и хотел подтверждения.

12
задан Cynical Coder 7 March 2012 в 22:04
поделиться