John the Ripper


John The Ripper (досл. Джон-потрошитель) — свободная программа, предназначенная для восстановления паролей по их хешам. Основное назначение программы — аудит слабых паролей в UNIX системах путём перебора возможных вариантов. ПО JtR способно создавать словари любой сложности, а также извлекать хеш из файла, что является одной из самых сильных сторон JtR по сравнению с аналогичными программами. Программа также может выполнять аудит NTLM хешей, Kerberos, и др. Существуют реализации под различные ОС. Весьма популярна из-за поддержки большого количества хешей, автораспознавания хеша и настраиваемого взломщика. Также поддерживает множество модулей, включая сторонние, предоставляющих поддержку MD4 хешей, LDAP и MySQL паролей и т. д. Кроме хешей паролей доступен перебор паролей к архивам, атаки на методы аутентификации (WPA, HMAC,…). Существует кросс-платформенный графический интерфейс Johny — GUI[2], который требуется устанавливать отдельно. На 2012 год поддерживалось более 30 форматов в jumbo версии[1]. По состоянию на июль 2018 года JtR bleeding-jumbo версия поддерживает 262 формата[3].

John The Ripper проводит атаку по словарю, полный перебор и гибридный режим атаки. В режиме атаки по словарю программа берёт предполагаемые пароли из указанного файла, вычисляет хеш и сверяет его с атакуемым хешем. Слова из словаря могут модифицироваться по настраиваемой системе правил. С программой поставляется словарь на 4 млн строк[4]. В режиме брутфорса программа перебирает все возможные комбинации пароля, может использоваться вероятностный подход, в котором сперва проверяются статистически более популярные сочетания символов[1][5].

Перебор осуществляется на центральном процессоре компьютера, имеются оптимизированные для SSE, XOP, AVX, MMX версии. Многие хеши могут вычисляться одновременно на нескольких ядрах одного ПК при помощи OpenMP. Лишь для некоторых видов хешей доступно использование современных[когда?] карт видеоускорителей для вычислений при помощи интерфейсов Nvidia CUDA и универсального OpenCL[1].

Может использоваться для восстановления утраченных (забытых) паролей и для проверки сложности паролей[6].