Skip to content

MD5 y SHA-256 son ambos hashes rápidos: ¿por qué ninguno sirve para almacenar contraseñas?

Respuesta breve

Porque son rápidos. MD5 y SHA-256 están diseñados para la velocidad, que es exactamente lo contrario de lo que se necesita para las contraseñas: un atacante que roba los hashes puede calcular miles de millones de intentos por segundo en una GPU. La solución es una función de derivación de clave deliberadamente lenta y dura en memoria —bcrypt, scrypt o Argon2— combinada con una sal por usuario y un factor de trabajo ajustable.

Fíjate en que la pregunta concede que SHA-256 es criptográficamente fuerte, de modo que el candidato no puede refugiarse en «MD5 está roto». La trampa es pensar que la resistencia a colisiones es la propiedad relevante. Para el almacenamiento de contraseñas, la velocidad es la propiedad que importa, y la velocidad es el enemigo.

Por qué lo rápido es el objetivo equivocado

Los hashes de propósito general están optimizados para ser rápidos sobre entradas enormes. Eso es estupendo para la integridad de archivos y terrible para las contraseñas. Si un atacante vuelca tu tabla de hashes, ejecuta un ataque fuera de línea: palabras de diccionario y candidatos de fuerza bruta pasados por el mismo hash rápido. Una GPU moderna calcula miles de millones de hashes SHA-256 por segundo, así que las contraseñas débiles e incluso moderadas caen rápido. El hash nunca necesita invertirse: el distractor sobre «descifrar» malinterpreta que los hashes son unidireccionales; los atacantes adivinan y comparan.

La herramienta correcta: KDF lentas y con sal

Usa una función de hash de contraseñas / derivación de clave construida para ser lenta e intensiva en recursos:

  • bcrypt: deliberadamente lento con un factor de coste ajustable.
  • scrypt y Argon2: además duros en memoria, lo que mella el paralelismo de GPU/ASIC porque los atacantes no pueden escalar la memoria tan barato como escalan el cómputo. Argon2 es la recomendación actual.

Dos esenciales más:

  • Una sal por usuario para que contraseñas idénticas produzcan hashes distintos, derrotando las tablas arcoíris precalculadas (nota: una sal no ralentiza una conjetura dirigida contra un solo usuario).
  • Un factor de trabajo ajustable que aumentas con el tiempo a medida que el hardware se acelera.

Qué buscan los entrevistadores

La intuición de que la velocidad —no la reversibilidad ni las colisiones— es el fallo, más nombrar bcrypt/scrypt/Argon2, el salado y un factor de trabajo. Quien diga «usa SHA-256 sin más, es seguro» se ha perdido por completo el modelo de amenaza.

Posibles preguntas de seguimiento

  • ¿Contra qué protege una sal, y contra qué no?
  • ¿Qué es un factor de trabajo y por qué debe ser ajustable con el tiempo?
  • ¿Por qué la dureza en memoria (Argon2/scrypt) es valiosa frente a GPU y ASIC?

Fuentes

Certificaciones

Consigue 100 preguntas de entrevista de ciberseguridad + respuestas

Déjanos tu correo y te enviaremos el pack en PDF gratuito y el mazo de flashcards.

Sin spam. Cancela tu suscripción cuando quieras.