John the Ripper 1.9.0-jumbo-1 med FPGA support

Udgivet den nye version af det ældste understøttede program til password cracking, John the Ripper 1.9.0-jumbo-1. (Projektet har været under udvikling siden 1996.) på projektets side kan kildekoderne downloades, ligesom de færdige builds til Windows.

Det bemærkes, at der er gået 4,5 år siden udgivelsen af version 1.8.0-jumbo-1, i hvilken periode der er foretaget over 6000 ændringer (git commits) af mere end 80 udviklere. I denne periode har udviklerne anbefalet at bruge den nuværende udgave fra GitHub, hvis tilstand er blevet opretholdt stabil trods de ændringer, der er foretaget takket være kontinuerlig integration, som inkluderer forudgående kontrol af hver ændring (pull request) på mange platforme. Et kendetegn ved den nye version er tilføjelsen af FPGA (Field Programmable Gate Array) understøttelse udover CPU, GPU og Xeon Phi.


For kort ZTEX 1.15y, der inkluderer 4 FPGA-chips og oprindeligt blev anvendt hovedsageligt til Bitcoin mining, er der nu implementeret 7 typer password hashing: bcrypt, klassisk descrypt (inklusive bigcrypt), sha512crypt, sha256crypt, md5crypt (inklusive Apache apr1 og AIX smd5), Drupal7 og phpass (brugt blandt andet i WordPress). Nogle af dem er blevet implementeret på FPGA for første gang. For bcrypt er 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 resultaterne for de nyeste GPU'er pr. kort, hvad angår udstyrspris og watt. Der understøttes også klynger fra kort af denne slags, hvilket er blevet testet op til 16 kort (64 FPGA'er), styret fra en enkelt Raspberry Pi 2. Den almindelige funktionalitet i John the Ripper, herunder alle tilstande for password cracking og samtidig indlæsning af et stort antal hashes, understøttes. For at accelerere arbejdet er der implementeret brug af maske ("–mask"-tilstand, herunder i kombination med andre tilstande) og sammenligning af de beregnede hashes med de indlæste på FPGA-siden. Med hensyn til implementering er mange af designene (f.eks. til sha512crypt og Drupal7) anvendt blokke bestående af multitrådede kerner (soft CPU cores), der interagerer med kryptografiske kerner. Udviklingen af denne funktionalitet blev udført af Denis Burykin i coordination med andre jumbo-udviklere.

