Craccare una password con GPGPU

Test - Rompere una password usando la potenza delle moderne GPU.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Craccare una password con GPGPUPassword Cracking: i5-2500K

L'obiettivo di un attacco brute force è provare a moltiplicare le password in rapida successione. Le moderne CPU però non sono particolarmente ben ottimizzate per questo scopo. La nostra workstation Sandy Bridge può processare fino a 28 milioni di password al secondo, ma non usa tutti i cicli della CPU a disposizione.

L'operazione è relativamente semplice dopotutto di provare password sempre diverse. L'immagine mostra che una maggiore frequenza della CPU è certamente utile, ma anche che l'applicazione usate sfrutta bene il calcolo parallelo e carica tutti i core della CPU. Un maggior numero di core quindi dovrebbe rendere tutto più veloce, giusto?

Come sappiamo, quando si tratta di operazioni parallele, per quanto una CPU a volte possa far bene, le ALU di una scheda video spesso fanno meglio. Su questo piano AMD e Nvidia hanno ottenuto un valido successo con la transcodifica video, almeno fino a che Intel non ha immesso in commercio i processori Sandy Bridge, dotati della funzione QuickSync per l'elaborazione dei video. Questo ha riportato la CPU in testa in questa particolare attività.

La potenza della scheda grafica però si può rivelare utile anche per altre attività di calcolo, come il cracking delle password. In passato questo accadeva solo nelle università e nei centri di ricerca, dove si lavorava su codice che – si pensava – non avrebbe mai visto una realizzazione commerciale. Oggi però le cose stanno diversamente, e chiunque abbia una carta di credito può procurarsi strumenti come Parallel Password Recovery o Accent Password Recovery.

Parallel Password Recovery è ottimizzato unicamente per l'architettura parallelo CUDA. Questo non vuol dire che CUDA sia migliore rispetto all'iniziativa APP di AMD, ma a Nvidia dovrebbe essere dato il credito che merita per essere stata la prima a scommettere su questo settore e a dare agli sviluppatori una marea di librerie di basso livello necessarie per sfruttare questa tecnologia.

La risposta di AMD è stata molto più lenta, e ci sono ancora problemi nell'accelerazione con popolari applicazioni di transcodifica. Questo spiega parzialmente il motivo per cui anche Accent Password Recovery sembra favorire Nvidia. Anche se supporta CUDA e APP, solo l'hardware Nvidia è ottimizzato per attaccare la codifica Zip 2.0.

Cracking con una GeForce GTX 460
Attacco Brute-Force:

Password al secondo

Parallel Password Recovery Accent Password Recovery
Compression: Zip

Encryption: Zip 2.0

24 111 280 516 096 000
 Compression: Zip

Encryption: AES-128

185 072 166 800
Compression: Zip

Encryption: AES-256

185 177 156 138
Compression: RAR Normal

Encryption: AES-128

3493 4231

Notiamo un incremento nella codifica Zip 2.0. Con una GeForce GTX 460, stiamo già spingendo oltre 500 milioni di password al secondo, quasi 20 volte in più rispetto a quanto abbiamo ottenuto con la sola CPU. Per farvi un'idea di quello che significa potete ora provare ogni combinazione di caratteri ASCII di una password con una lunghezza tra uno e sette caratteri in meno di 48 ore. Passare a una password a otto caratteri richiede 168 giorni (Schede grafiche: ottime per craccare password).

GeForce GTX 460

Tempo totale di ricerca

Attacco Brute-Force

tutti i caratteri ASCII

Password fra 1 e 6 caratteri Password fra 1 e 8 caratteri
180.000 password al secondo 50 giorni, 20 ore 1284 anni, 79 giorni
24 Milioni di password al secondo 9 ore, 9 minuti 9 anni, 230 giorni
500 Milioni di password al secondo 26 minuti, 21 secondi 168 giorni, 17 ore

Zip 2.0 è piuttosto datato. WinZip mantiene questo schema solo per ragioni di compatibilità. AES è la soluzione del momento. Questo schema è molto più difficile da parallelizzare, anche se gli sviluppatori di software ci stanno lavorando con impegno.

Le prestazioni ne risentono in modo evidente una volta che iniziamo a ricostruire una password codificata usando la cifratura AES. Il cursore del mouse del nostro sistema di test si muove a scatti, segno inequivocabile che tutto il nostro sistema è impegnato al massimo. Gli attacchi brute force su AES sono chiaramente più lenti di conseguenza, e per provare ogni possibile configurazione di caratteristi ASCII da una password da 1 a 7 caratteri sarebbero necessari più di 13 anni.

2 x GeForce GTX 570 SLI

Attacco Brute-Force:

Password al secondo

Parallel Password Recovery Accent Password Recovery
Compression: Zip

Encryption: Zip 2.0

45 412 290 1 492 279 088
 Compression: Zip

Encryption: AES-128

495 133 513 936
Compression: Zip

Encryption: AES-256

496 244 513 880
Compression: RAR Normal

Encryption: AES-128

13 904 14 605

Il calcolo generale con la GPU è tutto incentrato sul parallelismo, quindi se una scheda con 480 CUDA Core si comporta bene, metterne insieme due per averne 960 dovrebbe sortire un effetto ancora migliore, giusto?

Quando abbiamo messo insieme due GTX 570 e abilitato lo SLI, la codifica Zip 2.0 è apparsa sostanzialmente inutile, come se invece di un lucchetto avessimo usato un nastro di carta per chiudere la cassaforte. Grazie al codice ottimizzato siamo stati in grado di raggiungere 1,5 miliardi di password al secondo. In questo modo abbiamo ridotto a quasi due mesi i tempi di ricerca per una password da uno a otto caratteri usando tutti i caratteri ASCII.

Invece la sicurezza AES sembra tenere ancora piuttosto bene. Se la password è più lunga di sette caratteri, dovremo impiegare quasi cinque anni a macinare numeri con un tasso di 500.000 password al secondo.