Vulnerabilidad de preimagen de MD5 en 2017

9

Recientemente descubrí que una de nuestras plataformas (estrictamente internas, sin riesgo externo, a menos que otros sistemas estén completamente comprometidos) está almacenando las contraseñas mediante el uso de sal y luego el hash MD5. Según el artículo de Wikipedia, MD5 es muy vulnerable a las colisiones, pero solo es teóricamente vulnerable a los ataques de preimagen (el costo es ~ 2 123 ). Sin embargo, el artículo cita el ataque de preimagen que se creó en 2009, ¡hace bastante tiempo! No puedo encontrar ninguna información significativamente más reciente sobre la vulnerabilidad de MD5 a los ataques de preimagen.

Como resultado, mi pregunta es la siguiente: ¿Se encontraron vulnerabilidades en MD5 que permitieran un ataque de preimagen en una contraseña con hash, ya sea para encontrar una colisión o determinar la contraseña, con un costo de menos de 2 123 ?

Como una pregunta de seguimiento, ¿qué tan importante es que intente presionar al proveedor para que salga de MD5 para el hashing de contraseñas? ¿Es esta vulnerabilidad mayor e inmediata, o más de un futuro teórico (si se viola la base de datos)?

    
pregunta Cowthulhu 06.10.2017 - 19:23
fuente

2 respuestas

15

MD5 debe considerarse completamente comprometido para el uso de contraseñas, y ha estado "en desuso" para las contraseñas durante mucho tiempo. Ni siquiera tiene que involucrar ataques de preimagen o vulnerabilidades explícitas. Es tan simple como el hecho de que la tasa de hash para las pilas de GPU modernas contra MD5 es tan rápida que prácticamente puedes forzar la fuerza bruta de casi cualquier contraseña (bueno, exagero un poco)

Esta es una configuración extrema , pero Puede correr a través de casi 200 mil millones de hashes por segundo. Eso significa que puede adivinar alrededor de 200 mil millones de contraseñas por segundo si están codificadas como MD5. No tengo una traducción exacta, pero como puede imaginar, ser capaz de probar 200 mil millones de adivinanzas de contraseñas cada segundo significa que incluso las contraseñas seguras se pueden descifrar fácilmente. El artículo sugiere que puede descifrar una contraseña de Windows XP de 14 caracteres (que es ligeramente más débil, y tiene aproximadamente el doble de hash que en MD5) en solo 7 minutos.

Las configuraciones de hashing más realistas pueden hacer hash de las contraseñas en aproximadamente una décima parte de esa tasa, pero aún así es muy posible forzar una contraseña realista con hash con MD5.

Editar para abordar la segunda mitad de tu pregunta

¿Es esta una amenaza inmediata? Si y no. En términos prácticos, es una amenaza teórica, ya que sus contraseñas solo serán vulnerables en caso de que se infrinja este sistema interno. Sin embargo, cuanto más lees sobre los tipos de trucos más complicados que atraviesan los delincuentes cuando quieren algo, más te das cuenta de lo importante que es tener una seguridad completa en todos los niveles del sistema. Personalmente creo que los sistemas internos deben ser tan seguros como los sistemas externos. Este es un buen ejemplo de un momento en que la mala seguridad lleva a infracciones costosas:

enlace

Además, el otro problema es que MD5 ha estado "fuera de moda" para el almacenamiento de contraseñas desde hace bastante tiempo. Me sentiría muy preocupado de que el resto de su seguridad esté igualmente desactualizada y de que su sistema interno esté lleno de agujeros de seguridad.

Otra edición

Un pensamiento importante a tener en cuenta: con estas cosas, una consideración importante es el daño potencial causado en caso de una infracción. No sé qué hace este sistema interno, pero hay una parte importante de información confidencial que definitivamente almacena: las contraseñas de sus usuarios. Incluso si eso es todo lo que almacena, es potencialmente peligroso. Aquí hay un escenario peor de lo más plausible. ¿Cuáles son las probabilidades de que tenga un administrador que tenga una cuenta de usuario en este sistema interno? Si es así, ¿cuáles son las probabilidades de que esa persona haya utilizado la misma contraseña para el sistema interno que la contraseña para administrar, por ejemplo, el sistema de correo electrónico de toda la empresa? Si es así, es un salto corto, salta y salta de descifrar una contraseña MD5 para tomar el control de tu sistema de correo electrónico, y desde allí a cualquier aspecto de tu empresa que esté orientado a la web.

Mientras intenta resolver los problemas con las personas que administran su sistema interno, puede pensar en este proceso de pensamiento y tomar los pasos apropiados: "Si un usuario malintencionado logró obtener la contraseña de la cuenta de correo electrónico X, ¿Cuántos problemas podrían causar? ". Usted se sorprendería de cuántas compañías tienen efectivamente su sistema completo dependiendo de la seguridad de una sola cuenta de correo electrónico, y eso sin 2FA. Si ese es el caso de su empresa, debe solucionarlo, independientemente de lo que diga este proveedor externo. De lo contrario, su peor escenario es muy malo, y este sistema interno es solo una de las muchas formas en que un atacante malicioso puede paralizar su empresa.

    
respondido por el Conor Mancone 06.10.2017 - 21:04
fuente
1

Considere usar un hash de contraseña más moderno, ya sea Scrypt o Argon2id.

Los ataques de diccionario basados en GPU son brutalmente efectivos contra hash salados, incluso si el hash es SHA512. PBKDF2 es un algoritmo de hash muy pobre, con colisiones triviales y defensa pobre. Bcrypt está bien, pero sería más seguro cambiar a un algoritmo moderno de hash de contraseña con memoria dura que es ineficiente en las GPU. Scrypt es preventivo y sigue siendo bastante bueno, pero si tienes acceso a Argon2id, lo usaría.

Me envió una muestra aleatoria de sus hashes y sales MD5, y le enviaré el 90% de las contraseñas correspondientes en 24 horas. Los romperé sin una GPU: solo uso mi computadora portátil. De Verdad. Solo descarga HashCat, y es solo enchufar y chug.

    
respondido por el Bill Cox 03.11.2018 - 19:10
fuente

Lea otras preguntas en las etiquetas