🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónFijar el algoritmo y validar la firma
5 tareas · 40 min · Principiante
El token de Boletas Mavecure trae en su encabezado el nombre del algoritmo con el que dice estar firmado. La pregunta de esta sala es quién manda: el servidor o el token. Mavecure te entrega su validador, la puerta de entrada que reparte el tráfico, el archivo de entorno de producción y el registro de una mañana en la que alguien entró como un operador que no existe. Todo es lectura de copias; nada se envía a la API.
Objetivo de la sala
El token de Boletas Mavecure trae en su encabezado el nombre del algoritmo con el que dice estar firmado. La pregunta de esta sala es quién manda: el servidor o el token. Mavecure te entrega su validador, la puerta de entrada que reparte el tráfico, el archivo de entorno de producción y el registro de una mañana en la que alguien entró como un operador que no existe. Todo es lectura de copias; nada se envía a la API.El campo alg del encabezado es una afirmación más del token, escrita por quien lo fabricó. Si el validador lo usa para decidir cómo verificar, deja la decisión de seguridad en manos de la persona a la que está intentando verificar. Las buenas prácticas de JWT de la IETF (RFC 8725) lo dicen sin rodeos: la librería debe dejar que la aplicación fije los algoritmos permitidos, rechazar los demás y asegurarse de que cada clave se use con un solo algoritmo.
Dos fallos clásicos salen de no hacerlo. Uno es aceptar none, el valor que declara un token sin firma. El otro es mezclar familias: si un servicio que espera una firma asimétrica acepta también una simétrica, puede acabar tratando la clave pública, que es pública, como si fuera el secreto compartido.
Responde para continuar
¿De dónde debe salir el algoritmo con el que boletas-api verifica la firma de un token?
Ver pista de ayuda
Pregúntate quién escribe el encabezado del token.
Un atajo de pruebas en el validador es una puerta trasera con condición. Lo que importa es cuándo se cumple la condición en producción, y eso no se ve en el código sino en el valor por defecto y en el entorno real. Un valor por defecto que abre la puerta si la variable falta es el contrario de fallar cerrado: basta un despliegue que olvide la variable para que el atajo quede activo.
Abre el laboratorio y compara validador.py con entorno-produccion.env.
Responde para continuar
¿Qué variable, ausente del archivo de entorno de producción, deja activa la rama que acepta tokens sin firma? Escribe su nombre tal como aparece.
El registro del validador anota el algoritmo declarado y el resultado de cada token. Fíjate en tres cosas: qué algoritmos llegan además del esperado, cuáles se rechazaron y por qué, y cuáles se aceptaron sin firma, con qué sujeto y qué rol. Un rechazo es buena noticia; una aceptación sin firma con un sujeto que no existe es un incidente. MITRE recoge esta debilidad como CWE-347, verificación incorrecta de una firma criptográfica.
Lee registro-validaciones.txt completo, incluida la nota final.
Responde para continuar
¿Desde qué dirección llegaron los tokens que el validador aceptó sin firma? Escríbela completa.
Leer la carga sin verificar es legítimo para muy poco: por ejemplo, saber qué clave pedir antes de validar. Usarla para decidir algo (a qué servicio enviar la petición, qué rol tiene la persona) es confiar en un dato que cualquiera puede escribir. El problema crece cuando el servicio de destino no vuelve a validar porque «la puerta ya lo hizo».
Abre enrutador.py y lee también la nota del despliegue.
Responde para continuar
¿Qué función del enrutador toma una decisión con la carga sin verificar? Escribe su nombre sin paréntesis.
El equipo tiene tres propuestas para corregir el validador. Evalúalas pensando en lo que viste en el registro: tokens none aceptados, intentos con otro algoritmo y un enrutador que confía en la carga.
Responde para continuar
¿Qué propuesta cierra la causa del hallazgo de boletas-api?
Ver pista de ayuda
Una lista negra de un valor deja el algoritmo en manos del token; un valor por defecto abierto vuelve en el próximo despliegue.
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.