То, что я хотел бы знать, - это определенный подход к шифрованию строк подключения в файле конфигурации. Вот мои вопросы:
-
Используя шифрование на уровне машины, никто не может получить доступ к моему серверу, чтобы написать небольшую программу .Net для чтения содержимого строк подключения?
-
Если я развертываю свое приложение на компьютерах пользователей в корпоративной среде, а приложение имеет строки подключения в файле конфигурации, как я могу убедиться, что только мое приложение может его расшифровать? Этот сценарий особенно интересен в сценарии развертывания ClickOnce. Я читал о людях, хранящих конфигурацию, незашифрованную на сервере издателя, и шифрование на уровне машины, когда приложение загружается, устанавливается и выполняется в первый раз. Это звучит так неправильно для меня - строки подключения, незащищенные проводом через провод, и сидят без защиты в течение короткого промежутка времени между загрузкой и выполнением приложения.
-
Могу ли я иметь открытый и закрытый ключ, подписывать свое приложение, шифровать файл конфигурации с помощью ключа, а когда пользователь его выполняет, дешифрование будет возможно только из подписанного приложения?
-
Так как я использую ClickOnce, я мог бы зашифровать конфиденциальную информацию в коде или встроенном, потому что ClickOnce не обнаружит изменения, если не изменится версия #. Итак, если мне нужно перекомпилировать, если я изменю строку подключения, точка app.config будет отключена. Какие другие подходы я могу использовать, вне зависимости от файла конфигурации, для обеспечения защиты строк соединения на сервере, клиенте и между ними?