Можно ли зашифровать данные конфигурации в процессе установки?

Я занимаюсь разработкой .NET (2.0) утилиты WinForms, которая подключается к базе данных SQL Server 2005. Я нашел справочный материал, такой как Избегание незашифрованных паролей для обработки фактического шифрования данных строки подключения. Теперь мне нужно реализовать шифрование во время процесса установки, чтобы администратор мог установить утилиту на рабочем столе пользователя, но не предоставлять пользователю информацию о подключении к базе данных.

Кажется, что весь пример кода ориентирован на выполнение шифрования в основном приложении. Таким образом, приложение должно быть выполнено один раз для шифрования. Если приложение установлено, но не выполнено, информация о конфигурации будет в текстовом виде в файле конфигурации.

Может ли кто-нибудь предоставить информацию, показывающую, как шифрование может быть выполнено из приложения установки. Приветствуются и другие подходы к этой проблеме (однако из-за требований бизнеса я не могу требовать проверки подлинности Windows для подключения к базе данных - я ограничен проверкой подлинности SQL Server).

Изменить: возможно, я был слишком кратким с моим описанием. Мы уже провели оценку рисков и определили, что использование встроенной функциональности .NET Framework для шифрования информации о соединении обеспечивает достаточную безопасность для приложения.

Мы понимаем, что действительно решительный человек может в конечном итоге получить информацию о соединении, и мы с готовностью принимаем этот риск. Цель шифрования данных соединения - просто поднять планку усилий и помочь «сохранить честность честных людей».

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

10.12.2008 19:27:47
2 ОТВЕТА
РЕШЕНИЕ

Как насчет того, чтобы установщик запустил процесс postscript во время установки?

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

1
10.12.2008 22:04:55
По этому маршруту я, вероятно, пойду. Я могу добавить код шифрования в основное приложение, а затем попросить установщика запустить приложение с параметром командной строки, указывающим, что должно произойти шифрование. Спасибо.
JeremyDWill 11.12.2008 03:29:47

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

С помощью серверного приложения вы можете сделать это, ограничив доступ к серверу. Клиентское приложение WinForms должно иметь доступ к ключу при работе в качестве текущего пользователя, поэтому пользователь сможет найти ключ, если он достаточно умен.

Если вы не можете использовать проверку подлинности Windows для подключения к базе данных или использовать многоуровневую архитектуру с кодом доступа к данным на сервере, вы не будете в безопасности.

2
10.12.2008 19:42:03
Как указано в приведенной мной ссылке, .NET предоставляет мне средства шифрования данных в файле конфигурации. Мне просто нужно средство для выполнения этого шифрования во время установки приложения. Управление ключом шифрования обрабатывается платформой .NET. Спасибо за ответ, хотя!
JeremyDWill 10.12.2008 19:48:17