2013-05-28 3 views
0

Извините, если это дубликат, но я не смог найти ничего, что каким-то образом не связано с шифрованием DB. Моя проблема связана не с БД. У меня есть набор файлов, зашифрованных с помощью RijndaelManaged. В коде шифрования я использую Rfc2898DeriveBytes, чтобы сгенерировать ключ с паролем и солью и определенное количество итераций. Соль, как это бывает, не хранится надежно (просто строка).Знает ли соль, используемую в Rfc2898DeriveBytes, риск для безопасности?

Мне было интересно: люди, имеющие доступ к моему коду, могли легко получить соль (например, дизассемблировать dll) и, конечно, количество итераций.

Что представляет собой риск для безопасности этого, учитывая, что пароль сам по себе не так легко извлекается (да, давайте дадим это как должное сейчас)?

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

Очевидной проблемой является то, что украденные коды менее легко обнаружить, чем украденной БД ...

+1

Это полностью зависит от того, сколько энтропии пароля имеет. «Соль ... не нужно хранить в секрете» - RFC 2898. –

+1

Соль должна быть разной для каждого файла. – mikey

+0

Спасибо за комментарии, они указали мне в правильном направлении (переписывая код в конце). Я думаю, что этот вопрос лучше подходит для сайта безопасности stackexchange ... может ли кто-нибудь его перенести? – Tallmaris

ответ

0

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

Для больше контекста на весь процесс накапливания хеширования/пароля см:

Hashing

+0

Это применимо, если я буду хранить пароли в БД (или файле). Я шифрую файлы на жестком диске, и я использую тот же пароль + соль, чтобы получить ключ для шифрования каждого файла. Я спрашиваю, является ли знание соли потенциальной угрозой безопасности. – Tallmaris

+0

№ Использование соли (которая должна храниться в незашифрованном виде) не будет открывать какие-либо (новые) дыры в безопасности. Использование одной соли для всех файлов лучше, чем использование соли вообще. Однако использование уникальной соли для каждого файла лучше, чем предыдущий. – AtinSkrita

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