Как обезопасить свой App.config на удаленных ПК - PullRequest
0 голосов
/ 04 мая 2020

В моем app.config я сохранил все важные элементы моего приложения (пароль, строки подключения). Я зашифровал этот материал с помощью контейнера ключей RSA.

Когда установка установлена ​​на удаленном P C, она также импортирует контейнер ключа RSA (*. xml). Таким образом, мое приложение способно расшифровать файл:

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

Проблема заключается в следующем: я также могу расшифровать файл app.config с помощью этой инструкции:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -pdf "connectionStrings" "\myAppPath"

Можно ли защитить контейнер ключа RSA, чтобы он был доступен только для приложения?

У вас есть другое решение для моей проблемы?

К вашему сведению: я использую Wix в качестве установщика, и все удаленные ПК не имеют доступа rnet. Итак, веб-сервер не является решением (я думаю).

1 Ответ

0 голосов
/ 05 мая 2020

Вам нужна доверенная третья сторона, чтобы установить sh соединение между новой установкой A и существующей установкой B. A необходимо получить токен из B, который позволит расшифровать конфигурацию. Это можно сделать после установки. После получения токена сохраните и используйте его повторно в течение всего срока службы приложения.

Надежной третьей стороной может быть сервер (см. Kerberos) или лицо, устанавливающее программное обеспечение. В любом случае обе стороны A и B должны договориться о секретном ключе для расшифровки конфигурации.

Если нет предварительной установки, установите его как master, который будет генерировать такой ключ. Для шифрования конфигурации вы можете использовать DES или RSA, до вас. Это просто вопрос безопасного распределения ключей. См. Также Протокол согласования ключей .

...