John the Ripper 1.9.0-jumbo-1 med FPGA-understøttelse

Udgivet ny version af den ældste understøttede password cracker John the Ripper 1.9.0-jumbo-1. (Projektet har været under udvikling siden 1996.) projektside kilder er tilgængelige til download, såvel som færdige samlinger til Windows.

Det bemærkes, at der er gået 1.8.0 år siden udgivelsen af ​​version 1-jumbo-4.5, hvor der er foretaget mere end 6000 ændringer (git commits) fra mere end 80 udviklere. I denne periode anbefalede udviklerne at bruge aktuelle revision fra GitHub, hvis tilstand blev holdt stabil på trods af de ændringer, der blev foretaget takket være kontinuerlig integration, som inkluderer en foreløbig kontrol af hver ændring (pull request) på mange platforme. Et træk ved den nye version er fremkomsten af ​​understøttelse af FPGA (FPGA) ud over CPU, GPU og Xeon Phi.


Til brædder Ztex 1.15y, som inkluderede 4 FPGA-chips og oprindeligt blev brugt hovedsageligt til Bitcoin-minedrift, er nu 7 typer password-hashes implementeret: bcrypt, classic descrypt (inklusive bigcrypt), sha512crypt, sha256crypt, md5crypt (inklusive Apache apr1 og AIX smd5), Drupal7 og phpass (bruges, især i WordPress). Nogle af dem er implementeret på FPGA for første gang. For bcrypt overgår den opnåede ydeevne på ~119k c/s ved 2^5 iterationer ("$2b$05") med et strømforbrug på omkring 27 watt betydeligt bedre end de seneste GPU'er pr. kort, pr. hardwarepris og pr. watt. Også understøttet klynger af boards af denne type, som testede op til 16 boards (64 FPGA'er) styret fra én Raspberry Pi 2. Den sædvanlige John the Ripper-funktionalitet understøttes, inklusive alle adgangskode-gættetilstande og samtidig download af et stort antal hashes. For at fremskynde arbejdet implementerede vi brugen af ​​en maske ("--maske"-tilstand, inklusive i kombination med andre tilstande) og sammenligning af de beregnede hashes med dem, der er indlæst på FPGA-siden. Med hensyn til implementering, i mange af designerne (f.eks. til sha512crypt og Drupal7) brugte blokke bestående af flertrådede processorkerner (bløde CPU-kerner), der interagerer med kryptografiske kerner. Udviklingen af ​​denne funktionalitet blev ledet af Denis Burykin i koordinering med andre jumbo-udviklere.

