Я уже некоторое время участвую в bcrypt, но у меня возникают проблемы с ответом на простой вопрос.
Представьте, что у меня есть достаточно успешный веб-сайт в США ... около 100 000 активныхпользователи, каждый из которых имеет шаблоны активности, требующие в среднем от 2 до 3 попыток аутентификации в течение типичного американского рабочего дня (12 часов с учетом часовых поясов).Это 250 000 запросов на аутентификацию в день, или около 5,8 аутентификаций в секунду.
Одна из замечательных особенностей bcrypt заключается в том, что вы настраиваете его, чтобы со временем он масштабировался, как аппаратное обеспечение, чтобы опередить взломщиков.Обычная настройка состоит в том, чтобы заставить его занимать чуть более 1/10 секунды на создание хеша ... допустим, я получаю его на .173 секунды на хеш.Я выбрал это число, потому что так получилось, что 173 секунды на хеш работают примерно до 5,8 хешей в секунду.Другими словами, мой гипотетический веб-сервер буквально тратит все свое время, ничего не делая, кроме аутентификации пользователей.Не берите в голову какую-либо полезную работу.
Чтобы решить эту проблему, мне придется либо отключить bcrypt (не очень хорошая идея), либо получить выделенный сервер только для аутентификации, и ничего более.Теперь представьте, что сайт растет и добавляет еще 100 000 пользователей.Внезапно мне нужны два сервера: опять же, ничего не делая, кроме аутентификации.Даже не начинайте думать о пиках нагрузки, так как у вас бывают легкие и напряженные периоды в течение дня.
Как я вижу это сейчас, это одна из тех проблем, которые было бы неплохо иметь, и bcryptвсе еще стоит потраченных усилий.Но я хотел бы знать, упускаю ли я что-то здесь очевидное?Что-то тонкое?Или кто-то может на самом деле указать на известный веб-сайт, на котором запущена целая ферма серверов только для части аутентификации их сайта?