Как работают временные атаки и почему строковые утилиты Symfony предлагают точный порядок передачи строк для сравнения

Для сравнения хешированного пароля с предоставленным пользователем есть утилита StringUtilпредоставлено Symfony.

В документации говорится о «временных атаках»: злоумышленник может иметь полезную информацию о сложности пароля, отслеживая время, необходимое веб-сайту для сравнения предоставленного пароля с тем, который он хранит.

документация говорит также, что

Чтобы избежать временных атак, известная строка должна быть первым аргументом
и введенная пользователем строка вторая.

Почему заказ имеет значение?

0

Решение

На основе текущая версия StringUtils, это на самом деле не имеет значения. Что имеет значение, так это правильный порядок, например, password_verify(),

Документация, вероятно, ссылается на 2014 и более ранние версии StringUtils, который пытался избежать утечки длины строки. Во время обсуждения укрепить этот класс против конфигурации mbstring.func_overload, было решено, что длина утечки неизбежна, длина строки обычно является общедоступной (то есть для MAC), и, как правило, лучше сосредоточиться на предотвращении утечки полезной информации.

В таком случае порядок имел значение, но теперь это не так.

Я бы назвал это устаревшей проблемой документации. я открыл галочку в symfony-docs исправить это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]