Wydanie John the Ripper 1.9.0-jumbo-1 z obsługą FPGA

Wydano nowa wersja najstarszego wspieranego programu do łamania haseł John the Ripper 1.9.0-jumbo-1 (projekt rozwija się od 1996 roku). Od wydania poprzedniej wersji 1.8.0-jumbo-1 minęło 4,5 roku, w trakcie których wprowadzono ponad 6000 zmian (git commits) od ponad 80 deweloperów. Dzięki ciągłej integracji, której stan utrzymywał się stabilny mimo wprowadzanych zmian. Podstawowy kod projektu aktualnej wersji na GitHubiejest objęty licencją GPLv2+, a kod niektórych komponentów licencją BSD. rozpowszechniany Cechą nowej wersji jest dodanie wsparcia dla FPGA (obok CPU, GPU i Xeon Phi). Dla płyt

, które zawierają 4 chipy FPGA i były pierwotnie używane głównie do wydobywania Bitcoin, teraz wprowadzono 7 typów haseł: bcrypt, klasyczny descrypt (w tym bigcrypt), sha512crypt, sha256crypt, md5crypt (w tym Apache apr1 i AIX smd5), Drupal7 oraz phpass (stosowany m.in. w WordPress). Niektóre z nich są realizowane na FPGA po raz pierwszy. ZTEX 1.15yDla bcrypt osiągnięta wydajność to ~119k c/s przy 2^5 iteracjach („$2b$05”) z mocą pobieraną wynoszącą ~27 watów, co znacząco przewyższa wyniki dla najnowszych GPU w przeliczeniu na płytę, cenę sprzętu i watt. Wspierane są również

płyty tego typu, co zostało sprawdzone aż do 16 płyt (64 chipy FPGA) kontrolowanych z jednego Raspberry Pi 2. Wspierana jest standardowa funkcjonalność John the Ripper, w tym wszystkie tryby łamania haseł oraz jednoczesne ładowanie dużej liczby hashy. klastry Aby przyspieszyć działanie wprowadzono zastosowanie maski (tryb „—mask”, w tym w połączeniu z innymi trybami) i porównywanie obliczonych hashy z załadowanymi po stronie FPGA. Z punktu widzenia realizacji, w wielu projektach (na przykład dla

Inne ważne zmiany: sha512crypt i Drupal7) zastosowano bloków z wielowątkowymi rdzeniami procesorów (soft CPU cores), współdziałającymi z rdzeniami kryptograficznymi. Rozwój tej funkcjonalności prowadził Denis Burykin we współpracy z innymi programistami jumbo.

