Как серверы аутентификации обрабатывают тысячи попыток входа в систему с интенсивным использованием ЦП?

Извините, если ответ очевиден, мне просто немного любопытно, и я не мог найти ответ в другом месте .

Я привык видеть, что серверы аутентификации используют простой SHA-1 или SHA-256 для проверки учетных данных, но в наши дни лучше всего использовать bcrypt для хеширования учетных данных.

Проблема в том, что bcrypt разработан для использования значительных объемов ЦП и / или памяти, чтобы ограничить эффективность алгоритмов перебора. Легко для одного входа в систему, но когда задействованы сотни или тысячи входов, администраторы серверов просто используют огромное количество оборудования для решения проблемы или настраивают параметры bcrypt, чтобы обеспечить разумное время входа для пользователей?

0
задан 12 May 2016 в 02:39
1 ответ

Вы не можете не устанавливать слишком низкие параметры bcrypt. Параметры должны быть установлены так, чтобы для проверки пароля требовалось минимум ~250 мс.

Это означает, что вы будете потреблять 100 % ядра ЦП в течение 250 мс при каждом входе в систему.

Итак:

  • на одноядерном процессоре вы можете войти в систему только 4 человека в секунду
  • на двухъядерном процессоре: 8 человек в секунду
  • на четырехъядерном процессоре: 16 человек в секунду

К счастью, когда кто-то входит в систему , вы передадите им файл cookie аутентификации. Если вы все сделаете правильно, и срок действия файла cookie аутентификации не истечет более 50 лет, вам больше никогда не придется подтверждать пароль.

1
ответ дан 11 April 2021 в 03:20

Теги

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