Skip to main content

V2.4.4 Credential Storage

Requirement:#

Verify that if bcrypt is used, the work factor SHOULD be as large as verification server performance will allow, with a minimum of 10. (C6)

Explanation:#

Фактор работы — это, по сути, количество итераций алгоритма хеширования, которые выполняются для каждого пароля (обычно это фактически итерации). Цель коэффициента работы состоит в том, чтобы сделать вычисление хэша более затратным в вычислительном отношении, что, в свою очередь, снижает скорость и/или увеличивает стоимость, за которую злоумышленник может попытаться взломать хэш пароля. Коэффициент работы обычно хранится в выходных данных хеш-функции.

При выборе рабочего фактора необходимо найти баланс между безопасностью и производительностью. Более высокие рабочие факторы затрудняют взлом хэшей злоумышленником, но также замедляют процесс проверки попытки входа в систему. Если коэффициент работы слишком высок, это может привести к снижению производительности приложения, а также может быть использовано злоумышленником для проведения атаки типа «отказ в обслуживании», предприняв большое количество попыток входа в систему, чтобы истощить ЦП сервера.

Не существует золотого правила для идеального фактора работы — он будет зависеть от производительности сервера и количества пользователей в приложении. Для определения оптимального рабочего фактора потребуются эксперименты на конкретных серверах, используемых приложением. Как правило, вычисление хеша должно занимать менее одной секунды.

Remediation:#

Чтобы убедиться, что bcrypt используется с достаточным коэффициентом работы, вы можете выполнить следующие шаги:

  • Доступ к конфигурации сервера: вам потребуется доступ к настройкам конфигурации сервера, чтобы проверить коэффициент работы bcrypt. В зависимости от вашей настройки, это может быть сохранено в файле или доступно через административный интерфейс.
  • Найдите конфигурацию bcrypt: найдите раздел конфигурации, относящийся к реализации bcrypt. В этом разделе должен быть указан используемый алгоритм, а также коэффициент работы и другие параметры.
  • Проверьте коэффициент работы. Убедитесь, что коэффициент работы, указанный в конфигурации, равен не менее 10. Если он ниже этого значения, вам потребуется увеличить его, чтобы обеспечить безопасность генерируемых хэшей паролей.
  • Проверьте производительность сервера: после увеличения коэффициента работы вы должны убедиться, что производительность сервера не пострадала. Это может включать тестирование времени отклика сервера и времени загрузки с различными сценариями загрузки.
  • Обновите конфигурацию: если коэффициент работы увеличен, а производительность сервера остается приемлемой, новый коэффициент работы следует сохранить в файле конфигурации, чтобы он сохранялся после перезапуска сервера. 

Важно использовать достаточно высокий коэффициент работы в bcrypt, чтобы гарантировать безопасное хеширование паролей. Фактор работы действует как «вычислительная стоимость», что затрудняет взлом хэшей паролей. Поскольку вычислительная мощность со временем увеличивается, вам может потребоваться увеличить коэффициент работы, чтобы поддерживать тот же уровень безопасности.

Additional:#

https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html

https://blog.ircmaxell.com/2015/03/security-issue-combining-bcrypt-with.html