El caso curioso de MD5
MD5, una función hash criptográfica de hace décadas que durante mucho tiempo se ha considerado “rota” para la seguridad, todavía se usa ampliamente en campos como la informática forense digital, el derecho, la genómica y el almacenamiento en la nube para identificar archivos y verificar integridad. Los comentaristas debaten si esto es aceptable dado que MD5 es vulnerable a ataques de colisión (donde dos entradas distintas comparten un hash) pero aún se cree resistente a ataques de segunda preimagen más exigentes, y señalan que muchos flujos de trabajo del mundo real dependen más del proceso legal y del contexto que de garantías criptográficas. Otros argumentan que seguir usando MD5 es una deuda técnica innecesaria cuando alternativas más rápidas, más fuertes y aprobadas por NIST como SHA-2, SHA-3 o BLAKE3 están ampliamente disponibles y son fáciles de adoptar.
Rol de MD5 hoy
- Muchos comentaristas siguen usando MD5 como un checksum rápido y ubicuo de 128 bits para la integridad de archivos, la deduplicación y los IDs, explícitamente no como un hash criptográfico.
- Otros sostienen que los usos de “checksum” pueden volverse silenciosamente relevantes para la seguridad con el tiempo, así que es más seguro tomar por defecto un hash criptográfico moderno.
Colisiones, límites de cumpleaños y ataques de preimagen
- Se repite la aclaración de que MD5 está gravemente roto en resistencia a colisiones (es fácil crear dos entradas distintas con el mismo hash), con numerosas demostraciones prácticas (híbrido PDF/NES, “quines” de imágenes, etc.).
- Se enfatiza la distinción entre:
- Ataques de colisión: el atacante controla ambos mensajes.
- Ataques de segunda preimagen: el atacante debe encontrar un nuevo mensaje que colisione con uno dado; estos siguen siendo muchísimo más difíciles y actualmente no son prácticos para MD5.
- Hay cierta confusión sobre el problema del cumpleaños (si hacen falta ~2^64 frente a 2^128 intentos para colisiones de 128 bits); varias respuestas explican el límite estándar de 2^64 del cumpleaños, pero también señalan restricciones de almacenamiento y algorítmicas para realmente encontrar colisiones en la práctica.
Rendimiento y hashes alternativos
- Varias publicaciones afirman que MD5 es más rápido; otras responden que en CPU modernas con instrucciones SHA, SHA-256 puede igualar o superar a MD5, especialmente en toolchains comunes que usan OpenSSL.
- Alternativas propuestas según el caso de uso:
- SHA-256 (y SHA-256 truncado) como reemplazo casi directo, ampliamente soportado y aprobado por NIST.
- SHA-3 y BLAKE2/BLAKE3 para propiedades más fuertes o paralelismo, aunque SHA-3 carece de aceleración por hardware generalizada.
- Los checksums no criptográficos (CRC32, Adler32) se consideran adecuados solo para detección de errores de corto alcance, no para identificación de archivos a gran escala.
Contexto legal y forense
- Muchos profesionales de derecho y forense tratan MD5 como un elemento más dentro de un proceso probatorio más amplio; la cadena de custodia se impone principalmente por reglas legales, no por matemáticas.
- El consenso es que la evidencia falsificada depende más de factores humanos, acceso al sistema y plausibilidad narrativa que de la elección del hash por sí sola.
- Algunos argumentan que la debilidad conocida de MD5 podría socavar el peso probatorio percibido, y que futuros ataques o casos que marquen precedente podrían forzar una migración apresurada; otros creen que el riesgo en el mundo real es mínimo y manejable.
Inercia, usabilidad y pragmatismo
- MD5 persiste en ecosistemas como la genómica, los archivos de piratería, las herramientas de deduplicación, los checksums de integridad de Azure Blob e incluso el almacenamiento de contraseñas en algún software.
- Los costes de cambio, la compatibilidad y la salida más corta de 32 hex se citan como razones prácticas de que siga vigente.
- Varios comentaristas sostienen: dado que los hashes seguros son “suficientemente baratos” y el modelado de amenazas erróneo es común, la regla más simple es dejar de defender MD5 y usar simplemente un hash moderno en todas partes.