John the Ripper 1.9.0-jumbo-1 con supporto FPGA

Rilasciato nuova versione del programma di cracking delle password John the Ripper 1.9.0-jumbo-1. (Il progetto è attivo dal 1996.) Su pagina del progetto sono disponibili per il download i sorgenti, così come le build pronte per Windows.

Si segnala che sono trascorsi 4,5 anni dall'uscita della versione 1.8.0-jumbo-1, durante i quali sono state apportate oltre 6000 modifiche (git commits) da più di 80 sviluppatori. Durante questo periodo gli sviluppatori hanno raccomandato di utilizzare l'edizione attuale da GitHub, il cui stato è rimasto stabile nonostante le modifiche grazie a all'integrazione continua, che include una revisione preliminare di ogni modifica (pull request) su molte piattaforme. Una delle caratteristiche della nuova versione è l'introduzione del supporto FPGA (Field Programmable Gate Array) oltre a CPU, GPU e Xeon Phi.


Per le schede ZTEX 1.15y, che includono 4 chip FPGA e inizialmente utilizzate principalmente per il mining di Bitcoin, ora sono implementati 7 tipi di hash delle password: bcrypt, descrypt classico (incluso bigcrypt), sha512crypt, sha256crypt, md5crypt (incluso Apache apr1 e AIX smd5), Drupal7 e phpass (utilizzato, tra l'altro, in WordPress). Alcuni di essi sono implementati su FPGA per la prima volta. Per bcrypt, la prestazione raggiunta di ~119k c/s con 2^5 iterazioni (“$2b$05”) con un consumo energetico di circa 27 watt supera significativamente i risultati dei più recenti GPU in base al costo della scheda, al prezzo dell'hardware e al watt. cluster Sono supportate anche sha512crypt e Drupal7) utilizzano blocchi composti da nuclei di processore multithreading (soft CPU cores), interagendo con nuclei crittografici. Lo sviluppo di questa funzionalità è stato condotto da Denis Burikin in coordinamento con altri sviluppatori di jumbo.

