2015-01-18 2 views
0

Может быть, немного глупый вопрос, но я хочу знать, безопасны ли значения, которые я вложил в app.config для использования в моем приложении? Я собираюсь использовать это в приложении на C#. Мне нужно, чтобы это было безопасно против обратного проектирования или других способов получения этого ключа, чтобы люди могли читать мой пароль.являются значениями в app.config safe?

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

Пример:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="SecurityKey" value="secKey" /> 
    </appSettings> 

Заранее спасибо!

+0

Из Интернета: да очень безопасно. С сервера: как уязвимый, как любой файл. – geekonedge

+0

Безопасный против кого? Где вы развертываете? – SLaks

+0

Я использую это как настольное приложение на C#. Поэтому мне нужно, чтобы это было безопасно против обратного проектирования. –

ответ

0

Безопасно от кого и что? Я предполагаю, что вы имеете в виду от хакера, который обращается к файловой системе машины и приобретает ключ шифрования.

Для этого существует смягчение - encrypted configuration sections, которые предназначены для хранения кодовых фраз и другой конфиденциальной информации. Я не могу дать много советов по этому поводу, так как я никогда их не использовал.

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

+0

Вы правы, я не эксперт. Я не использую свой собственный encrypter, но я использую TripleDESCryptoServiceProvider. Я только начинаю с шифрования, поэтому мне нужно многому научиться. –

+0

Алгоритмы шифрования - это одно и много для вас, если вы действительно достаточно умны, чтобы разработать один из них; но то, что вы используете для них, также важно. Если все, что вы хотите сделать, это дать пользователю логин с паролем, тогда [ASP.NET Identity] (http://www.asp.net/identity), вероятно, способ пойти - я полагаю, это подходит для вас, как вы упоминаете использование web.config, который подразумевает сайт ASP.NET. Обязательно делайте то, что вам нравится для обучения, но * пожалуйста * используйте готовое решение, если вы собираетесь обрабатывать данные реальных пользователей. –

+0

Я делаю настольное приложение C#, и я собираюсь использовать пароль для подключения к серверу. Поэтому мне нужен этот пароль, чтобы быть в безопасности.Я никак не могу взаимодействовать с сервером, потому что это не мое. –

0

Это потенциально опасно, если вы не доверяете своим сетевым администраторам. Стоит попробовать DPAPI.

+0

Спасибо, я попробую! –

0

Небезопасно, вы должны зашифровать значение safeKey. Вы можете использовать для этого DPAPI.

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

+0

Спасибо, я попробую! –

+0

@StanSwanborn, если мой ответ вам помог, вы можете отметить его как правильное. – mybirthname

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