2015-06-07 2 views
1

Недавно я столкнулся с интересным требованием от одного из моих клиентов:.NET Закрепить хранения конфиденциальных данных

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

Пример конфигурация секция с конфиденциальными данными:

<configSections> 
    <section name="PayUSettings" type="JobSystem.Payments.PayU.PayUSettings, JobSystem.Payments" /> 
    </configSections> 

<PayUSettings PosId="265898" Login="xxx" Password="yyy" IsTestMode="False" /> 

Каковы возможные решения для FULLFILL этого требования?

+0

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

ответ

1

К счастью, .NET уже предоставляет эту функцию для вас ProtectedConfiguration Provider. Это может использовать контейнеры ключей машины или пользовательского уровня, которые встроены в окна для хранения ключевой информации.

https://msdn.microsoft.com/en-us/library/53tyfkaw(v=vs.80).aspx

Если это веб-приложение, то IIS делает это супер просто зашифровать любой раздел файла web.config с помощью aspnet_regiis.exe. Смотрите ссылку здесь:

https://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.140%29.aspx

Если это не веб-приложение, то это немного сложнее (но не много), как вам нужно реализовать провайдеру ProtectedConfiguration себя. Пример того, как сделать это доступно здесь:

https://msdn.microsoft.com/en-US/library/dtkwfdky(v=vs.80).aspx

+0

Спасибо, это очень помогает – Macko

Смежные вопросы