В библиотеке crypt_blowfish 1.1 (http://www.openwall.com/crypt/), используемой для хэширования паролей в таких дистрибутивах, как ALT Linux, Owl и SUSE, а а также для генерации хэшей в PHP 5.3.0+, исправлена ошибка (http://www.openwall.com/lists/announce/2011/06/21/1), присутствовавшая в коде на протяжении 13 лет и заметно снижавшая стойкость паролей, содержащих восьмибитовые символы. Проблема была выявлена (http://www.openwall.com/lists/john-dev/2011/06/20/3) в процессе тестирования эффективности John the Ripper - разработчики тестового комплекта обратили внимание, что для генерируемого с одними и теми же параметрами пароля, хэш функция отличается для реализаций bcrypt в OpenBSD и библиотеке crypt_blowfish.Проблема проявляется (http://www.openwall.com/lists/oss-security/2011/06/20/2) в crypt_blowfish при использовании в тексте пароля восьмибитовых символов, например, русских букв. Примерно 3 из 16 паролей, содержащих один восьмибитовый символ теряют при генерации хэша 3 преды...
URL: http://www.openwall.com/lists/announce/2011/06/21/1
Новость: http://www.opennet.me/opennews/art.shtml?num=30953
Нечего пароли из русских букв составлять.
А из китайских можно?
Восьмибитных.
Всё таки OpenBSD - рулез!PS: Не во всём конечно, но всё же :)
При чём тут опенбсд?
Это весьма типичная ошибка. Проблема собственно в том, что если двоичное число 1111 1111 считать имеющее знак (signed char), то при расширении его до 16 бит это будет число 1111 1111 1111 1111, а если без знака (unsigned char), то 0000 0000 1111 1111. В этом и ошибка по теме.
>При чём тут опенбсд?
>>"хэш функция отличается для реализаций bcrypt в OpenBSD и библиотеке crypt_blowfish."Переводил правда какой то деревянный - вот оригинал от самого Solar Designer'a":
"The impact of this bug was that most (but not all) passwords containing non-ASCII characters with the 8th bit set were hashed incorrectly, resulting in password hashes incompatible with those of OpenBSD's original implementation of bcrypt."Как ты видишь этой "весьма типичной ошибки" в опенке нет.
>>При чём тут опенбсд?
>>>"хэш функция отличается для реализаций bcrypt в OpenBSD и библиотеке crypt_blowfish."
> Переводил правда какой то деревянныйНе переводил деревянный, а квотил деревянный, там фраза совсем из другого контекста и как раз о том, что результат выполнения bcrypt в OpenBSD и crypt_blowfish не совпадает:
"Проблема была выявлена в процессе тестирования эффективности John the Ripper - разработчики тестового комплекта обратили внимание, что для генерируемого с одними и теми же параметрами пароля, хэш функция отличается для реализаций bcrypt в OpenBSD и библиотеке crypt_blowfish."
Во-первых, хочу еще раз извиниться за эту нелепую ошибку и за то что мы ее не обнаружили раньше.Во-вторых, я вносил некоторые правки в текст новости уже после ее публикации, т.к. последствия проблемы все еще исследовались. Вот как именно она проявляется для русских слов в koi8-r и utf-8 (очень по-разному): http://www.openwall.com/lists/oss-security/2011/06/24/1 (в текст новости эта ссылка тоже добавлена, но думаю ее мало кто заметил).