Andre vigtige ændringer:

  • Understøttelse af et stort antal ekstra hash-typer, krypteringer osv., herunder både klassiske adgangskode-hash (for eksempel fra de nye versioner af QNX), samt kryptovaluta-punge, krypterede arkiver og krypterede filsystemer (for eksempel Bitlocker og FreeBSD geli), samt støtte for nye varianter af formater, der hidtil var understøttet (for eksempel er bcrypt-pbkdf til OpenBSD softraid blevet tilføjet) og meget mere. I alt er 80 formater blevet tilføjet til CPU og 47 til OpenCL (og et lille antal gamle er blevet fjernet, da de er integreret i de nye og forældede versioner). Det samlede antal formater er nu 407 på CPU (eller 262 uden de 'dynamiske' formater, der kan konfigureres fra konfigurationsfiler) og 88 på OpenCL.
  • Opgiver understøttelsen af CUDA-sproget til fordel for OpenCL, hvilket ikke hindrer den fulde brug af NVIDIA's GPU (og endda hjælper, takket være fokuseringen på udvikling og optimeringer på én implementering af hvert format til GPU i stedet for to implementeringer tidligere).
  • Understøttelse af nye SIMD-instruktionssæt - AVX2, AVX-512 (inklusive for den anden generation Xeon Phi) og MIC (for den første generation) - samt mere universel og omfattende brug af SIMD i implementeringer af mange formater, herunder anvendelse af tidligere understøttede instruktionssæt op til AVX og XOP på x86(-64) og
    NEON, ASIMD og AltiVec på ARM, Aarch64 og POWER, henholdsvis. (Delvist under GSoC 2015.)
  • Talrige optimeringer for CPU og OpenCL, både for mere effektivt at arbejde med mange hasher samtidigt (f.eks. blev belastningen af 320 millioner SHA-1 hasher på GPU testet) såvel som for at øge hastigheden af hash-beregnede. Nogle af disse optimeringer er universelle, nogle dækker forskellige delmængder af formater, mens mange er specifikke for enkelte formater.
  • (Auto-)justering af den optimale buffer til de kontrollerede adgangskoder på CPU ('—tune=auto —verbosity=5') og optimale størrelser på opgaverne på OpenCL (inkluderet som standard), herunder hensyntagen til den langsomme stigning til fuld GPU-driftshastighed for NVIDIA GTX 10xx-serien og nyere. Brug af faktisk belastede hash og den faktiske længde af de kontrollerede adgangskoder (når den er kendt på forhånd) til sådan auto-justering.
  • Tilføjelse af en 'dynamiske udtryk' compiler, der angives direkte på kommandolinjen og implementerer nye hybride hash-typer, for eksempel '—format=dynamic=’sha1(md5($p).$s)’', beregnet på CPU med brug af SIMD. Som komponenter i sådanne udtryk understøttes dusinvis af hurtige hashes (fra almindelige som MD5 til moderat eksotiske såsom Whirlpool), sammenkædning af substrings, kodning og dekodning, konvertering af tegnregistrering, referencer til adgangskode, salt, brugernavn og strengkonstanter.
  • Fjernelse af uønskede forskelle fra hashcat, herunder understøttelse af tidligere hashcat-specifikke regler (wordlist rule commands), overgang til numerering af OpenCL-enheder fra 1, anvendelse af de samme standard længder på adgangskoder (normalt længde 7) ved ydeevnetests.
  • Nye tilstande for generering af kontrollerede adgangskoder (cracking modes), herunder PRINCE fra hashcat (danner 'sætninger' ved at samle flere ord i rækkefølge efter stigende samlet længde), subsets (vælger adgangskoder med utilstrækkeligt antal forskellige tegn, selvom disse tegn kommer fra et stort sæt af muligheder) og hybrid external (gør det muligt for eksterne tilstande, der er beskrevet i konfigurationsfiler på C-lignende sprog, at danne mange kontrollerede adgangskoder baseret på hvert grundlæggende 'ord' fra en anden tilstand). Desuden flere nye foruddefinerede eksterne tilstande.
  • Yderligere muligheder for at bruge flere tilstande samtidigt (en oven på den anden — stacking), såvel som for at bruge sæt af regler (wordlist rules stacking) på samme måde.
  • Forbedringer af masketilstande (gradvis udvidelse af masken inden for et angivet længdeområde, anvendelse af masken på OpenCL-enheden eller FPGA-kortet) og single crack (fornuftig adfærd på enheder, der beregner et stort antal hashes parallelt, hvilket før i denne tilstand ikke havde tilstrækkelige kontrollerede adgangskoder, såvel som begrænsninger på hukommelsesforbrug).
  • Mange forbedringer af understøttelse af Unicode og andre kodninger i forskellige undersystemer.
  • Mange forbedringer af programmerne *2john (der konverterer filer fra forskellige formater til
    brug med john), især wpapcap2john (behandler WiFi-trafik).
  • Mange nye kommandolinjeindstillinger, indstillinger i john.conf, konfigurationsscriptindstillinger og de dertilhørende nye funktioner, ikke alt er blevet nævnt her.
  • Forbedring af kodekvalitet takket være indbygget support til fejlsøgningsbuilds med AddressSanitizer (tidligere) og UndefinedBehaviorSanitizer (tilføjet), tilføjelse af indbygget fuzzere for formater (i forbindelse med GSoC 2015), anvendelse af kontinuerlig integration (builds på mange kombinationer af operativsystemer og compilere og testning i dem korrekt support af alle formater).

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster