¿Por qué algún software popular todavía usa md5?

21

Hoy en día, nadie se atreve a defender md5 para ningún uso, ¡y por supuesto que no deberían!

Sin embargo, mucho software popular todavía usa md5 en aplicaciones como el hash de contraseñas (aunque no es simple / simple md5 y probablemente usa técnicas avanzadas como el estiramiento de teclas con sal +). He escuchado, por ejemplo, que el CMS de Drupal usa md5, y que yo sepa, muchos otros programas todavía usan md5. (Creo que Apache lo hace, y tal vez una gran cantidad de software de foro, tal vez.)

¿Por qué es esto? ¿Es tolerable?

Parece que estos son programas profesionales y populares con muchos años de desarrollo y desarrolladores informados.

    
pregunta H M 23.03.2013 - 19:41
fuente

6 respuestas

30

La mayoría de los usos restantes de MD5 se deben a los desarrolladores que simplemente no lo saben. Si usted es un lector frecuente de este sitio, pronto descubrirá que la función hash "predeterminada" que se debe usar es SHA-256; Eso es lo que recomiendan los criptógrafos y organismos de normalización. Pero también notará un flujo aparentemente interminable de personas que desean usar MD5, o sugerir MD5, o comenzar a hacerse preguntas sobre MD5 y están buscando alguna orientación. Esto significa que:

  • Hay una tradición considerablemente pesada de usar MD5.
  • La información sobre cómo SHA-256 es mucho mejor que MD5, no está tan difundida.
  • La mayoría de los desarrolladores hacen desarrollo y no son expertos en seguridad (y rara vez se preocupan por eso). El método de desarrollo "normal" (con lo que me refiero a la forma en que trabaja la mayoría de los desarrolladores) es:

    1. Google suba el problema actual.
    2. Copie & pegue la primera solución de aspecto decente que aparece en algún blog o sitio de preguntas y respuestas aleatorias.
    3. Compilar, ejecutar.
    4. Si parece funcionar, haz un blog al respecto. (opcional)
    5. Vaya al siguiente problema.

    No es ningún misterio que el 95% (al menos) de los sitios web y las aplicaciones relacionadas se desarrollen de esa manera. Pero la web está llena de MD5; por lo tanto, la mayoría de las aplicaciones también estarán llenas de MD5 y, debido al punto 4 anterior, la Web estará aún más llena de MD5.

Tenga en cuenta que en la mayoría de los casos, no hay urgencia de reemplazar MD5. MD5 está completamente dañado con respecto a colisiones , pero sigue siendo (casi) tan bueno como nuevo para preimages ; Además, parece que todavía está bien para su uso en HMAC y derivados (incluido PBKDF2 ). Las colisiones no son un problema en muchos casos (y esto incluye el hashing de contraseñas; el problema de MD5 para el hashing de contraseñas no son las colisiones, sino la velocidad ). Por lo tanto, si bien el MD5 ha superado su nivel primordial y no se debe utilizar para nuevas aplicaciones, muchos de los usos existentes del MD5 son aún razonablemente sólidos y no requieren una actualización de emergencia. No te asustes.

    
respondido por el Tom Leek 23.03.2013 - 21:23
fuente
6

Los viejos hábitos mueren duro. Algunas personas no saben o no les importa que md5 esté roto. También hay casos en los que usar md5 no es una vulnerabilidad. md5 podría usarse para la consistencia de los datos o generar números aleatorios.

    
respondido por el rook 23.03.2013 - 20:15
fuente
3

Creo que MD5 todavía se usa para calcular sumas de comprobación y validar datos. Pero MD5 y SHA-1 no son buenos candidatos para las contraseñas de hash. Son rápidos de calcular, y encontrar colisiones ya no es una tarea tan difícil.

    
respondido por el Alistair 23.03.2013 - 19:58
fuente
3

El software anterior también puede conservar MD5 por razones de compatibilidad. Es decir. las versiones anteriores del software han usado MD5 en los datos y / o protocolos de comunicación (debido a la ignorancia, o porque MD5 todavía se consideraba seguro en el momento en que se escribió el software). Ahora la versión más reciente tiene que admitir MD5 al menos para la compatibilidad con versiones anteriores.

Es posible que también quieran evitar el costo de actualizar los formatos de archivo / protocolos de comunicación para admitir hashes más modernos, o incluso conservar explícitamente la compatibilidad de la versión anterior del software.

    
respondido por el oefe 24.03.2013 - 10:30
fuente
2

MD5 todavía está perfectamente bien si no le importan las colisiones en su caso de uso.

Si un consultor le aconseja cambiar MD5 a otra cosa, aunque a su aplicación no le interesan los ataques de colisión (o la velocidad de computación rápida), debe contratar a otro consultor porque no sabe de qué está hablando. acerca de.

Es sorprendente la cantidad de personas en la 'industria de la seguridad' que no conocen la diferencia entre ataques de colisión, ataques de pre-imagen y segundos ataques de pre-imagen.

    
respondido por el AnroidSec 23.03.2013 - 22:37
fuente
1

He escrito 'suma de comprobación de linux' en google, y el primer y tercer golpe tienen 'md5' en el título. La búsqueda de ejemplos te da lo mismo. Tiene manuales antiguos, tutoriales antiguos y muchos programas antiguos de código abierto, que se utilizan como base para que las personas aprendan PHP. Los sabores Unix tienen comando md5, las bases de datos tienen función md5, etc.

Tenga en cuenta que muchos desarrolladores de PHP son autodidactas, sin formación académica, por lo que los ejemplos son la forma en que aprenden. Después de unos meses, puede incluso considerar MD5 y suma de comprobación como sinónimos.

En realidad, debería estar contento de que tantos desarrolladores estén usando MD5 porque la alternativa podría almacenar el texto sin formato de la contraseña. Mi colega estaba trabajando en un proyecto (sitio disponible públicamente) y descubrió que las contraseñas se almacenaban en texto sin formato. Es un ejemplo de la vida real lo pobre que es la percepción de seguridad.

    
respondido por el Danubian Sailor 24.03.2013 - 13:42
fuente

Lea otras preguntas en las etiquetas