Зачем шифровать файл веб-конфигурации?

Насколько я могу судить, любой раздел в файле web.config можно зашифровать и дешифровать с помощью aspnet_regiis.exe.

Если aspnet_regiis можно использовать для дешифрования файла web.config, то какой смысл его шифровать? Следует ли хранить пароли и конфиденциальную информацию в виде обычного текста? Если кто-либо с файлом и exe может его расшифровать, действительно ли он защищает конфиденциальную конфигурационную информацию?

UPDATE

Спасибо всем, кто ответил на машинный ключ. Причина, по которой я задал этот вопрос, заключается в том, что у нас есть проект с открытым исходным кодом, размещенный на codeplex.com. Однако мы также развертываем этот проект в Windows Azure. Я пытаюсь найти лучший подход, чтобы держать чувствительные пароли вне контроля источника, но сохраняйте их доступными как часть моего проекта, когда я развертываю Azure.

В настоящее время я использую преобразования веб-конфигураций для хранения строк соединения Azure (а также паролей Gmail для system.net). Я создал файл преобразования Web.PublishToAzure.config и просто сохранил этот файл вне контроля источника. Я также нашел эту статью, которая может быть лучшим вариантом. Еще раз спасибо.

Ответ 1

Упрощенный ответ: у них не будет доступа к ключу

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

Ответ 2

Файл зашифровывается с помощью специальных ключей. Хотя верно, что любой, у кого доступ к машинным уровням может расшифровать его, шифрование может остановить людей с доступом к FTP, поскольку они не имеют ключей DPAPI машины.

Ответ 3

Я понимаю, что aspnet_regiis.exe использует конкретный ключ машины как "соль"

Если вы зашифруете раздел на машине, а затем перейдете на другой компьютер и попытаетесь его расшифровать, он не будет работать.

Ответ 4

В истории существовали эксплойты в браузерах или программное обеспечение веб-сервера, которые позволяли пользователям просматривать любой файл на жестком диске сервера. В таком случае зашифрованный файл web.config может быть полезен. Однако, если веб-сервер был скомпрометирован, позволяя удаленный доступ к самому серверу, то зашифрованный файл web.config будет наименьшим из ваших забот.