This article is an automated machine-translation of an article in English. We know the translation isn't perfect, but we hope it's useful for people who don't read English.

SHA-1 ataque de fuerza bruta recortado en un 21% - el papel de la conferencia de hacking contraseña Oslo

Filed Under: Featured

Hace dos meses, escribimos sobre la conclusión de la Competencia criptográficos Hash Algorithm NIST .

El ganador fue Keccak - ahora oficialmente llamado SHA-3.

A pesar de la ratificación formal de esta nueva norma, los hashes anteriores NIST siguen siendo de uso común. De hecho, podemos esperar ver SHA-1 y SHA-2 en la naturaleza desde hace años - posiblemente incluso durante décadas.

SHA-1 bucle interno esquemática iteración SHA-1, en particular, es aún ampliamente encontrado en codificación de contraseñas.

Hashing de contraseñas es el que utiliza una función criptográfica de hash en alguna parte de su sistema de contraseñas de archivos para crear una función de una sola vía.

Una función de un solo sentido es un proceso que es fácil de calcular en una dirección, pero complejo - o, mejor aún, computionally inviable - para trabajar a la inversa.

Por lo tanto, si almacena un solo sentido hashes de contraseñas en lugar de las contraseñas reales, los atacantes que roban su base de datos no se pueden recuperar directamente las contraseñas. Tienen que tratar de contraseña después contraseña sí mismos, hasta que tenga suerte.

→ Utilizando una función de una sola manera de almacenar las contraseñas no es un reemplazo para mantener su base de datos de contraseña segura. Es seguridad adicional que ofrece un toque de defensa en profundidad, sólo en caso de que su servidor se consigue forzar la entrada.

Debido a que las funciones de un solo sentido no se puede calcular a la inversa, craqueo de contraseñas hash criptográficamente es inevitablemente un asunto de fuerza bruta. Esto significa computando una función de un solo sentido y otra vez.

Como resultado de ello, los expertos de craqueo de contraseñas puesto mucho esfuerzo en la mejora del rendimiento de los algoritmos ampliamente utilizados contraseñas hashing, notablemente incluyendo SHA-1.

En junio de 2012, por ejemplo, los investigadores magnum y JimF (Jim Fougeron) contribuyó en el código de la contraseña de galleta John the Ripper que impulsó primas SHA-1 hash de contraseña velocidad en un 80%.

Y, en el mismo comunicado, Tavis Ormandy vino para arriba con una implementación optimizada que ofrece una mejora de rendimiento del 115%, aunque limitado a las contraseñas de 15 caracteres.

Galletas → Contraseña son fácilmente objeto de abusos. Es posible que desee controlar su uso dentro de su organización. Pero tienen una finalidad legítima defensa: para encontrar la contraseña higiene pobre en su propia red antes de que los malos hacen.

Ahora, Jens Steube, autor del pasword agrietamiento herramientas en el hashcat familia, se ha sumado a las optimizaciones contra SHA-1 cuando craqueo de contraseñas.

Steube describió su trabajo en un artículo en la reciente Contraseñas ^ 12 conferencias en Oslo, Noruega.

Contraseñas ^ 12 conferencia de prensa

Mejoras Steube de cracking de contraseñas reducir en un 21% el número de instrucciones de ordenador necesarios para calcular un hash SHA-1. Esto puede permitir que las optimizaciones anteriores - como los que las descritas anteriormente - que ser ajustado aún más para la velocidad adicional.

Steube advirtió que "bucle interno" SHA-1 puede ser útil adelgazado si está repetidamente calcular los valores hash de los datos de entrada en el que sólo la primera palabra de entrada (32 bits o bytes cuatro) cambia cada vez.

Durante un ataque de contraseña, esto se puede arreglar fácilmente.

Enormemente simplificada, el algoritmo SHA-1 consume su entrada en bloques de dieciséis palabras de 32 bits (512 bits o 64 bytes), mezclando cada bloque en un hash acumulado de cinco palabras de 32 bits (160 bits o bytes 20).

para el bloque en bloques () hacer
   para i = 17 a 80 ¿
      - Cada paso aquí se extiende la original de 16 canales de entrada
      - Bloquear hasta 80 palabras mediante la adición de una palabra compuesta por la mezcla 
      - A cuatro de los dieciséis palabras anteriores.     
      bloque [i] = minimixtogether (bloque, i)
   final
   
   para i = 1 a 80 ¿
      - Cada paso se mezcla aquí una de las palabras de la palabra 80-
      - "Bloque ampliado" en el acumulador de hash de cinco bytes
      Hash giantmixtogether = (bloque, i)
   final
final

El giantmixtogther () que codifica la entrada extendida en la tabla hash utiliza una serie de operaciones diferentes, incluyendo NOT, AND, OR, XOR, ADD y ROL (girar a la izquierda).

Pero el minimixtogether () función que se utiliza para condicionar la entrada de datos sólo usa XOR y ROL. Debido a su relativa simplicidad, Steube encontrado una manera de saltarse el minimixtogether () bucle, y para calcular el "ampliado" del bloque de entrada valores [17] para bloquear [80] directamente en el interior del giantmixtogether () bucle.

Método de Steube todavía necesita un poco de cálculo previo, pero varias evaluaciones independientes de hash puede compartir estos datos precalculados si sólo el primer bloque (es decir, los cuatro primeros caracteres) de la entrada ha cambiado.

Si se hashing una serie aleatoria seleccionada de archivos, por ejemplo, esto le hará ningún bien.

Sin embargo, al realizar un ataque de fuerza bruta contra las contraseñas, es una simple cuestión de poner su entrada en una secuencia adecuada, de modo que los cuatro primeros caracteres cambian más rápidamente, seguido por el resto de la contraseña. (Imagínese un cuentakilómetros de coches con las cifras invertidas.)

Si puedes hacer esto, entonces implemeting ajustes Steube la voluntad de hacer que el código ejecuta un 25% más rápido. Sólo así.

Y ahí lo tienen: un recordatorio de que la seguridad es una carrera armamentista.

You might like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

About the author

Paul Ducklin is a passionate security proselytiser. (That's like an evangelist, but more so!) He lives and breathes computer security, and would be happy for you to do so, too. Paul won the inaugural AusCERT Director's Award for Individual Excellence in Computer Security in 2009. Follow him on Twitter: @duckblog