Взлом ключа Rfc2898DeriveBytes с вводом пароля, но без соли

Я использую класс C# RijndaelManaged для шифрования AES. Ключ и IV генерируются из входного пароля и соли с использованием класса Rfc2898DeriveBytes. Мой вопрос: насколько сложно было бы сломать шифрование, если бы кто-то получил входной пароль, но не соль?

1 ответ

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

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

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

Другие вопросы по тегам