Защищенные от несанкционированного доступа файлы конфигурации в .NET? - PullRequest
2 голосов
/ 24 января 2012

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

Какие возможности у нас есть?

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

Как мне это сделать? Есть ли лучшие способы сделать это?

Примечание: я осведомлен , что это не помешает определиться с атакующим. Мы рассчитываем закрыть некоторые из самых простых маршрутов и перевести усилия, необходимые для преднамеренного, а не халатного, нарушения.

Ответы [ 2 ]

5 голосов
/ 24 января 2012

Это не имеет никакого смысла. Вы отправляете файл конфигурации. Он используется для настройки приложения. Но вы не хотите, чтобы это изменилось? Тогда его нельзя использовать для настройки приложения. Так зачем тогда вообще беспокоиться о конфигурационном файле? Почему бы просто не встроить его в качестве ресурса в само приложение?

Что мне не хватает?

Изменить, чтобы ответить на вашу новую информацию:

Использовать XMLDSIG . Знак app.config. Проверка подписи.

0 голосов
/ 24 января 2012

Вы можете зашифровать разделы вашего файла конфигурации с помощью утилиты командной строки aspnet_regiis .Он использует DPAPI по умолчанию (я считаю), но он также может поддерживать другие алгоритмы шифрования.Таким образом, вы можете использовать это для шифрования вашей строки подключения или разделов настроек приложения вашего файла (или любых других разделов).

...