CUDA/Stream Hash Cracking.

Iniciado por APOKLIPTICO, 8 Febrero 2011, 20:29 PM

0 Miembros y 1 Visitante están viendo este tema.

APOKLIPTICO

Buenos días criptómanos, hoy vengo a hacer una actualización sobre las últimas capacidades del hash cracking utilizando la tecnología GPGPU.
Antes de la existencia de esta tecnología, solo se podía utilizar las CPUs para intentar crackear un hash, este proceso como bien sabemos, puede ser muy lento e infeasible.

Tomando como ejemplo tratar de crackear una clave WPA en un core i7 sólo nos permitiría probar 4000 passwords por segundo en el Elcomsoft Wireless Security Auditor. Algo que es realmente muy poco y estamos hablando de uno de los procesadores de escritorio más potentes del momento.

Sin embargo, si conseguimos un par de AMD HD5970, con sus monstruosos 4,64 TFLOPS de potencia de calculo de stock, le metemos un 20% de overclock al core, algo perfectamente posible, ya que no tiene un clock demasiado alto y ya tendremos una placa con mayor potencia de cálculo que una Tesla, por la décima parte del costo. Estamos hablando de una capacidad de crackeo combinado de aproximadamente 247200 passwords por segundo en el mismo programa. Estamos hablando de casi 62 veces más potencia de cálculo. Y esto se puede llegar a duplicar, ya que es completamente posible hacer funcionar 4 placas en una pc de escritorio de alta gama, siendo imposible hacer funcionar más de un procesador sin una motherboard de servidor o la hermosa EVGA Classified SR-2.

Esto nos da una capacidad de crackeo sin precedentes.

Ahora, esta no es la única utilidad, en Linux, tenemos el famoso Pyrit, un excelente programa que utiliza OpenCL para utilizar la capacidad de cálculo de las GPUs para cracking.

Y por otro lado, tenemos en windows el ighashgpu de Ivan Goublev.

Ultima versión de dicho programa aqui: http://golubev.com/files/ighashgpu_v062.zip

Lamentablemente, este programa aún no permite crackear WPAs, pero si permite la mayoria de los hashes en CUDA y algunos hashes bajo AMD, soporta salts y distintos charsets, asi como entrada en unicode o en ascii.

Bueno, espero que les sirva.
Un abrazo
APOKLIPTICO.

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

HCK.

APOKLIPTICO, encantado de leer tus textos de Cryptografia, son muy interesantes  :)

Bueno, mi duda es que si las capacidades de la API OpenCL, las que utiliza Pyrit, aprobecha totalmente la potencia de GPGPU para la desencriptación, como lo aria en un entorno Windows con EWSA.

Y una GPU de gama media, tipo GTS450, si seria buena rentabilidad para descifrar, y para usar un poco en entorno de juegos.

Gracias, salu2 y suerte  ;)

APOKLIPTICO

Bueno, primero, si me permitís, te voy a hacer un par de correcciones: Las palabras son "descifrado" (no desencrip*tacion), aprovecha y haría.

En cuanto a tu duda, yo lo que he visto en general es que OpenCL es mucho mejor en cuanto a GPGPU que las tecnologías individuales CUDA y STREAM, esto es porque no solo tiene un poco más de performance, sino que hace tu programa portable tanto a placas AMD como para placas Nvidia.

Sin embargo, si te vas a comprar una placa para GPGPU, siempre recomiendo AMD, esto es debido a que la arquitectura las hace mucho más eficientes.
Cuando uno va a calcular la capacidad de procesamiento en FLOPS (Floating-Point Operations per Second), se deben usar las siguientes fórmulas:
AMD: Stream Processing Units (SPUs) * 2 * Clock Speed (Mhz) = Capacidad en MFLOPS.
Nvidia: Cuda Cores (CCs) * 3 * Clock Speed (Mhz) = Capacidad en MFLOPS.

Ahora vos decis, por qué se recomienda AMD si los CCs pueden hacer tres operaciones por ciclo de procesador por segundo y los SPUs sólo 2, esto es debido a que en promedio las AMD traen muchos mas SPUs que las Nvidia traen CCs.
Por ejemplo, la placa más potente de AMD (y del mercado), la HD5970, posee 3200 SPUs y un Clock de stock de 725 Mhz, esto da una capacidad de stock de 4.64 TeraFLOPS.
La placa más potente de Nvidia (de escritorio, las tesla las dejamos para otro análisis ya que estas solo sirven para GPGPU y cuestan 8000 US$ cada una), la GTX 580, sólo tiene 512 CCs y un clock de stock de 772 Mhz, dando una potencia final de 1.185 TeraFlops.

Dependiendo de cuanto dinero dispongas, http://golubev.com/gpuest.htm ahi tenés estadísticas aproximadas de la capacidad, para apoyar lo que te digo y que no es algo que saqué de la galera XD.

Suerte
Un abrazo
APOKLIPTICO
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

alpha015

Cita de: APOKLIPTICO en  8 Febrero 2011, 20:29 PM
aproximadamente 247200 passwords por segundo en el mismo programa. Estamos hablando de casi 62 veces más potencia de cálculo. Y esto se puede llegar a duplicar, ya que es completamente posible hacer funcionar 4 placas en una pc de escritorio de alta gama

Excelente post. Pero por si alguien tiene la duda, en WPA a partir de cierta longitud de clave se hace infeasible utilizar la fuerza bruta, y más si se mezclan números, letras mayúsculas y minúsculas y caracteres.

Por eso recomiendo contraseñas de no menos de 60, en las que se mezcle lo anteriormente mencionado. Para recordarla se puede poner un número de 7 dígitos combinado con 1 letra mayúscula, 1 letra minúscula y 1 caracter. Entonces repetiríamos esta combinación 6 veces para obtener la de 60.

La ventaja es que al obtener aircrack-ng las 10 primeras posiciones de la clave, no es capaz de averiguar que a partir de ahí se va repitiendo, es decir, tiene que comparar las 60. Saludos. 

APOKLIPTICO

http://hashcat.net/oclhashcat-plus/

Nuevo programa para cracking de hashes utilizando CUDA/OpenCL.

Un abrazo
APOKLIPTICO.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.