Andre større ændringer:

  • Understøttelse af en lang række yderligere typer hashes, ciphers osv., herunder både klassiske password hashes (f.eks. fra nye versioner af QNX), og cryptocurrency wallets, krypterede arkiver og krypterede filsystemer (f.eks. Bitlocker og FreeBSD geli ), samt understøttelse af nye varianter af tidligere understøttede formater (for eksempel er bcrypt-pbkdf-understøttelse af OpenBSD softraid blevet tilføjet) og meget mere. I alt er der tilføjet 80 formater på CPU'en og 47 på OpenCL (og et lille antal gamle er blevet fjernet som værende integreret i nye og forældede). Det samlede antal formater er nu 407 på CPU'en (eller 262 uden "dynamiske" formater konfigureret fra konfigurationsfiler) og 88 på OpenCL.
  • Fjernelse af CUDA-sprogunderstøttelse til fordel for OpenCL, som ikke forstyrrer den fulde brug af NVIDIA GPU i det mindste (og endda hjælper, takket være fokus på udvikling og optimeringer på en implementering af hvert format under GPU'en i stedet for to implementeringer før).
  • Understøttelse af nye SIMD-instruktionssæt - AVX2, AVX-512 (inklusive til anden generation af Xeon Phi) og MIC (til første generation) - samt mere universel og komplet brug af SIMD i implementeringer af mange formater, herunder brugen af tidligere understøttede instruktionssæt op til AVX og XOP på x86(-64) og
    NEON, ASIMD og AltiVec på henholdsvis ARM, Aarch64 og POWER. (Delvis inden for GSoC 2015.)
  • Talrige optimeringer til CPU og OpenCL, både for at arbejde mere effektivt med et stort antal hashes på samme tid (for eksempel indlæsning af 320 millioner SHA-1 hashes på GPU'en) og for at øge hash-beregningshastigheden. Nogle af disse optimeringer er universelle, nogle dækker forskellige undersæt af formater, og mange er formatspecifikke.
  • (Auto-)tuning af optimal buffering af kontrollerede adgangskoder på CPU'en ("-tune=auto --verbosity=5") og optimale jobdimensioner på OpenCL (aktiveret som standard), herunder at tage hensyn til den langsomme gendannelse til fuld drift frekvens af NVIDIA GTX-serien GPU'er 10xx og nyere. Brug af reelle indlæste hashes og reel længde af kontrollerede adgangskoder (når det er kendt på forhånd) til sådan auto-tuning.
  • Tilføjelse af en "dynamisk udtryk"-kompiler, der er angivet direkte på kommandolinjen og implementerer nye hybrid-hash-typer, for eksempel "--format=dynamic='sha1(md5($p).$s)'", beregnet på CPU'en bruger SIMD. Dusinvis af hurtige hashes (fra almindelige som MD5 til mildt eksotiske som Whirlpool), understrengsammenkædning, kodning og afkodning, konvertering af store og små bogstaver, adgangskodereferencer, salt, brugernavn og strengkonstanter understøttes som komponenter i sådanne udtryk.
  • Eliminering af uønskede forskelle fra hashcat, herunder understøttelse af tidligere hashcat-specifikke ordlisteregelkommandoer, skift til OpenCL-enhedsnummerering fra 1, brug af de samme standardadgangskodelængder (normalt længde 7) til ydeevnetest.
  • Nye cracking-tilstande, herunder PRINCE fra hashcat (genererer "sætninger" ved at sammenkæde flere ord i stigende rækkefølge af total længde), undersæt (bringer adgangskoder med ikke nok forskellige tegn, selvom disse tegn kommer fra et stort sæt af mulige) og hybrid eksterne (tillader eksterne tilstande, beskrevet i konfigurationsfiler i C-lignende sprog, at generere mange verificerbare adgangskoder baseret på hvert basis "ord" modtaget fra en anden tilstand). Også flere nye foruddefinerede eksterne tilstande.
  • Yderligere funktioner til brug af flere tilstande på samme tid (den ene oven på den anden - stabling), såvel som til sådan brug af regelsæt (ordlistereglersstabling).
  • Forbedringer af masketilstandene (gradvis maskestrækning i det angivne længdeområde, påføring af masken på siden af ​​en OpenCL-enhed eller FPGA-kort) og enkelt crack (rimelig adfærd på enheder, der beregner et stort antal hashes parallelt, hvilket tidligere i denne tilstand manglede adgangskoder, der skulle kontrolleres, og også grænser for hukommelsesforbrug).
  • Mange forbedringer i understøttelse af Unicode og andre kodninger i forskellige undersystemer.
  • Mange forbedringer til *2john-programmer (konvertering af filer i forskellige formater til
    brug med john), især wpapcap2john (håndterer WiFi-trafik).
  • Mange nye kommandolinjeindstillinger, john.conf-indstillinger, konfigurer scriptindstillinger og deres tilsvarende nye funktioner, som ikke alle er blevet nævnt her.
  • Forbedring af kodekvalitet på grund af indbygget understøttelse af debug-builds med AddressSanitizer (tidligere) og UndefinedBehaviorSanitizer (tilføjet), tilføjelse af en indbygget formatfuzzer (inden for GSoC 2015), ved hjælp af kontinuerlig integration (builds til snesevis af operativsystem- og compilerkombinationer og tester dem for korrekt understøttelse af alle formater).

Kilde: linux.org.ru

Tilføj en kommentar