.NET Compact Framework Строка подключения Шифрование / защита - PullRequest
3 голосов
/ 20 апреля 2010

Я пишу приложение на C # для интеллектуального устройства под управлением Windows Mobile 6.1. Это довольно просто. Просто запрос к базе данных и получение результатов. Ничего особенного.

Эта программа будет развернута только внутри компании, но мы по-прежнему хотим быть в безопасности с нашей информацией о соединении SQL.

Как лучше всего зашифровать / защитить строку подключения в программе? Я видел примеры для программ .NET, использующих AppSettings, но я не вижу настройки в моих свойствах решения.

Я впервые занимаюсь разработкой приложения на C # / Visual Studio 2008, поэтому, возможно, мне не хватает какой-то настройки.

Спасибо за помощь.

Ответы [ 2 ]

3 голосов
/ 20 апреля 2010

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

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

Возможно, вы захотите сохранить зашифрованную версию в файле конфигурации и сохранить закрытый ключ в своем приложении. По крайней мере, читатель текста не может «сломать» его. Конечно, кто-то может использовать отражатель и декомпилировать ваше приложение, чтобы получить закрытый ключ.

Ну, вы могли бы запутать приложение. Это затруднит поиск этого закрытого ключа. Да, все еще не невозможно.

Возможно, вы хотите, чтобы этот закрытый ключ был удален с сервера через веб-сервис или что-то в этом роде. Затем, если у кого-то есть приложение, оно не может его получить, хотя всегда может перепроектировать способ вызова веб-службы. Или сделайте человека посередине и посмотрите на ключ в сети.

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

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

0 голосов
/ 20 апреля 2010

Не уверен, поможет ли это, но я использовал OpenNETCF.AppSettings в предыдущем проекте Windows Mobile 5 под VS2005.

Вы можете бесплатно скачать Community Edition с OpenNETCF Smart Device Framework на www.opennetcf.com и просмотреть документацию .

Я не уверен, что он работает с VS2008 / CF3.5.

...