🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónLos fallos de uso, uno a uno
5 tareas · 25 min · Principiante
Esta sala junta los fallos de uso que no dependen de qué primitiva elegiste: aparecen con hashes, con cifrado, con firmas, en cualquier oficio. Comparar dos valores secretos con el operador equivocado, generar algo que debía ser impredecible con un azar que no lo es, inventarse un cifrado propio, o dejar un secreto escrito en un registro. Son los que más se repiten porque no los cazan las reglas de «usa AES»: el algoritmo está bien y el uso a su alrededor está mal. En CifraLab los ves provocados uno a uno.
Objetivo de la sala
Esta sala junta los fallos de uso que no dependen de qué primitiva elegiste: aparecen con hashes, con cifrado, con firmas, en cualquier oficio. Comparar dos valores secretos con el operador equivocado, generar algo que debía ser impredecible con un azar que no lo es, inventarse un cifrado propio, o dejar un secreto escrito en un registro. Son los que más se repiten porque no los cazan las reglas de «usa AES»: el algoritmo está bien y el uso a su alrededor está mal. En CifraLab los ves provocados uno a uno.Un servicio valida un token de sesión comparándolo con el valor esperado usando una comparación normal de cadenas, la que corta en cuanto encuentra el primer carácter distinto. Ese corte temprano filtra información por el tiempo: un atacante que mide cuánto tarda la comparación va averiguando el token carácter a carácter. Para comparar dos valores secretos —tokens, firmas, códigos de autenticación— se usa una comparación en tiempo constante, que siempre tarda lo mismo pase lo que pase. El arreglo es cambiar el operador de igualdad por la función de comparación constante que trae la librería criptográfica.
El fallo es «comparar con el operador equivocado»: el mismo == de siempre, que para secretos filtra por el reloj.
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 compara el token de sesión con una comparación normal de cadenas. ¿Cuál es el fallo y su arreglo?
Ver pista de ayuda
Cortar en el primer carácter distinto deja medir el tiempo y adivinar el secreto. Se compara en tiempo constante.
Otro servicio genera vectores de inicialización y tokens con un generador de números al azar de propósito general, el de la librería estándar del lenguaje. Ese generador es predecible: a partir de unas cuantas salidas se puede reconstruir su estado y anticipar las siguientes, así que los IV y tokens dejan de ser impredecibles. Todo lo que en criptografía debe ser impredecible —claves, IV y nonces, tokens, sales— sale de un generador criptográficamente seguro, no del de propósito general. El arreglo es usar la fuente de azar criptográfico del sistema o de la librería criptográfica.
El fallo es alimentar una primitiva correcta con un azar que se puede adivinar: el algoritmo resiste, la entrada no.
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
Los IV y tokens se generan con el generador de azar de propósito general del lenguaje. ¿Cuál es el arreglo?
Ver pista de ayuda
El azar de propósito general se puede predecir a partir de sus salidas. Lo impredecible sale de un generador criptográfico.
Un servicio «cifra» un dato aplicándole una operación XOR con una clave fija inventada por el equipo, en vez de usar una primitiva estándar. Inventarse un algoritmo es uno de los errores más viejos: un XOR con clave fija se rompe con análisis básico, y en general nadie fuera de un puñado de especialistas diseña criptografía que resista. La regla del oficio es no inventar: se usan primitivas estándar, revisadas por años de escrutinio público —AES-GCM para cifrar, las funciones de hash vigentes, las librerías conocidas—. El arreglo es tirar el invento y cifrar con una primitiva estándar bien usada.
El fallo no es un detalle de configuración: es construir la criptografía en vez de usar la que ya está probada.
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 «cifra» con un XOR de clave fija hecho en casa. ¿Cuál es el arreglo?
Ver pista de ayuda
Un XOR de clave fija se rompe con análisis básico. No se inventa criptografía: se usa la estándar y revisada.
Para depurar un problema, un servicio de CifraLab dejó una línea que escribe en el registro la clave y el token que está usando, «temporalmente», y quedó. Un secreto en un log es un secreto filtrado: los registros se copian, se centralizan, se ven por mucha gente y se retienen durante meses, así que la clave acaba en sitios donde nadie la controla. El arreglo es no registrar nunca material criptográfico —claves, tokens, sales, contenido descifrado— y, si hace falta depurar, registrar un identificador que no revele el secreto. La línea «temporal» es la vía más común por la que un secreto sale a la luz.
El fallo es tratar el registro como un lugar privado; no lo es, y todo lo que se escribe ahí deja de ser secreto.
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 escribe la clave y el token en el registro «para depurar». ¿Es correcto?
Ver pista de ayuda
Un secreto en un log ya está filtrado: el log se copia y se guarda meses. No se registran claves ni tokens.
Viste los cuatro fallos de uso provocados uno a uno: la comparación que corta antes de tiempo, el azar predecible, el cifrado casero y el secreto dejado en el registro. Esta verificación cierra el módulo: abre el laboratorio, recorre esos fragmentos y lee el código que la auditoría anotó al cerrar la sala.
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 fragmentos con los fallos de uso. 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, no en los fragmentos de código.
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.