Особенностью новой версии является появление поддержки FPGA (в дополнение к CPU, GPU и Xeon Phi). Для плат
Для bcrypt, достигнутая производительность в ~119k c/s при 2^5 итераций («$2b$05») с потребляемой мощностью около ~27 ватт существенно превосходит результаты для новейших GPU в расчете на плату, на цену оборудования и на ватт. Также поддерживаются
Для ускорения работы реализовано применение маски (режим «—mask», в том числе в комбинации с другими режимами) и сравнение вычисленных хешей с загруженными на стороне FPGA. С точки зрения реализации, во многих из дизайнов (например, для
Другие важные изменения:
- Поддержка большого количества дополнительных типов хешей, шифров и т.п., включая как классические хеши паролей (например, от новых версий QNX), так и кошельки криптовалют, шифрованные архивы и шифрованные файловые системы (например, Bitlocker и FreeBSD geli), а также поддержку новых разновидностей форматов, поддерживаемых ранее (например, добавлена поддержка bcrypt-pbkdf для OpenBSD softraid) и многое другое. В общей сложности, добавлено 80 форматов на CPU и 47 на OpenCL. Общее количество форматов теперь 407 на CPU (или 262 не включая «dynamic» форматы, настраиваемые из файлов конфигурации) и 88 на OpenCL.
- Κατάργηση της υποστήριξης γλώσσας CUDA υπέρ του OpenCL, το οποίο δεν παρεμβαίνει στην πλήρη χρήση της GPU NVIDIA (και μάλιστα βοηθά, χάρη στην εστίαση της ανάπτυξης και των βελτιστοποιήσεων σε μία υλοποίηση κάθε μορφής κάτω από την GPU αντί για δύο υλοποιήσεις πριν).
- Υποστήριξη για νέα σύνολα εντολών SIMD - AVX2, AVX-512 (συμπεριλαμβανομένης της δεύτερης γενιάς Xeon Phi) και MIC (για την πρώτη γενιά) - καθώς και πιο καθολική και ολοκληρωμένη χρήση του SIMD σε υλοποιήσεις πολλών μορφών, συμπεριλαμβανομένης της χρήσης προηγουμένως υποστηριζόμενων σετ εντολών σε AVX και XOP σε x86(-64) και
NEON, ASIMD и AltiVec на ARM, Aarch64 и POWER, соответственно. - Πολυάριθμες βελτιστοποιήσεις για CPU και OpenCL, τόσο για να λειτουργούν πιο αποτελεσματικά με μεγάλο αριθμό κατακερματισμών ταυτόχρονα (για παράδειγμα, φόρτωση 320 εκατομμυρίων κατακερματισμών SHA-1 στη GPU) όσο και για αύξηση της ταχύτητας υπολογισμού κατακερματισμού. Ορισμένες από αυτές τις βελτιστοποιήσεις είναι καθολικές, κάποιες καλύπτουν διάφορα υποσύνολα μορφών και πολλές αφορούν συγκεκριμένες μορφές.
- (Авто-)настройка оптимальной буферизации проверяемых паролей на CPU («—tune=auto —verbosity=5») и оптимальных размерностей задания на OpenCL (включена по умолчанию), в том числе с учетом медленного выхода на полную рабочую частоту GPU серии NVIDIA GTX 10xx и новее. Использование реально загруженных хешей и реальной длины проверяемых паролей (когда она известна заранее) для такой авто-настройки.
- Добавление компилятора «динамических выражений», указываемых прямо на командной строке и реализующих новые гибридные типы хешей, например «—format=dynamic=’sha1(md5($p).$s)'», вычисляемые на CPU с использованием SIMD. В качестве компонентов таких выражений поддерживаются десятки быстрых хешей (от распространенных вроде MD5 до умеренно экзотических вроде Whirlpool), объединение подстрок, кодирование и декодирование, преобразование регистра символов, ссылки на пароль, соль, имя пользователя и строковые константы.
- Εξάλειψη ανεπιθύμητων διαφορών από το hashcat, συμπεριλαμβανομένης της υποστήριξης για εντολές κανόνων λίστας λέξεων που προηγουμένως ήταν συγκεκριμένες για το hashcat, μετάβαση στην αρίθμηση συσκευών OpenCL από το 1, χρησιμοποιώντας τα ίδια μήκη προεπιλεγμένου κωδικού πρόσβασης (συνήθως μήκος 7) για δοκιμές απόδοσης.
- Νέες λειτουργίες σπασίματος, συμπεριλαμβανομένου του PRINCE από το hashcat (δημιουργεί "φράσεις" συνενώνοντας πολλές λέξεις σε αύξουσα σειρά συνολικού μήκους), υποσύνολα (φέρνει κωδικούς πρόσβασης με όχι αρκετούς διαφορετικούς χαρακτήρες, ακόμη κι αν αυτοί οι χαρακτήρες προέρχονται από ένα μεγάλο σύνολο πιθανών) και υβριδικοί εξωτερικοί (επιτρέπει σε εξωτερικές λειτουργίες, που περιγράφονται σε αρχεία διαμόρφωσης σε γλώσσα τύπου C, να δημιουργούν πολλούς επαληθεύσιμους κωδικούς πρόσβασης βάσει κάθε βασικής "λέξης" που λαμβάνεται από άλλη λειτουργία). Επίσης, αρκετές νέες προκαθορισμένες εξωτερικές λειτουργίες.
- Πρόσθετες λειτουργίες για τη χρήση πολλών λειτουργιών ταυτόχρονα (το ένα πάνω στο άλλο - στοίβαξη), καθώς και για τέτοια χρήση συνόλων κανόνων (στοίβαξη κανόνων λίστας λέξεων).
- Βελτιώσεις στις λειτουργίες μάσκας (σταδιακή επέκταση της μάσκας στο καθορισμένο εύρος μηκών, εφαρμογή της μάσκας στο πλάι μιας συσκευής OpenCL ή πλακέτας FPGA) και μεμονωμένης ρωγμής (λογική συμπεριφορά σε συσκευές που υπολογίζουν μεγάλο αριθμό κατακερματισμών παράλληλα, που προηγουμένως σε αυτήν τη λειτουργία δεν υπήρχαν κωδικοί πρόσβασης για έλεγχο, καθώς και περιορισμοί στην κατανάλωση μνήμης).
- Πολλές βελτιώσεις στην υποστήριξη για Unicode και άλλες κωδικοποιήσεις σε διάφορα υποσυστήματα.
- Πολλές βελτιώσεις στα προγράμματα *2john (μετατροπή αρχείων διαφόρων μορφών σε
χρήση με τον john), ειδικά το wpapcap2john (διαχειρίζεται την κυκλοφορία WiFi). - Πολλές νέες επιλογές γραμμής εντολών, ρυθμίσεις john.conf, επιλογές ρύθμισης παραμέτρων σεναρίου και οι αντίστοιχες νέες δυνατότητες τους, δεν αναφέρθηκαν όλες εδώ.
- Βελτίωση της ποιότητας κώδικα λόγω της ενσωματωμένης υποστήριξης για εκδόσεις εντοπισμού σφαλμάτων με το AddressSanitizer (προηγουμένως) και το UndefinedBehaviorSanitizer (προστέθηκε), η προσθήκη ενός ενσωματωμένου fuzzer μορφής (μέσα στο GSoC 2015), χρησιμοποιώντας συνεχή ενοποίηση (κατασκευές για δεκάδες συνδυασμούς λειτουργικών συστημάτων και μεταγλωττιστών και δοκιμάζοντας τα για σωστή υποστήριξη όλων των μορφών).
Πηγή: opennet.ru