schede di questo tipo, come verificato fino a 16 schede (64 FPGA) controllate da un singolo Raspberry Pi 2. È supportata la funzionalità standard di John the Ripper, inclusi tutti i modi di cracking delle password e il caricamento simultaneo di un numero elevato di hash. Per migliorare le prestazioni, è stata implementata l'applicazione di una maschera (modalità "—mask", incluso in combinazione con altre modalità) e il confronto degli hash calcolati con quelli caricati sul lato FPGA. Dal punto di vista dell'implementazione, in molti dei design (ad esempio, per

  • Supporto per un'ampia varietà di tipi di hash, cifrature, ecc., tra cui sia hash classici per password (ad esempio, dalle nuove versioni di QNX), sia portafogli di criptovalute, archivi crittografati e sistemi di file crittografati (ad esempio, Bitlocker e FreeBSD geli), oltre al supporto per nuove varietà di formati già supportati in precedenza (ad esempio, è stato aggiunto il supporto per bcrypt-pbkdf per OpenBSD softraid) e molto altro. In totale, sono stati aggiunti 80 formati su CPU e 47 su OpenCL (e un numero limitato di formati obsoleti è stato rimosso come integrato nei nuovi e obsoleti). Il numero totale di formati è ora 407 su CPU (o 262 escludendo i formati "dynamic" configurabili dai file di configurazione) e 88 su OpenCL.
  • Abbandono del supporto per il linguaggio CUDA a favore di OpenCL, il che non interferisce affatto con l'uso completo delle GPU NVIDIA (e anzi aiuta, grazie al focus dello sviluppo e alle ottimizzazioni su un'unica implementazione di ciascun formato per GPU anziché due implementazioni come in precedenza).
  • Supporto per nuovi set di istruzioni SIMD - AVX2, AVX-512 (incluso per la seconda generazione di Xeon Phi) e MIC (per la prima generazione) - e un utilizzo più universale e completo di SIMD nelle implementazioni di molti formati, inclusa l'applicazione di set di istruzioni precedentemente supportati fino ad AVX e XOP su x86(-64) e
    NEON, ASIMD e AltiVec su ARM, Aarch64 e POWER, rispettivamente. (Parzialmente nell'ambito del GSoC 2015.)
  • Numerose ottimizzazioni per CPU e OpenCL, sia per un funzionamento più efficiente con un gran numero di hash contemporaneamente (ad esempio, è stata testata la gestione di 320 milioni di hash SHA-1 su GPU), sia per incrementare la velocità di calcolo degli hash. Parte di queste ottimizzazioni è universale, parte copre vari sottoinsiemi di formati, mentre molte sono specifiche per singoli formati.
  • (Auto-)ottimizzazione della bufferizzazione ideale delle password verificate su CPU ("—tune=auto —verbosity=5") e delle dimensioni ottimali del lavoro su OpenCL (inclusa per impostazione predefinita), considerando anche la lenta uscita alla piena frequenza operativa delle GPU della serie NVIDIA GTX 10xx e successive. Utilizzo di hash realmente utilizzati e lunghezza reale delle password verificate (quando nota in anticipo) per tale auto-ottimizzazione.
  • Aggiunta del compilatore di "espressioni dinamiche", specificato direttamente nella riga di comando e che implementa nuovi tipi ibridi di hash, ad esempio "—format=dynamic=’sha1(md5($p).$s)’", calcolabili su CPU utilizzando SIMD. Come componenti di tali espressioni sono supportati decine di hash veloci (da quelli comuni come MD5 a quelli moderatamente esotici come Whirlpool), concatenazione di sotto-stringhe, codifica e decodifica, trasformazione del registro dei caratteri, riferimenti a password, sale, nomi utente e costanti di stringa.
  • Eliminazione delle differenze indesiderate rispetto a hashcat, inclusa la supporto a regole specifiche per hashcat (comandi di regole per liste di parole), passaggio alla numerazione dei dispositivi OpenCL partendo da 1, utilizzo per impostazione predefinita delle stesse lunghezze delle password (generalmente una lunghezza di 7) nei test di prestazioni.
  • Nuovi modi di generazione di password verificabili (modi di cracking), inclusi PRINCE di hashcat (forma "frasi" combinando più parole in base alla lunghezza totale crescente), sottoinsiemi (individua password con un numero insufficiente di caratteri diversi, anche se questi caratteri provengono da un ampio insieme possibile) e ibrido esterno (permette a modalità esterne, descritte in file di configurazione in un linguaggio simile al C, di generare molte password verificabili basate su ogni "parola" di base proveniente da un'altra modalità). Inoltre, sono presenti diverse nuove modalità esterne predefinite.
  • Ulteriori possibilità di utilizzo di più modalità contemporaneamente (una sovrapposta all'altra — stacking), così come per l'uso di set di regole (stacking delle regole per liste di parole).
  • Miglioramenti delle modalità mask (allungamento graduale della maschera nella gamma di lunghezze specificata, applicazione della maschera sul lato del dispositivo OpenCL o della scheda FPGA) e single crack (comportamento ragionevole sui dispositivi che calcolano un gran numero di hash in parallelo, poiché precedentemente in questa modalità mancavano password verificabili, così come vincoli sul consumo di memoria).
  • Miglioramenti significativi nel supporto di Unicode e altre codifiche in diverse sottosistemi.
  • Numerosi miglioramenti ai programmi *2john (che trasformano file di formati diversi per
    utilizzo con john), in particolare wpapcap2john (elabora il traffico WiFi).
  • Molte nuove opzioni della riga di comando, impostazioni in john.conf, opzioni dello script configure e le relative nuove funzionalità, non tutte delle quali sono riuscite a essere menzionate qui.
  • Miglioramento della qualità del codice grazie al supporto integrato per le build di debug con AddressSanitizer (già presente) e UndefinedBehaviorSanitizer (aggiunto), implementazione di un fuzzing incorporato per i formati (nell'ambito del GSoC 2015), uso della integrazione continua (build per decine di combinazioni di sistema operativo e compilatore e test per supportare correttamente tutti i formati).

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster