Reventando hashes SHA1/MD5/MD4 con tu GPU (ATi/nVidia)

En la anterior entrega hemos visto cómo compilar John the Ripper para procesar hashes MD5 simples como los utilizados en muchas páginas web para realizar la autenticación del usuario. ¿Qué rendimiento obtiene John the Ripper en modo Raw-MD5?:

$ ./john –test

Benchmarking: Raw MD5 [raw-md5]… DONE
Raw:    3603K c/s

Aproximadamente unos 3,6 millones de claves por segundo con un procesador Intel Core2Duo E6550 a 2,33GHz. No está mal, ¿no?. Pero, ¿se puede mejorar?. Por supuesto, y ahora entenderéis por qué el título dice «reventando» y no «descifrando» como el anterior.

Podemos utilizar la tarjeta gráfica para acelerar el proceso.

Por todos es sabido que los chips gráficos han avanzado muchísimo en los últimos años. Tanto que para determinadas tareas son muchísimo más eficaces que las CPUs, como cálculos de física en videojuegos o cualquier otra tarea que implique cálculo numérico intensivo. Tanta es la diferencia que incluso se está empezando a utilizar en CPDs (Centros de Proceso de Datos) para procesar grandes volúmenes de información, dejando abandonada la práctica de montar granjas de PlayStation’s.

Para descifrar hashes utilizando la GPU podemos recurrir a programas comerciales como ElcomSoft Distributed Password Recovery (solo para tarjetas nVidia con soporte CUDA), o programas gratuitos como IGHASHGPU. Nos  centraremos en este último.

IGHASHGPU es una pequeña aplicación que descifra hashes SHA1/MD5/MD4 utilizando para ello una tarjeta gráfica nVidia con soporte CUDA, o una ATi basada en la serie RV7x0 (4550, 4670, 4830, 4730, 4770, 4850, 4870, 4890). En general las ATi son más rápidas con esta aplicación, y además más económicas.

¿Y cómo va de rápido?. Según la página oficial, con una ATi HD4850 (100€ en cualquier tienda española) obtendríamos un rendimiento de 980 millones de claves por segundo. ¡980 millones!. Eso es unas 250 veces más rápido que con la CPU. No está mal para ser una gráfica de 100€. Además, la aplicación soporta tanto SLI/CrossFire como tarjetas gráficas multiGPU, como puede ser la ATi HD4870x2. Con dos tarjetas gráficas ATi HD4870x2 montadas en CrossFire podríamos obtener un rendimiento teórico de 4600 millones de claves por segundo. Eso sí que es reventar claves.

Un ejemplo de uso en mi máquina:

C:\ighashgpu>ighashgpu.exe -t:md5 -c:d -max:20 passwords.txt
****************************************************************
***          MD4/MD5/SHA1 GPU Password Recovery v0.60        ***
***    For ATI RV 7X0 cards and nVidia ‘CUDA’ ones (G80+)    ***
***         (c) 2009 Ivan Golubev, http://golubev.com        ***
***             see «readme.htm» for more details            ***
****************************************************************

Found 1 CAL device(s)
Loading hashes from [passwords.txt].
Loaded 1 hashes (skipped 0 lines), removing duplicates…
Left with 1 hashes.
Starting brute-force attack, Charset Len = 10, Min passlen = 4, Max passlen = 20

Charset (unicode -> 0) [0123456789]
Charset in HEX: 30 31 32 33 34 35 36 37 38 39
Starting from [0000]
Hash type: MD5, Hash: 17117de9da6d0d71cb3ec97d3de5b3f0
Device #0: [RV7x0] 850.00 Mhz 800 SP
CURPWD: 65010337062103 DONE: 03.37% ETA: 21h 52m AVRSPD: 1226.9M

Aproximadamente 1227 millones de claves por segundo con una gráfica ATi HD4890, y con un uso de CPU del 0,00%. Salvaje, ¿no?.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *