Имейте в виду, что если он есть в вашей программе, то он небезопасен по своей сути. Независимо от того, что вы делаете, если приложение имеет возможность установить это безопасное соединение с информацией, которую оно содержит, то эта информация может быть извлечена опытным хакером со временем и желанием.
Но так ли вас беспокоит такой уровень угрозы? Очевидно, что простое добавление его в файл app.config - это такой же низкий уровень безопасности, как и у вас. Все, что должно произойти, это то, что кто-то откроет файл с помощью программы для чтения текста и тада, у них есть ваши учетные данные.
Возможно, вы захотите сохранить зашифрованную версию в файле конфигурации и сохранить закрытый ключ в своем приложении. По крайней мере, читатель не может "сломать" его. Конечно, кто-то может использовать рефлектор и декомпилировать ваше приложение, чтобы получить закрытый ключ.
Что ж, вы можете запутать приложение. Тогда будет сложнее найти этот закрытый ключ. Да все же не невозможно.
Возможно, вы хотите, чтобы этот закрытый ключ был снят с сервера через веб-службу или что-то в этом роде. Затем, если у кого-то есть приложение, они не могут его получить - хотя они всегда могут реконструировать способ вызова веб-службы. Или сделайте человека посередине и посмотрите ключ в сети.
Возможно, вы могли бы использовать SSL для защиты передачи. Возможно, сделайте фильтрацию MAC-адресов для службы, чтобы неавторизованным устройством было сложнее получить ключ.
Вы можете увидеть прогресс здесь. Каждый уровень безопасности требует все больше и больше работы. Все больше и больше обслуживания. Вы должны решить, какой будет доход от инвестиций для вашего сценария, и выбрать уровень безопасности, который вам удобен, с учетом количества усилий, которые вы готовы потратить на это.
20.04.2010