🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónHash, integridad y contraseñas
5 tareas · 25 min · Principiante
La misma palabra —hash— nombra dos problemas que no se resuelven igual. Uno es verificar que un dato no cambió: ahí quieres un hash rápido y con buena resistencia a colisiones. El otro es guardar una contraseña sin poder recuperarla: ahí quieres justo lo contrario, una función deliberadamente lenta y con sal. Confundirlos —guardar contraseñas con el hash rápido de verificar descargas— es uno de los fallos de uso más caros y más comunes. En CifraLab varios servicios usan hashes; tu trabajo es mirar para qué y decir si la función elegida encaja con el problema.
Objetivo de la sala
La misma palabra —hash— nombra dos problemas que no se resuelven igual. Uno es verificar que un dato no cambió: ahí quieres un hash rápido y con buena resistencia a colisiones. El otro es guardar una contraseña sin poder recuperarla: ahí quieres justo lo contrario, una función deliberadamente lenta y con sal. Confundirlos —guardar contraseñas con el hash rápido de verificar descargas— es uno de los fallos de uso más caros y más comunes. En CifraLab varios servicios usan hashes; tu trabajo es mirar para qué y decir si la función elegida encaja con el problema.Verificar integridad y guardar contraseñas se parecen —los dos usan «un hash»— y piden funciones opuestas. Para comprobar que un archivo no cambió quieres una función veloz y con fuerte resistencia a colisiones, como SHA-256: la corres sobre gigabytes y comparas. Para guardar una contraseña quieres una función lenta y con sal por usuario —bcrypt, scrypt, Argon2—, porque la lentitud es una defensa: encarece probar millones de candidatos. Usar la función rápida para contraseñas es el error clásico, y no se nota hasta que alguien roba la base y la descifra en masa.
Saber a cuál de los dos problemas pertenece un hash es lo que decide si la elección fue correcta.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
¿Por qué una función de hash de contraseñas se diseña para ser lenta?
Ver pista de ayuda
Contra un atacante que prueba millones de claves por segundo, cada milisegundo de más multiplica su coste.
El servicio de cuentas de CifraLab guarda las contraseñas como SHA-256, sin sal. El razonamiento del equipo fue «SHA-256 es seguro», y lo es —para verificar integridad—. Para contraseñas es un desastre por dos motivos: es rapidísimo, así que un atacante prueba miles de millones de candidatos por segundo con una tarjeta gráfica; y al no llevar sal, dos usuarios con la misma contraseña tienen el mismo hash, y se atacan todos a la vez con tablas precalculadas. El arreglo no es cambiar a SHA-512 —sigue siendo rápido— sino a una función de contraseñas con sal: bcrypt, scrypt o Argon2.
El uso está mal no porque SHA-256 sea débil, sino porque es la función correcta para otro problema.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Las contraseñas se guardan como SHA-256 sin sal. ¿Cuál es el arreglo?
Ver pista de ayuda
El problema no es la longitud del hash, es que sea rápido y sin sal. La solución es una función lenta pensada para claves.
Otro servicio publica descargas con su MD5 al lado, para que quien las baje compruebe que no se corrompieron. Como control de erratas de transmisión, un MD5 detecta un bit volteado por accidente. Como control de seguridad no vale nada: MD5 está roto —se sabe fabricar dos archivos distintos con el mismo MD5—, así que un atacante puede sustituir la descarga por una maliciosa que coincide con el hash publicado, y la comprobación pasa. Para verificar integridad frente a un adversario, la función es SHA-256 o SHA-3; MD5 y SHA-1 quedaron fuera.
El fallo no es tener una suma de verificación: es confiar en una función a la que ya se le saben colisiones.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Las descargas se verifican con MD5 publicado al lado. ¿Es un control de seguridad válido?
Ver pista de ayuda
Si se pueden fabricar dos archivos con el mismo hash, el atacante entrega el suyo y la comprobación no lo distingue.
No todo en CifraLab está mal. Un servicio verifica los avisos que recibe de un sistema externo calculando un HMAC-SHA256 sobre el cuerpo con una clave compartida, y comparando el resultado con la firma que llega en la cabecera. Eso es correcto: el HMAC da integridad y autenticidad a la vez —confirma que el mensaje no cambió y que viene de quien conoce la clave—, usa una función vigente, y no intenta ocultar nada porque no es su trabajo. Reconocer un uso correcto es tan parte del oficio como cazar el fallo: si marcas todo como problema, el informe no sirve.
Un HMAC sobre el mensaje, con función vigente y clave compartida bien guardada, es exactamente para lo que existe.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Un servicio valida avisos externos con HMAC-SHA256 sobre el cuerpo y una clave compartida. ¿Cómo lo registras?
Ver pista de ayuda
HMAC confirma que el mensaje no cambió y que viene de quien tiene la clave. Es su uso, y aquí está bien.
Separaste el hash de verificar del hash de guardar contraseñas y marcaste cuál encajaba. Ahora abre el laboratorio, recorre el almacén de contraseñas, las descargas y la validación de avisos, y lee el código que la auditoría anotó al cerrar la revisión de hashes.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Abre el laboratorio y revisa los usos de hash. En las notas de auditoría de la sala queda anotado un código. Escríbelo tal cual.
Formato esperado: CIF-____
Ver pista de ayuda
El código está en el archivo de notas de la auditoría del escenario, después de los tres usos revisados.
Preparando el escritorio…
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.