Доступен crypt_blowfish 1.1 с устранением уязвимости, упрощающей подбор некоторых паролей
Проблема проявляется в crypt_blowfish при использовании в тексте пароля восьмибитовых символов, например, русских букв. Примерно 30% паролей, содержащих один восьмибитовый символ теряют при генерации хэша от одного до трех предыдущих символов исходного пароля. Например, если используется пароль из 11 символов, среди которых один символ с установленным восьмым битом, то результирующий хэш может быть построен на основании только 8 символов. Чем больше восьмибитовых символов используется в пароле, тем больше вероятность снижения стойкости хэша. Проблема безопасности проявляется только для паролей нечетной длины и паролей длиной от 20 символов (в том числе для четных длин).
На практике пароли, содержащие не ASCII символы, встречаются довольно редко, а те, что используются, как правило имеют большую длину или усложнены. Что частично компенсирует возможный ущерб от наличия данной ошибки и отчасти объясняет то, что проблема оставалась незамеченной более 10 лет. При установке crypt_blowfish 1.1 следует иметь в виду, что ранее созданные некорректные хэши после обновления перестанут совпадать проверяемыми корректными хэшами, что потребует от некоторых пользователей изменения пароля для продолжения работы. В качестве запасного варианта предусмотрена возможность замены стандартного префикса хэша "$2a$" на "$2x$", при сверке которого будет использован старый метод генерации хэша.
Помимо исправления ошибки в crypt_blowfish 1.1 добавлен код быстрого само-тестирования функции хэширования при каждом вызове, в том числе на 8-битных символах. Затраты на такое тестирование - около 0.6% при типичных настройках ("$2a$08").
Источник: http://www.opennet.ru/opennews/art.shtml?num=30953
|
0 | Tweet | Нравится |
|