Inne ważne zmiany:

  • Wsparcie dla dużej liczby dodatkowych typów skrótów, szyfrowania, itd., w tym zarówno klasycznych skrótów haseł (na przykład od nowych wersji QNX), jak i portfeli kryptowalut, szyfrowanych archiwów oraz szyfrowanych systemów plików (na przykład Bitlocker i FreeBSD geli), a także wsparcie dla nowych rodzajów formatów, które były wcześniej obsługiwane (na przykład dodano wsparcie dla bcrypt-pbkdf dla OpenBSD softraid) i wiele innych. Łącznie dodano 80 formatów na CPU i 47 na OpenCL. Łączna liczba formatów wynosi teraz 407 na CPU (lub 262, nie wliczając „dynamicznych” formatów, konfigurowanych z plików konfiguracyjnych) oraz 88 na OpenCL.
  • Rezygnacja z obsługi języka CUDA na rzecz OpenCL, co wcale nie przeszkadza w pełnym wykorzystaniu GPU od NVIDIA (a wręcz pomaga, dzięki skoncentrowaniu rozwoju i optymalizacji na jednej implementacji każdego formatu pod GPU, zamiast dwóch implementacji wcześniej).
  • Wsparcie dla nowych zestawów instrukcji SIMD — AVX2, AVX-512 (w tym dla drugiej generacji Xeon Phi) i MIC (dla pierwszej generacji) — a także bardziej uniwersalne i pełne wykorzystanie SIMD w realizacjach wielu formatów, w tym zastosowanie wcześniej wspieranych zestawów instrukcji aż do AVX i XOP na x86(-64) oraz
    NEON, ASIMD i AltiVec na ARM, Aarch64 i POWER, odpowiednio.
  • Liczne optymalizacje dla CPU i OpenCL, zarówno dla bardziej efektywnej pracy z dużą ilością skrótów jednocześnie (np. testowano obciążenie 320 milionami skrótów SHA-1 na GPU), jak i dla zwiększenia prędkości obliczania skrótów. Część z tych optymalizacji jest uniwersalna, część obejmuje różne podzbiory formatów, a wiele jest specyficznych dla poszczególnych formatów.
  • (Auto-)konfiguracja optymalnego buforowania sprawdzanych haseł na CPU („—tune=auto —verbosity=5”) oraz optymalnych rozmiarów zadań na OpenCL (włączone domyślnie), z uwzględnieniem wolnego osiągania pełnej częstotliwości roboczej GPU serii NVIDIA GTX 10xx i nowszych. Użycie rzeczywiście załadowanych skrótów i rzeczywistej długości sprawdzanych haseł (gdy znana jest z góry) dla takiej auto-konfiguracji.
  • Dodanie kompilatora „dynamicznych wyrażeń”, podawanych bezpośrednio w wierszu poleceń i realizujących nowe hybrydowe typy skrótów, na przykład „—format=dynamic=’sha1(md5($p).$s)'”, obliczanych na CPU przy użyciu SIMD. Jako składniki takich wyrażeń obsługiwanych jest dziesiątki szybkich skrótów (od popularnych jak MD5 do umiarkowanie egzotycznych jak Whirlpool), łączenie podciągów, kodowanie i dekodowanie, konwersja rejestru znaków, odniesienia do hasła, soli, nazwy użytkownika i stałych łańcuchowych.
  • Usunięcie niepożądanych różnic w stosunku do hashcat, w tym wsparcie wcześniej specyficznych dla hashcat zasad (polecenia zasad listy słów), przejście na numerację urządzeń OpenCL od 1, stosowanie domyślnie tych samych długości haseł (zazwyczaj długość 7) podczas testów wydajnościowych.
  • Nowe tryby generowania weryfikowanych haseł (tryby łamania), w tym PRINCE z hashcat (tworzy „frazy”, łącząc kilka słów w porządku rosnącej długości całkowitej), podzbiory (dobierają hasła z niewystarczającą liczbą różnych symboli, nawet jeśli te symbole pochodziły z dużego zbioru możliwych) oraz hybrydowe zewnętrzne (pozwala zewnętrznym trybom, opisanym w plikach konfiguracyjnych w języku podobnym do C, generować wiele weryfikowanych haseł w oparciu o każde podstawowe „słowo”, pochodzące z innego trybu). Ponadto kilka nowych predefiniowanych zewnętrznych trybów.
  • Dodatkowe możliwości wykorzystania kilku trybów jednocześnie (jeden na drugim — stacking), a także dla takiego wykorzystania zestawów zasad (stacking zasad listy słów).
  • Udoskonalenia trybów mask (stopniowe rozwijanie maski w określonym zakresie długości, stosowanie maski po stronie urządzenia OpenCL lub płyty FPGA) oraz single crack (rozsądne zachowanie na urządzeniach obliczających dużą liczbę hashy równolegle, na co wcześniej w tym trybie brakowało weryfikowanych haseł, jak również ograniczenia dotyczące zużycia pamięci).
  • Wiele ulepszeń wsparcia dla Unicode i innych kodowań w różnych podsystemach.
  • Wiele ulepszeń programów *2john (konwertujących pliki różnych formatów na
    potrzeby john), szczególnie wpapcap2john (przetwarza ruch WiFi).
  • Wiele nowych opcji wiersza poleceń, ustawień w john.conf, opcji skryptu configure oraz powiązanych nowych funkcji, z których nie wszystkie udało się tutaj wymienić.
  • Poprawa jakości kodu dzięki wbudowanej obsłudze wersji debug, w tym AddressSanitizer (wcześniej) oraz UndefinedBehaviorSanitizer (dodane), wdrożeniu wbudowanego fuzzera formatów (w ramach GSoC 2015), oraz zastosowaniu ciągłej integracji (kompilacje dla dziesiątek kombinacji systemu operacyjnego i kompilatora oraz testowanie poprawnej obsługi wszystkich formatów).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster