John the Ripper 1.9.0-jumbo-1 med FPGA-stöd

Släppte ny version av det äldsta stödda lösenordsgissningsprogrammet John the Ripper 1.9.0-jumbo-1. (Projektet har utvecklats sedan 1996.) På projektsida Källor finns tillgängliga för nedladdning, såväl som färdiga sammanställningar för Windows.

Det kan noteras att det har gått 1.8.0 år sedan version 1-jumbo-4.5 släpptes, under vilken mer än 6000 80 ändringar (git commits) gjordes från mer än XNUMX utvecklare. Under denna period rekommenderade utvecklarna att använda aktuell utgåva från GitHub, vars tillstånd bibehölls stabil trots de förändringar som gjorts tack vare fortsatt integration, som inkluderar preliminär verifiering av varje ändring (pull request) på många plattformar. En speciell egenskap hos den nya versionen är utseendet på stöd för FPGA (FPGA) förutom CPU, GPU och Xeon Phi.


För brädor ZTEX 1.15y, inklusive 4 FPGA-chips och som ursprungligen användes huvudsakligen för Bitcoin-brytning, implementeras nu 7 typer av lösenordshashar: bcrypt, classic descrypt (inklusive bigcrypt), sha512crypt, sha256crypt, md5crypt (inklusive Apache apr1 och AIX smd5), Drupal7 och phpass (används , särskilt i WordPress). Några av dem implementeras på FPGA för första gången. För bcrypt överstiger den uppnådda prestandan på ~119k c/s med 2^5 iterationer ("$2b$05") med en strömförbrukning på cirka 27 watt avsevärt resultaten för de senaste GPU:erna per kort, per hårdvarupris och per watt. Stöds också kluster av kort av denna typ, som har testats upp till 16 kort (64 FPGA) styrda från en enda Raspberry Pi 2. Den vanliga John the Ripper-funktionaliteten stöds, inklusive alla lösenordsgissningslägen och samtidig nedladdning av ett stort antal hash. För att påskynda arbetet implementerade vi användningen av en mask ("--mask"-läget, inklusive i kombination med andra lägen) och jämförelse av de beräknade hasharna med de som laddades på FPGA-sidan. Ur ett implementeringsperspektiv kan många av designerna (t.ex. sha512crypt och Drupal7) block som består av flertrådade processorkärnor (mjuka CPU-kärnor) som interagerar med kryptografiska kärnor. Utvecklingen av denna funktion leddes av Denis Burykin i samordning med andra jumboutvecklare.

Andra stora förändringar:

  • Stöd för ett stort antal ytterligare typer av hash, chiffer etc., inklusive både klassiska lösenordshashar (till exempel från nya versioner av QNX), samt kryptovaluta plånböcker, krypterade arkiv och krypterade filsystem (till exempel Bitlocker och FreeBSD geli), samt stöd för nya typer av format som tidigare stöddes (till exempel lagt till stöd för bcrypt-pbkdf för OpenBSD softraid) och mycket mer. Totalt har 80 format lagts till på CPU och 47 på OpenCL (och ett litet antal gamla har tagits bort som integrerade i nya och föråldrade). Det totala antalet format är nu 407 på processorn (eller 262 utan "dynamiska" format som konfigurerats från konfigurationsfiler) och 88 på OpenCL.
  • Vägra att stödja CUDA-språket till förmån för OpenCL, vilket inte på något sätt stör den fulla användningen av NVIDIA GPU:er (och till och med hjälper, tack vare att utveckling och optimering fokuseras på en implementering av varje format för GPU istället för två implementeringar tidigare).
  • Stöd för nya SIMD-instruktionsuppsättningar - AVX2, AVX-512 (inklusive för andra generationens Xeon Phi) och MIC (för första generationen) - såväl som mer universell och komplett användning av SIMD i implementeringar av många format, inklusive användning av tidigare stödda instruktionsuppsättningar till AVX och XOP på x86(-64) och
    NEON, ASIMD och AltiVec på ARM, Aarch64 respektive POWER. (Delvis som en del av GSoC 2015.)
  • Många optimeringar för CPU och OpenCL, både för att mer effektivt arbeta med ett stort antal hash-hashar samtidigt (till exempel testades att ladda 320 miljoner SHA-1-hashar på GPU) och för att öka hastigheten på hashberäkningar. Vissa av dessa optimeringar är universella, vissa täcker olika undergrupper av format, och många är specifika för enskilda format.
  • (Auto-)konfiguration av optimal buffring av kontrollerade lösenord på CPU:n (“—tune=auto —verbosity=5”) och optimala jobbstorlekar på OpenCL (aktiverad som standard), inklusive att ta hänsyn till den långsamma uppgången av NVIDIA GTX serie GPU:er till full driftfrekvens 10xx och nyare. Använder faktiskt laddade hash och den faktiska längden på lösenorden som kontrolleras (när det är känt i förväg) för sådan autojustering.
  • Lägga till en kompilator för "dynamiska uttryck" specificerade direkt på kommandoraden och implementera nya hybridhashtyper, till exempel "-format=dynamic='sha1(md5($p).$s)'", beräknat på CPU:n med SIMD . Som komponenter i sådana uttryck stöds dussintals snabba hash (från vanliga som MD5 till måttligt exotiska som Whirlpool), delsträngssammansättning, kodning och avkodning, konvertering av skiftlägen, hänvisningar till lösenord, salt, användarnamn och strängkonstanter.
  • Eliminering av oönskade skillnader från hashcat, inklusive stöd för tidigare hashcat-specifika regler (ordlist-regelkommandon), övergång till OpenCL-enhetsnumrering från 1, standardanvändning av samma lösenordslängder (vanligtvis längd 7) för prestandatester.
  • Nya lägen för att generera verifierbara lösenord (krackningslägen), inklusive PRINCE från hashcat (bildar "fraser" genom att kombinera flera ord i ökande ordningsföljd av total längd), delmängder (får fram lösenord med ett otillräckligt antal olika tecken, även om dessa tecken kommer från en stor uppsättning möjliga) och hybrid extern (låter externa lägen, som beskrivs i konfigurationsfiler på ett C-liknande språk, generera många verifierbara lösenord baserat på varje grundläggande "ord" som tas emot från ett annat läge). Dessutom flera nya fördefinierade externa lägen.
  • Ytterligare funktioner för att använda flera lägen samtidigt (en ovanpå den andra - stapling), såväl som för att använda uppsättningar av regler (ordlist-regler stapling).
  • Förbättringar av masklägena (gradvis sträckning av masken i ett specificerat intervall av längder, applicering av en mask på sidan av OpenCL-enheten eller FPGA-kortet) och enkel spricka (rimligt beteende på enheter som beräknar ett stort antal hashs parallellt , för vilka det tidigare inte fanns tillräckligt med verifierbara lösenord i det här läget, och även restriktioner för minnesförbrukning).
  • Många förbättringar av stöd för Unicode och andra kodningar i olika delsystem.
  • Många förbättringar av *2john-program (som konverterar filer i olika format för
    använd med john), särskilt wpapcap2john (hanterar WiFi-trafik).
  • Det finns många nya kommandoradsalternativ, inställningar i john.conf, konfigurera skriptalternativ och motsvarande nya funktioner, som inte alla nämndes här.
  • Förbättrad kodkvalitet tack vare inbyggt stöd för felsökningsbyggen med AddressSanitizer (tidigare) och UndefinedBehaviorSanitizer (tillagd), lägga till en inbyggd formatfuzzer (som en del av GSoC 2015), med kontinuerlig integration (byggd för dussintals operativsystem och kompilatorer kombinationer och testa dem för korrekt stöd för alla format).

Källa: linux.org.ru

Lägg en kommentar