Улучшить хеширование паролей с помощью случайной соли

Я открываю веб-сайт и пытаюсь решить, как зашифровать пароли пользователей, чтобы сохранить их в базе данных SQL.

Я понимаю, что использование простого md5 (пароля) очень небезопасно. Я ' m рассматривает возможность использования sha512 (password.salt), и я искал лучший способ создать полезную соль. Я читал множество статей, в которых говорилось, что соль должна быть как можно более случайной, чтобы добавлять энтропию к хешу, и это похоже на отличную идею. Но:

  • вам необходимо сохранить случайную соль вместе с вашим хешем
  • , учитывая, что злоумышленник каким-то образом получил доступ к вашим хешированным паролям (и пытается преобразовать хеш в обычный текст), это означает, что он, вероятно, сбросил вашу базу данных , затем получил доступ и к вашим случайным солям

Разве не очевидно, что странно выглядящее значение рядом с хешем в базе данных - это соль? Если злоумышленник может получить доступ к соли вместе с хеш-значением, как это будет более безопасно?

У кого-нибудь есть опыт в этой области? Спасибо!

21
задан Tchoupi 23 February 2012 в 20:28
поделиться

1 ответ

учитывая, что злоумышленник каким-то образом получил доступ к вашим хешированным паролям (и пытается перевернуть хэш в обычный текст), это означает, что он, вероятно, сбросил вашу базу данных, а затем получил доступ к вашим случайным солям

Весь смысл засолки - победить «радужные столы»:

http://en.wikipedia.org/wiki/Rainbow_table

См. почему достаточно длинная соль побеждает любой радужный стол в разделе «Защита от радужных столов» .

как это более безопасно?

Раньше он был более безопасным, потому что заставлял злоумышленника попробовать, тогда очень дорогой подход грубой силы вместо мгновенного взгляда в предварительно вычисленных радужных таблицах. Если у вас была 64-битная соль, злоумышленнику нужно было иметь 2 ^ 64 предварительно вычисленных радужных таблиц вместо одного ... Другими словами: это делало радужные таблицы бесполезными.

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

В настоящее время вы хотите хранить свои «пароли», используя что-то вроде PBKDF2 или scrypt.

15
ответ дан 29 November 2019 в 06:50
поделиться
Другие вопросы по тегам:

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