🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónVerificación incorrecta, lo que no se comprueba
5 tareas · 40 min · Principiante
La mayoría de los fallos con tokens no pasan por romper una firma: pasan porque el validador se salta una comprobación. Leer los campos de un token es muy fácil y puede parecer que ya se ha validado, cuando solo se ha decodificado. En esta sala abres los validadores de cinco servicios de Mensajería Pico Verde, escritos en un pseudocódigo de lectura, y compruebas qué exige cada uno antes de aceptar. Uno está bien hecho a propósito; los otros se saltan una cosa distinta cada uno.
Objetivo de la sala
La mayoría de los fallos con tokens no pasan por romper una firma: pasan porque el validador se salta una comprobación. Leer los campos de un token es muy fácil y puede parecer que ya se ha validado, cuando solo se ha decodificado. En esta sala abres los validadores de cinco servicios de Mensajería Pico Verde, escritos en un pseudocódigo de lectura, y compruebas qué exige cada uno antes de aceptar. Uno está bien hecho a propósito; los otros se saltan una cosa distinta cada uno.Un validador correcto hace, en orden, cuatro cosas: comprueba que el algoritmo declarado está en su lista; verifica la firma con una clave que ya conocía; comprueba las afirmaciones que le atañen (el emisor iss, la audiencia aud); y comprueba la vigencia (exp, y nbf si lo hay). Si falta alguna, el token se puede aceptar siendo falso, ajeno o caducado.
Decodificar es solo leer los campos del token: cualquier biblioteca lo hace sin clave y sin esfuerzo. Que el validador haya leído el sub y el exp del token no dice nada de si el token es auténtico. Abre envios.val, el validador completo, y úsalo como patrón de lo que debe aparecer.
Responde para continuar
Un validador lee el claim `sub` y comprueba que `exp` no ha pasado, pero nunca verifica la firma. ¿Qué pasa?
Ver pista de ayuda
Si no se verifica la firma, los campos del token los pudo escribir cualquiera.
En los validadores, cada línea exigir es una condición; si se cumplen todas, el token se acepta. Para saber qué hace de verdad un validador no sirve fiarse de su nombre ni de la intención del equipo: hay que leer qué exige. Los comentarios que dicen «pendiente» o «mejora» indican cosas que el código no hace todavía.
Revisa los cinco archivos .val y localiza el que toma los datos del token sin llegar a comprobar su firma.
Responde para continuar
¿Qué archivo de validador no verifica la firma del token? Escribe el nombre tal cual.
Ver pista de ayuda
Busca el validador en el que la línea de la firma está comentada con un «pendiente».
La caducidad es lo que acota el daño de un token filtrado: pasado exp, ya no sirve. Un validador que la omite convierte cualquier token en eterno, aunque el emisor lo haya hecho de corta vida. Algunas veces la omisión se justifica «para pruebas» y se queda en producción, y por eso el comentario del equipo no es una razón sino un hallazgo.
Revisa los validadores y localiza el que verifica la firma, el emisor y la audiencia, pero nunca mira la caducidad.
Responde para continuar
¿Qué archivo de validador no comprueba la caducidad del token? Escribe el nombre tal cual.
Ver pista de ayuda
Cuenta qué condiciones `exigir` tiene cada archivo y busca la que falta; hay un comentario que explica por qué.
Cuando un mismo emisor firma tokens para varias APIs, la firma es válida en todas. Solo el claim aud dice para cuál se emitió cada uno. Si una API no lo comprueba, un token emitido para un servicio de poco riesgo (digamos, uno que solo lee) se puede presentar en otro más sensible. Es el equivalente de usar una llave de la oficina para abrir el almacén porque ambas las hizo el mismo cerrajero.
Localiza el validador que verifica firma, emisor y caducidad, pero no la audiencia.
Responde para continuar
¿Qué archivo de validador no comprueba la audiencia del token? Escribe el nombre tal cual.
Ver pista de ayuda
Busca el comentario que dice que el emisor es el mismo para todas las API.
Algunas cabeceras traen campos como jku o jwk, que apuntan a un conjunto de claves o lo incluyen. Son legítimos para quien emite, pero un verificador no debe usarlos para decidir en qué clave confiar: si el token trae la clave con la que se va a comprobar, cualquiera puede producir un token y adjuntar su propia clave. Es el mismo error de la sala de verificación de firmas del módulo de asimétrico, con otra forma: la clave de confianza la pone quien verifica, no el mensaje.
Abre portal.val y fíjate de dónde saca la clave.
Responde para continuar
El validador del portal descarga la clave de la dirección que declara la cabecera del token. ¿Cuál es el arreglo?
Ver pista de ayuda
La clave en la que se confía no puede ser decisión del token que se está verificando.
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.