Ответ 1
Упрощенный ответ: у них не будет доступа к ключу
Я полагаю, что по умолчанию ключ хранится в хранилище сертификатов компьютера, поэтому злоумышленнику также нужно будет иметь доступ к нему. Я не эксперт, но суть его.
Насколько я могу судить, любой раздел в файле web.config можно зашифровать и дешифровать с помощью aspnet_regiis.exe.
Если aspnet_regiis можно использовать для дешифрования файла web.config, то какой смысл его шифровать? Следует ли хранить пароли и конфиденциальную информацию в виде обычного текста? Если кто-либо с файлом и exe может его расшифровать, действительно ли он защищает конфиденциальную конфигурационную информацию?
UPDATE
Спасибо всем, кто ответил на машинный ключ. Причина, по которой я задал этот вопрос, заключается в том, что у нас есть проект с открытым исходным кодом, размещенный на codeplex.com. Однако мы также развертываем этот проект в Windows Azure. Я пытаюсь найти лучший подход, чтобы держать чувствительные пароли вне контроля источника, но сохраняйте их доступными как часть моего проекта, когда я развертываю Azure.
В настоящее время я использую преобразования веб-конфигураций для хранения строк соединения Azure (а также паролей Gmail для system.net). Я создал файл преобразования Web.PublishToAzure.config и просто сохранил этот файл вне контроля источника. Я также нашел эту статью, которая может быть лучшим вариантом. Еще раз спасибо.
Упрощенный ответ: у них не будет доступа к ключу
Я полагаю, что по умолчанию ключ хранится в хранилище сертификатов компьютера, поэтому злоумышленнику также нужно будет иметь доступ к нему. Я не эксперт, но суть его.
Файл зашифровывается с помощью специальных ключей. Хотя верно, что любой, у кого доступ к машинным уровням может расшифровать его, шифрование может остановить людей с доступом к FTP, поскольку они не имеют ключей DPAPI машины.
Я понимаю, что aspnet_regiis.exe использует конкретный ключ машины как "соль"
Если вы зашифруете раздел на машине, а затем перейдете на другой компьютер и попытаетесь его расшифровать, он не будет работать.
В истории существовали эксплойты в браузерах или программное обеспечение веб-сервера, которые позволяли пользователям просматривать любой файл на жестком диске сервера. В таком случае зашифрованный файл web.config может быть полезен. Однако, если веб-сервер был скомпрометирован, позволяя удаленный доступ к самому серверу, то зашифрованный файл web.config будет наименьшим из ваших забот.