Шифрование C# в возрасте отражателя

Конечно, xkcd!

353

8
задан Steve 16 July 2009 в 19:52
поделиться

6 ответов

Попробуйте использовать DPAPI (класс System.Security.ProtectedData). Это защищает ваши зашифрованные данные с использованием учетных данных пользователя или компьютера. Таким образом, только учетная запись пользователя, имеющая доступ к данным (учетные данные пользователя) или пользователь, который может войти в систему (учетные данные компьютера), сможет расшифровать ваши данные.

8
ответ дан 5 December 2019 в 08:00
поделиться

На самом деле это не проблема с ректором или нет. Речь идет об управлении ключами. DES и любая другая схема шифрования основаны на регулярной смене ключей. Жесткое кодирование ключа в коде явно нарушает это. Чтобы обойти это, вам следует изучить управление ключами.

РЕДАКТИРОВАТЬ: Для уточнения: в зависимости от ваших настроек вы можете хранить хешированные пароли в файловой системе и полагаться на файловую систему / безопасность пользователя или в базу данных, полагаясь на права базы данных.

5
ответ дан 5 December 2019 в 08:00
поделиться

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

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

4
ответ дан 5 December 2019 в 08:00
поделиться

К сожалению, 100% безопасный способ сделать это никогда не бывает. Вы можете запутать код, использовать неуправляемый код для секретных областей, но, поскольку ваше приложение может снова прочитать пароль, это может сделать любой злоумышленник, который приложит для этого достаточно усилий.

2
ответ дан 5 December 2019 в 08:00
поделиться

Вам вообще не следует хранить пароль в зашифрованном виде. Вместо этого вы должны сохранить его хеш с помощью односторонней хеш-функции. См .:

http://www.codinghorror.com/blog/archives/000953.html

1
ответ дан 5 December 2019 в 08:00
поделиться

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

1
ответ дан 5 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: