Я хотел бы включить шифрование и дешифрование файлов в одном из моих приложений на C# .NET. Сценарий прост: пользователь A отправляет пользователю AES256-зашифрованный файл. Чистый текстовый пароль обменивается на другой канал (например, телефонный звонок или что-то еще).Важность соли при использовании Rfc2898DeriveBytes для создания защищенных паролей из текстовых паролей
Из того, что я понимаю, я должен использовать Rfc2898DeriveBytes для преобразования текстового пароля пользователя в более безопасный пароль, используя, возможно, 10 000 раундов. (см. this article).
То, что я не понимаю, - это роль соли в моем сценарии. Обычно соль используется в хэшировании паролей, чтобы предотвратить атаки словаря. Но в моем сценарии алгоритм PBKDF2 используется для компенсации недостатков короткого или простого угадывания четких текстовых паролей путем добавления дополнительных вычислений, необходимых для раундов PBKDF2.
Если я выбираю случайную соль, то приемник должен знать эту соль также для правильной дешифровки. Если я использую постоянную соль, тогда хакеры могут легко перепроектировать мой код и запустить атаки грубой силы, используя мою постоянную соль (хотя они будут очень медленными благодаря итерациям PBKDF2).
Из того, что я понимаю, у меня нет другого выбора, кроме как использовать постоянную соль в моем сценарии и применять правильное правило пароля с четким текстом, чтобы восполнить слабость постоянной соли. Правильно ли мое предположение?
Для AES должен быть случайный IV (я предполагаю, что он использует какой-то другой режим, кроме ECB, который не является безопасным). Соль предотвращает использование таблицы радуги, чтобы получить пароль из хэша, но у злоумышленника нет способа получить этот хэш в этом сценарии, потому что он используется только как ключ для шифрования. –
@MaciejS Атакующий может прекомпомировать огромное количество ключей от обычных паролей и использовать таблицу против любого количества сообщений без дальнейшей работы. – ntoskrnl
Вы правы, соль должна использоваться для предотвращения такого рода нападений. –