Доступен crypt_blowfish 1.1 с устранением уязвимости, упрощающей подбор некоторых паролей

В библиотеке crypt_blowfish 1.1, используемой для хэширования паролей в таких дистрибутивах, как ALT Linux, Owl и SUSE, а а также для генерации хэшей в PHP 5.3.0+, исправлена ошибка, присутствовавшая в коде на протяжении 13 лет и заметно снижавшая стойкость паролей, содержащих восьмибитовые символы. Проблема была выявлена в процессе тестирования эффективности John the Ripper — разработчики тестового комплекта обратили внимание, что для генерируемого с одними и теми же параметрами пароля, хэш функция отличается для реализаций блочного шифра Blowfish в OpenBSD и библиотеке crypt_blowfish.

Проблема проявляется при использовании в тексте пароля восьмибитовых символов, например, русских букв. Примерно 3 из 16 паролей, содержащих один восьмибитовый символ теряют при генерации хэша 3 предыдущих символа исходного пароля. Например, если используется пароль из 8 символов, среди которых один символ с установленным восьмым битом, то результирующий хэш может быть построен на основании только 5 символов. Чем больше восьмибитовых символов используется в пароле, тем больше вероятность снижения стойкости хэша.

На практике пароли, содержащие не ASCII символы, встречаются довольно редко, а те, что используются, как правило имеют большую длину или усложнены. Что частично компенсирует возможный ущерб от наличия данной ошибки и отчасти объясняет то, что проблема оставалась незамеченной более 10 лет. При установке crypt_blowfish 1.1 следует иметь в виду, что ранее созданные некорректные хэши после обновления перестанут совпадать проверяемыми корректными хэшами, что потребует от некоторых пользователей изменения пароля для продолжения работы. В качестве запасного варианта предусмотрена возможность замены стандартного префикса хэша «$2a$» на «$2x$», при сверке которого будет использован старый метод генерации хэша.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.