¿Por qué se considera que SHA1 es menos seguro de lo necesario?

3

Por supuesto, 'a menudo' es bastante subjetivo, pero he visto muchos informes / artículos que describen SHA1 como algo que, por lo general, no es lo suficientemente seguro como para usarlo en el almacenamiento de contraseñas. Un ejemplo :

  

Si es solo SHA1, no hay ventana ... Si es bcrypt, tienes tiempo para escapar y cambiar todas tus contraseñas.

La única vez que he visto un 'hack' SHA1 exitoso es cuando la contraseña es trivial para ejecutarse a través de un diccionario (por ejemplo, password123).

¿Qué tiene de seguro SHA1?

    
pregunta Anders 19.10.2016 - 10:50
fuente

3 respuestas

7

Estoy de acuerdo con @KanekiDev y me gustaría resaltar que el número 1 se mantiene incluso ahora, y mucho menos en un futuro próximo.

Según ArsTechnica, una sola persona que usa equipos con un valor inferior a 30,000 dólares logró recuperar el 85% de las contraseñas filtradas en la infracción de Linkedin en un día . Estamos hablando de millones de contraseñas de hash SHA-1 encontradas en un solo día.

  

Al usar un solo Sagitta HPC Brutalis con ocho tarjetas gráficas Nvidia GTX Titan X, logré recuperar el 85 por ciento de las contraseñas el primer día, a pesar de que estaba descifrando tantas contraseñas tan rápido que todo el sistema se ralentizó a un rastreo.

     

Trabajando con el resto del equipo de desarrollo de Hashcat, logramos alcanzar el 88 por ciento al final del tercer día, y cruzamos el umbral del 90 por ciento en el cuarto día. Todo esto sucedió dos días completos más rápido que cuando se trabajó con el primer volcado de LinkedIn, que contenía solo una pequeña fracción del número de hashes. En el sexto día, nos unimos al equipo rival de descifrado de contraseñas, CynoSure Prime, para cerrar el esfuerzo a un sólido 98%, descifrando un total de 173.7 millones de contraseñas.

Source

Si crees que solo los investigadores pueden pagar ese hardware, estás equivocado. Piense en un equipo de crackers que gasta 30,000 dólares en esa configuración solo por encontrar estas contraseñas. En una semana, encuentran 100 millones de contraseñas, que pueden vender por $ 0.01 cada una. 100 millones de contraseñas * $ 0.01 / contraseña = 1 millón de dólares. Es un ROI bastante bueno (retorno de la inversión), ¿no?

Puedes decir que esas eran contraseñas débiles. Probablemente sea cierto, pero como @Matthew señaló,

  

Desafortunadamente, la mayoría de los usuarios eligen contraseñas débiles que aparecerán en los diccionarios, por lo que este es un método de ataque viable.

    
respondido por el A. Darwin 19.10.2016 - 11:41
fuente
4

Creo que las vulnerabilidades de SHA-1 no son de ninguna manera relevantes aquí, lo que es relevante es que es una operación simple, rápida y vergonzosamente paralelizable.

Las vulnerabilidades en SHA-1 son los ataques de colisión, que son dolorosos con las firmas, pero sin sentido para las contraseñas. Los ataques de preimagen serían realmente aterradores en el contexto del hash de contraseñas, pero ninguno existe, que yo sepa.

Ahora, ¿por qué es un problema que SHA-1 sea una operación simple, rápida y vergonzosamente paralelizable? El artículo al que has vinculado lo explica: No hay ventana .

¿Qué significa eso, qué ventana? La consecuencia de que el hash sea rápido es que prácticamente todas las contraseñas de los usuarios (de las cuales incluso la mayoría de las "mejores" son aún algo de baja entropía) son craqueables en cuestión de segundos. Bases de datos completas con decenas de miles de contraseñas se pueden abrir en un solo día, y ni siquiera necesita ser la NSA para lograrlo.

En la práctica, esto significa que cada la brecha de seguridad es siempre el mayor desastre que se pueda imaginar, mientras que si solo hubiera usado algo como bcrypt, que es una operación deliberadamente lenta, habría tenido un par de días (o semanas) para informar a sus usuarios y hacer que cambien sus contraseñas. Esto convierte a "desaster total" en "vergonzoso, pero tolerable" . Consulte ¿Cómo hacer hash de forma segura las contraseñas? para obtener información más detallada de lo que hace un hash adecuado de contraseña (a diferencia de un hash criptográfico "normal").

Algunos usuarios con contraseñas particularmente estúpidas ("password", "fuckyou", "letmein"), por supuesto, tendrán sus cuentas comprometidas porque incluso con bcrypt puedes descifrar las 100 contraseñas más estúpidas en ... . Un par de segundos. Si tiene, por ejemplo, 10,000 contraseñas de usuario con sal individualmente, la prueba de las 100 contraseñas más estúpidas solo requiere un millón de iteraciones. Incluso con un algoritmo lento, eso es cuestión de segundos.

Pero la diferencia importante es que las otras contraseñas que están no en la lista de los 100 principales no se pondrán en peligro tan fácilmente. Esos usuarios tienen una buena oportunidad de cambiar su contraseña a tiempo.

    
respondido por el Damon 20.10.2016 - 17:53
fuente
1

SHA-1 es bastante inseguro debido a:

  • A medida que la computación moderna evoluciona, será más fácil en un "futuro cercano" forzar el algoritmo. Más aún si cuenta con nuevos ASICS diseñados para SHA Hashes computing (a menudo utilizados en la minería de criptomonedas como Bitcoin). Algunos de esos ASICS pueden calcular más de 10 ^ 12 hash por segundo (algunos incluso 10 ^ 15).
  • Pero también, que en 2005 se descubrió una debilidad que haría más fácil romper el algoritmo, no mediante el uso de fuerza bruta, sino al intentar encontrar colisiones hash (una colisión hash se produce cuando dos entradas diferentes producen la misma salida).

Puedes consultar esto: enlace para encontrar información sobre la debilidad que te dije.

Y este, un artículo muy interesante (escrito en 2012) sobre el SHA-1: enlace

Es por eso que ya no recomendaría el uso de SHA-1, ya que incluso si podríamos considerarlo bastante seguro (dependiendo de cuál sea el propósito), quedará en desuso en breve (bueno, ya está en desuso ).

Espero que esto ayude.

    
respondido por el KanekiDev 19.10.2016 - 10:59
fuente

Lea otras preguntas en las etiquetas