Недавно я обсуждал это с коллегой.
Нам нужно защитить строки подключения, которые находятся в нашем .config
файлы (для соответствия SOX) и нашел два варианта:
Оба подхода упоминаются в этот статья в MSDN (Защита информации о подключении (ADO.NET)), но неясно, какой из этих вариантов более безопасен или какой подход рекомендуется.
Те, у кого есть опыт работы с одним или обоими из них, не могли бы вы рассказать, какой из них вы использовали и почему?
Чтобы уточнить свой вопрос - какой из двух вариантов более безопасен и почему?
Это два разных решения одной и той же проблемы хранения учетных данных на диске:
Использование аутентификации Windows означает запуск клиентского процесса в контексте учетной записи пользователя (предпочтительно службы) и разрешение ему аутентифицироваться с использованием NTLM, Kerberos в соответствии с вашей средой. Обратите внимание, что использование аутентификации Windows означает, что две конечные точки работают в одних и тех же или доверяющих доменах или что они совместно используют «зеркальную учетную запись». Когда вы разрешаете аутентификацию Windows, вам не нужно хранить имя пользователя и пароль на диске, поскольку аутентификация выполняется с использованием токена процесса, назначенного клиентскому процессу.
шифрование строки подключения означает, что вы будете применять шифрование к имени пользователя и паролю, прежде чем сохранять его на диске. Поскольку для аутентификации с использованием этих учетных данных требуется, чтобы они хранились с использованием обратимого шифрования, а ключ для этого дешифрования также хранится в локальной системе, это означает, что учетные данные потенциально доступны любому, у кого есть доступ к компьютеру.
HTH