Почему люди предлагают использовать алгоритмы растягивания ключей, такие как bcrypt/pbkdf2, которые требуют больше времени для вычисления (по назначению), вместо использования более быстрых алгоритмов, которые также являются безопасными, например, 256 или sha-512 и использовать механизм дросселирования для ограничения нападений грубой силы?Ключевые алгоритмы растяжения и дросселирования для пароля «хеширование»
Дросселирование не связано с ЦП и будет обеспечивать ту же самую «задержку» для атак грубой силы, при этом все еще быстро для среднего пользователя. С другой стороны, bcrypt/pbkdf2 связан с ЦП и всегда будет медленным.
Это имеет смысл. Но если злоумышленник смог получить доступ к хэшам, это более насущный вопрос с точки зрения безопасности. В большинстве случаев злоумышленник также мог бы получить доступ к конфиденциальным данным пользователей. Если можно предположить, что хеши (уровень базы данных) являются безопасными (что должно быть требованиями к дизайну и административным императивом), не будут ли более быстрыми хэшами оставаться идеальным решением? – Climax
@Climax - В идеальном мире, где никто не интересуется вашими хэшами, вы даже можете хранить их в виде открытого текста. В реальном мире, однако, существует так много способов, по которым ваши хэши могут протекать, что вы абсолютно должны использовать растяжение ключей (SQL-инъекция, выброшенные резервные копии, жесткие диски отброшенных серверов, хост или db-admin). Имейте в виду, что люди часто повторно используют свои пароли, поэтому даже если ваш сайт неважен, вы можете поставить под угрозу более важный сайт. Возможно, вы можете быть заинтересованы в моем [учебнике] (http://www.martinstoeckli.ch/hash/en/index.php) о безопасном хранении паролей. – martinstoeckli
Спасибо, ваш учебник отличный. Я согласен с вашим ответом, поскольку он описывает сценарий, где bcrypt/scrypt необходим. Однако я хотел бы спросить, можно ли использовать какой-то эфемерный кеш-кеш, чтобы хотя бы повысить производительность? Вариант использования может быть для запросов API, где bcrypt должен выполняться в короткой последовательности для одного и того же пароля. – Climax