Выпущена новая "community-enhanced" версия подборщика паролей John the Ripper 1.7.9-jumbo-6. Несмотря на скромное изменение номера версии, в 1.7.9-jumbo-6 вошли изменения за полгода работы, а также патчи, разработанные ранее. Всего с момента прошлого выпуска добавлено более 40 тысяч строк исходного кода, не считая измененных.
Ключевое отличие новой версии - поддержка CUDA и OpenCL, которая ранее была доступна лишь в виде отдельных патчей и для более ограниченного набора хешей. На GPU реализованы в пригодном для практического использования виде такие хеши как phpass, md5crypt, sha512crypt, sha256crypt, bcrypt, MSCash2 (Windows DCC2), а также WPA-PSK, RAR, Password Safe. Дополнительно присутствуют работоспособные, но пока неэффективные реализации "быстрых" хешей: raw MD5/SHA-1/SHA-224/SHA-256, NTLM, MSCash (Windows DCC), MySQL SHA-1, Netscape LDAP SSHA. Также, присутствуют реализации raw SHA-512 и Mac OS X 10.7 salted SHA-512, однако в них незадолго до этого релиза была обнаружена серьезная ошибка, которую удалось исправить лишь вскоре после релиза (исправление войдет в -jumbo-7).
С практической точки зрения, наиболее интересна может быть поддержка sha512crypt на GPU, которая до её появления в John the Ripper была недоступна (и в других инструментах тоже, включая проприетарные). На NVIDIA GTX 570 1600 MHz достигается скорость 11400 c/s при rounds=5000, что в 5.5 раз выше скорости имеющейся в этой же версии John the Ripper реализации на CPU, работающей на процессоре AMD FX-8120. На GPU от AMD пока результаты более скромные.
С теоретической точки зрения, интересна поддержка bcrypt на GPU, которая опять же отсутствует в других инструментах. Как и ожидалось, скорость вычисления bcrypt на GPU низкая, но тем не менее на вопрос удастся ли достичь скорости, хотя бы аналогичной CPU, получен положительный ответ: на AMD Radeon HD 7970 с частотой ядра, повышенной до 1225 MHz (на 32% выше стандартной в 925 MHz), достигается скорость аналогичная процессору AMD FX-8120 (около 5300 c/s при $2a$05). При этом температура GPU остается низкой из-за далеко неполного использования его возможностей в bcrypt.
Подобный результат может подкрепить позиции bcrypt в сравнении с sha512crypt с точки зрения перехода на один из этих хешей операционных систем, приложений, веб-сайтов и т.п. Одно дело теоретические утверждения о неэффективности bcrypt на GPU, и другое - практическая демонстрация с общедоступным исходным кодом, который каждый желающий может проверить на различных GPU и попытаться оптимизировать. Разумеется, это не является доказательством невозможности более эффективной реализации, и более того работы над дальнейшей оптимизацией ведутся и в рамках John the Ripper. Для практического применения подбор bcrypt на GPU со скоростью, аналогичной CPU, может быть актуален для специалистов, у которых уже имеются компьютеры с несколькими GPU.
Для некоторых других типов хешей и не только достигается ускорение, схожее с доступным в других программах - например, 27 раз для WPA-PSK (от 2000 до 55000 паролей в секунду) при переходе с FX-8120 на HD 7970 (на стандартной частоте).
Помимо поддержки GPU, в этой же версии появилась поддержка целого ряда хешей: IBM RACF, своя реализация sha512crypt и sha256crypt (без завязки на системную, как было раньше), Drupal 7 (вариант phpass на основе SHA-512), Django, DragonFly BSD 2.2, WoltLab BB3, новые хеши EPiServer, ГОСТ Р 34.11-94, MD4 как доступная примитива в хешах, определяемых пользователем (дополнительно к MD5 и SHA-1), а также вариант SHA-1, встречающийся в дампе LinkedIn.
Также, появилась поддержка ряда других возможностей: Mac OS X keychains, KeePass 1.x, Password Safe, файлы ODF, документы Office 2007/2010, master-пароли Mozilla Firefox/Thunderbird, архивы RAR в режиме "-p" (режим "-hp" поддерживался и ранее), WPA-PSK/WPA2-PSK, аутентификация VNC и SIP, HMAC-SHA-1/224/256/384/512.
Наконец, были добавлены некоторые функции в основную программу (например, встроенный режим --loopback, при котором ранее подобранные пароли используются как словарь для подбора новых), поддержка OpenMP-параллелизации расширена еще на пару десятков вещей (как поддерживавшихся ранее, так и новых), добавлены оптимизации, включая использование AES-NI через свежие версии OpenSSL при подборе пароля к RAR-архивам и использование AMD XOP (на Bulldozer) для многих хешей на основе MD4, MD5, SHA-1 (использование XOP для DES появилось в одной из предыдущих версий). В частности, для md5crypt благодаря XOP достигается скорость в 204k c/s на FX-8120, что примерно на 20% выше результата для Core i7-2600 с AVX (ранее, без использования XOP, наоборот, процессор от AMD отставал).