¿Por qué MD5 todavía se usa mucho?

17

MD5 parece tener vulnerabilidades bien documentadas y, sin embargo, sigue siendo generalizado en su uso. ¿Alguien tiene alguna razón para que siga siendo una opción viable cuando otras alternativas (por ejemplo, SHA-2) parecen ser más sólidas?

David en Dakota
fuente

Respuestas:

16

Es rápido de generar y, a menudo, el hecho de que las colisiones son teóricamente posibles no es un problema enorme. es decir, verificar si un archivo en caché ha cambiado para evitar descargar una nueva copia.

Un punto de referencia rápido realizado en 1996 muestra lo siguiente:

            Digest Performance in MegaBytes per Second

      Pentium P5     Power Mac    SPARC 4     DEC Alpha
          90 MHz        80 MHz      110 MHz      200 MHz

MD5         13.1          3.1         5.1          8.5
SHA1         2.5          1.2         2.0          3.3

Para un uso moderno: en chips integrados, MD5 puede ser 2-3 veces más rápido de producir que el SHA1 para obtener la misma información.

Rich Bradshaw
fuente
10

Un hash MD5 es "suficientemente bueno" para la mayoría de las tareas domésticas. Recuerde que todavía es increíblemente difícil producir colisiones significativas en la misma cantidad de bytes.

Por ejemplo, supongamos que descarga el nuevo Ubuntu 9.10 la próxima semana desde un espejo de confianza. Desea verificar que el archivo se descargó correcta y completamente. Simplemente enciende MD5 y hash el ISO. Compare el hash con el hash publicado. Si los hash coinciden, puede estar seguro de que el ISO se copió correcta y completamente.

once81
fuente
Ya no es difícil. ¿Y cómo es más difícil correr en sha256sum filename.isolugar de md5sum filename.iso?
Caracol mecánico
Además, si su ISP es malo, MD5 no garantiza que el ISO se haya descargado correctamente. El ISP podría alterar la imagen ISO para hacer algo malo.
Caracol mecánico
4
  1. Es corto, más fácil de leer.
  2. Está muy extendido: gran interoperabilidad con otros sistemas
  3. Es habitual, todos están acostumbrados.

y la seguridad se puede mejorar con la salazón.

Josip Medved
fuente
3

MD5 se usa ampliamente como una función hash de suma de comprobación porque es rápido y presenta una relación de colisión extremadamente baja. Una suma de comprobación MD5 se compone de 32 dígitos hexadecimales que en conjunto proporcionan una probabilidad de 1 en ~ 3.42e34 de una colisión. Teóricamente, podrías hacer un hash de todos los archivos en todas las computadoras en un país del tamaño de los EE. UU. Y no producir una colisión (*).

Para la criptografía, MD5 es una alternativa válida si la seguridad es solo una preocupación moderada. Es una opción muy viable para contraseñas de bases de datos de hash u otros campos que requieren seguridad interna para su velocidad principalmente, pero también porque MD5 ofrece un nivel razonable de seguridad donde el cifrado seguro no es una preocupación.


(*) para la mayoría de los propósitos de suma de verificación, una colisión solo es significativa si ocurre entre dos objetos de orígenes similares y con el mismo tamaño. A pesar de una alta probabilidad de unicidad MD5, eventualmente podrían producirse colisiones entre dos archivos muy distintos. Digamos, un archivo de base de datos de 1.5Mb y un archivo gif de 35k. Para la mayoría de los propósitos, esta es una colisión sin sentido. Más aún porque MD5 es solo un elemento de indexación de archivos. El tamaño del archivo es otro importante.

Un enano
fuente
2

MD5 se usa ampliamente porque se ha usado ampliamente, y las interrupciones aún no son lo suficientemente significativas como para ser un problema obvio en los sistemas existentes.

Douglas Leeder
fuente