John the Ripper 1.9.0-jumbo-1 med FPGA-støtte

Løslatt ny versjon av det eldste støttede passordgjettingsprogrammet John the Ripper 1.9.0-jumbo-1. (Prosjektet har vært under utvikling siden 1996.) On prosjektsiden Kilder er tilgjengelige for nedlasting, samt ferdige sammenstillinger for Windows.

Det bemerkes at 1.8.0 år har gått siden utgivelsen av versjon 1-jumbo-4.5, hvor det ble gjort mer enn 6000 endringer (git commits) fra mer enn 80 utviklere. I løpet av denne perioden anbefalte utviklerne å bruke gjeldende utgave fra GitHub, hvis tilstand ble holdt stabil til tross for endringene som ble gjort takket være kontinuerlig integrering, som inkluderer foreløpig verifisering av hver endring (pull request) på mange plattformer. En spesiell funksjon i den nye versjonen er utseendet til støtte for FPGA (FPGA) i tillegg til CPU, GPU og Xeon Phi.


For brett ZTEX 1.15y, inkludert 4 FPGA-brikker og opprinnelig hovedsakelig brukt til Bitcoin-gruvedrift, er 7 typer passordhasher implementert: bcrypt, classic descrypt (inkludert bigcrypt), sha512crypt, sha256crypt, md5crypt (inkludert Apache apr1 og AIX smd5), Drupal7 og phpass (brukt , spesielt i WordPress). Noen av dem er implementert på FPGA for første gang. For bcrypt, den oppnådde ytelsen på ~119k c/s med 2^5 iterasjoner ("$2b$05") med et strømforbruk på ca. 27 watt overgår betydelig resultatene for de nyeste GPUene per kort, per maskinvarepris og per watt. Støttes også klynger av brett av denne typen, som har blitt testet opptil 16 brett (64 FPGAer) kontrollert fra en enkelt Raspberry Pi 2. Den vanlige John the Ripper-funksjonaliteten støttes, inkludert alle passordgjettingsmoduser og samtidig nedlasting av et stort antall hashes. For å få fart på arbeidet implementerte vi bruken av en maske («--mask»-modusen, inkludert i kombinasjon med andre moduser) og sammenligning av de beregnede hashene med de som er lastet på FPGA-siden. Fra et implementeringsperspektiv kan mange av designene (f.eks. sha512crypt og Drupal7) blokker som består av flertrådede prosessorkjerner (myke CPU-kjerner) som samhandler med kryptografiske kjerner, brukes. Utviklingen av denne funksjonaliteten ble ledet av Denis Burykin i koordinering med andre jumboutviklere.

