0Pricing
Cryptology Academy · Lección

Por qué SHA-256 sin más no sirve para las contraseñas

Comprenda las tablas arcoíris, la velocidad de la fuerza bruta y la sal.

Por qué SHA-256 sin más no sirve para las contraseñas es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Bienvenida

Almacenar contraseñas de forma segura es uno de los temas más incomprendidos de la seguridad. En esta lección comprenderemos por qué los hashes rápidos como SHA-256 son catastróficamente inadecuados para las contraseñas.

Qué ocurre cuando se filtran las bases de datos

Las filtraciones de bases de datos ocurren constantemente. En 2024, RockYou2024 filtró 10 mil millones de contraseñas. Si las contraseñas de sus usuarios se almacenan de forma recuperable, los atacantes las recuperarán.

Almacenamiento ingenuo con SHA-256

Patrón incorrecto: hashed = sha256(password) store(username, hashed) Problemas: (1) sha256 es rapidísimo, (2) la misma contraseña → el mismo hash (sin salt), (3) existen tablas arcoíris para las contraseñas comunes.

Ataque con tablas arcoíris

Una tabla arcoíris es una correspondencia precalculada de hash→contraseña para millones de contraseñas comunes. SHA-256('password') siempre produce el mismo hash. Consulta de la tabla: recuperación instantánea de la mayoría de las contraseñas.

El papel del salt

Salt = bytes aleatorios antepuestos a la contraseña antes de aplicar el hash. hash = sha256(salt + password) Cada usuario obtiene un salt único. Las tablas arcoíris dejan de servir: el atacante debe aplicar fuerza bruta a cada usuario individualmente.

Pero el salt por sí solo no basta

Una GPU moderna calcula 10 MIL MILLONES de hashes SHA-256 por segundo. Incluso con salts únicos, un atacante que disponga de hashes filtrados puede aplicar fuerza bruta a contraseñas de 8 caracteres en cuestión de minutos.

El problema de la velocidad

SHA-256 se diseñó para ser rápido: para la integridad de archivos, TLS, etc. La velocidad es enemiga del hash de contraseñas. Necesitamos algoritmos deliberadamente lentos que resistan la fuerza bruta.

Estiramiento de claves

El estiramiento de claves itera la función hash miles de veces: for i in range(100000): h = sha256(h). Esto ralentiza tanto al atacante como al defensor, pero la ventaja del hardware sigue favoreciendo al atacante.

Funciones con uso intensivo de memoria

Los hashers de contraseñas modernos requieren grandes cantidades de RAM, no solo ciclos de CPU. Las GPU tienen una cantidad limitada de RAM por núcleo en comparación con las CPU. El uso intensivo de memoria de Argon2 neutraliza las ventajas de las GPU y los ASIC.

Errores comunes

Evite: - sha256(password) - sha256(salt + password) without iteration - md5(password) (or any MD5) - Encrypting passwords (can be decrypted) - sha256(sha256(password)) (still fast)

Qué usar en su lugar

Use: bcrypt (el más implementado), Argon2id (recomendado por OWASP y con uso intensivo de memoria), PBKDF2-SHA256 (conforme con FIPS y aceptable). Los tres son deliberadamente lentos y usan salt por diseño.

Comprobación rápida

¿Por qué SHA-256 no es adecuado para aplicar hash a contraseñas incluso cuando se usa un salt?

Repaso

SHA-256 no es adecuado para las contraseñas. A continuación estudiaremos bcrypt, el algoritmo que hace que el hash sea deliberadamente lento y resistente al hardware.

Preguntas frecuentes

¿La lección «Por qué SHA-256 sin más no sirve para las contraseñas» es gratis?

Sí — el texto completo de «Por qué SHA-256 sin más no sirve para las contraseñas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Por qué SHA-256 sin más no sirve para las contraseñas»?

Comprenda las tablas arcoíris, la velocidad de la fuerza bruta y la sal. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Por qué SHA-256 sin más no sirve para las contraseñas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Por qué SHA-256 sin más no sirve para las contraseñas
  2. bcrypt: algoritmo y factor de coste
  3. Argon2: hash de contraseñas con uso intensivo de memoria
  4. PBKDF2 y elección del algoritmo adecuado
← Volver a Cryptology Academy