Хобрук: Ваш путь к мастерству в программировании

Шифрование / защита строки подключения .NET Compact Framework

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

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

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

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

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


Ответы:


1

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

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

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

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

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

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

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

20.04.2010

2

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

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

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

20.04.2010
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

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

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..