Andre store endringer:

  • Støtte for et stort antall tilleggstyper hasher, chiffer osv., inkludert både klassiske passordhasher (for eksempel fra nye versjoner av QNX), så vel som kryptovaluta-lommebøker, krypterte arkiver og krypterte filsystemer (for eksempel Bitlocker og FreeBSD geli), samt støtte for nye typer formater som tidligere er støttet (for eksempel lagt til støtte for bcrypt-pbkdf for OpenBSD softraid) og mye mer. Totalt er det lagt til 80 formater på CPU og 47 på OpenCL (og et lite antall gamle er fjernet som integrert i nye og utdaterte). Det totale antallet formater er nå 407 på CPU (eller 262 ikke inkludert "dynamiske" formater konfigurert fra konfigurasjonsfiler) og 88 på OpenCL.
  • Nekter å støtte CUDA-språket til fordel for OpenCL, som på ingen måte forstyrrer full bruk av NVIDIA GPUer (og til og med hjelper, takket være å fokusere utvikling og optimalisering på én implementering av hvert format for GPU i stedet for to implementeringer tidligere).
  • Støtte for nye SIMD-instruksjonssett - AVX2, AVX-512 (inkludert for andre generasjon Xeon Phi) og MIC (for første generasjon) - samt mer universell og fullstendig bruk av SIMD i implementeringer av mange formater, inkludert bruk av tidligere støttede instruksjonssett opp til AVX og XOP på x86(-64) og
    NEON, ASIMD og AltiVec på henholdsvis ARM, Aarch64 og POWER. (Delvis som en del av GSoC 2015.)
  • Tallrike optimaliseringer for CPU og OpenCL, både for å jobbe mer effektivt med et stort antall hashes samtidig (for eksempel ble lasting av 320 millioner SHA-1-hasher på GPUen testet), og for å øke hastigheten på hash-beregninger. Noen av disse optimaliseringene er universelle, noen dekker ulike undersett av formater, og mange er spesifikke for individuelle formater.
  • (Auto-)konfigurasjon av optimal bufring av sjekkede passord på CPU (“—tune=auto —verbosity=5”) og optimale jobbstørrelser på OpenCL (aktivert som standard), inkludert å ta hensyn til den langsomme opptrappingen av NVIDIA GTX serie GPUer til full driftsfrekvens 10xx og nyere. Bruker faktisk innlastede hashes og den faktiske lengden på passordene som kontrolleres (når det er kjent på forhånd) for slik autoinnstilling.
  • Legge til en kompilator for "dynamiske uttrykk" spesifisert direkte på kommandolinjen og implementere nye hybrid-hash-typer, for eksempel "-format=dynamic='sha1(md5($p).$s)'", beregnet på CPU ved hjelp av SIMD . Som komponenter av slike uttrykk støttes dusinvis av raske hashes (fra vanlige som MD5 til moderat eksotiske som Whirlpool), understrengsammenkobling, koding og dekoding, konvertering av store og små bokstaver, referanser til passord, salt, brukernavn og strengkonstanter.
  • Eliminering av uønskede forskjeller fra hashcat, inkludert støtte for tidligere hashcat-spesifikke regler (ordlisteregelkommandoer), overgang til OpenCL-enhetsnummerering fra 1, standardbruk av samme passordlengder (vanligvis lengde 7) for ytelsestester.
  • Nye moduser for å generere verifiserbare passord (cracking-moduser), inkludert PRINCE fra hashcat (danner "fraser" ved å kombinere flere ord i økende rekkefølge av total lengde), undersett (får opp passord med et utilstrekkelig antall forskjellige tegn, selv om disse tegnene kommer fra et stort sett med mulige) og hybrid ekstern (tillater eksterne moduser, beskrevet i konfigurasjonsfiler på et C-lignende språk, å generere mange verifiserbare passord basert på hvert grunnleggende "ord" mottatt fra en annen modus). Også flere nye forhåndsdefinerte eksterne moduser.
  • Tilleggsfunksjoner for å bruke flere moduser samtidig (den ene oppå den andre - stabling), samt for bruk av sett med regler (ordlisteregler stabling).
  • Forbedringer av maskemodusene (gradvis strekking av masken i et spesifisert lengdeområde, påføring av en maske på siden av OpenCL-enheten eller FPGA-kortet) og enkelt sprekk (rimelig oppførsel på enheter som beregner et stort antall hashes parallelt , som det tidligere ikke var nok kontrollerbare passord for i denne modusen, og også begrensninger på minneforbruk).
  • Mange forbedringer av støtte for Unicode og andre kodinger i forskjellige undersystemer.
  • Mange forbedringer av *2john-programmer (som konverterer filer med forskjellige formater for
    bruk med john), spesielt wpapcap2john (håndterer WiFi-trafikk).
  • Det er mange nye kommandolinjealternativer, innstillinger i john.conf, konfigurer skriptalternativer og tilsvarende nye funksjoner, som ikke alle ble nevnt her.
  • Forbedrer kodekvalitet takket være innebygd støtte for feilsøkingsbygg med AddressSanitizer (tidligere) og UndefinedBehaviorSanitizer (lagt til), legger til en innebygd formatfuzzer (som en del av GSoC 2015), ved bruk av kontinuerlig integrasjon (bygg for dusinvis av operativsystemer og kompilatorer kombinasjoner og teste dem for riktig støtte for alle formater).

Kilde: linux.org.ru

Legg til en kommentar