Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Emisor, audiencia, caducidad y reloj

5 tareas · 40 min · Principiante

Una firma válida dice que el token no cambió; no dice que sea para ti, ni que venga de quien esperas, ni que siga vigente. En Boletas Mavecure un único servicio de identidad emite tokens para varias APIs, y pagos-api aprobó un pago de un cliente que no existe. Te entregan la configuración de su validador, la de boletas-api como comparación y los tokens que recibió una tarde. Se leen afirmaciones y configuraciones, nada más.

0 de 5 · 0%

Objetivo de la sala

Una firma válida dice que el token no cambió; no dice que sea para ti, ni que venga de quien esperas, ni que siga vigente. En Boletas Mavecure un único servicio de identidad emite tokens para varias APIs, y pagos-api aprobó un pago de un cliente que no existe. Te entregan la configuración de su validador, la de boletas-api como comparación y los tokens que recibió una tarde. Se leen afirmaciones y configuraciones, nada más.

El RFC 7519 registra un puñado de afirmaciones con nombre fijo. Cuatro deciden si un token firmado debe aceptarse: iss (quién lo emitió), aud (para quién se emitió), exp (desde cuándo ya no vale) y nbf (antes de cuándo todavía no vale). La norma pide que, si un servicio no figura en la audiencia de un token, lo rechace; y las buenas prácticas del RFC 8725 añaden que, cuando un mismo emisor sirve a varios destinatarios, cada uno exija la audiencia y la compare.

La razón es sencilla: con un emisor compartido, todos los tokens se firman con la misma clave. Sin audiencia, un token que se le dio a un servicio poco sensible sirve igual en el más sensible.

Responde para continuar

Mavecure usa un solo emisor y una sola clave para todas sus APIs. ¿Qué evita que pagos-api compruebe la audiencia?

Ver pista de ayuda

La firma ya es válida en todos los casos; la audiencia separa a los destinatarios.

La lista de emisores aceptados es una lista de confianza: cada entrada es alguien a quien el servicio le cree lo que diga de cualquier usuario. Un emisor de pruebas en esa lista equivale a darle a quien controle sus claves la capacidad de crear clientes en producción. Comprobar el emisor solo tiene sentido si además las claves que se cargan son las de ese emisor y de ningún otro.

Abre el laboratorio y compara validacion-pagos-api.yml con validacion-boletas-api.yml.

Responde para continuar

¿Qué emisor, además del de producción, acepta pagos-api? Escribe la dirección completa tal como aparece.

Los relojes de dos servidores nunca coinciden al segundo, y por eso la norma permite un pequeño margen al comparar exp y nbf, que en la práctica es de pocos minutos. El margen se suma a la vida del token: un margen grande convierte un token de pocas horas en uno de días, y vuelve inútil cualquier caducidad corta que se haya pensado. Si un equipo se desfasa mucho, el arreglo es sincronizar su reloj, no agrandar el margen de todos.

Revisa el valor del margen de pagos-api y el comentario que lo justifica.

Responde para continuar

¿Cuántas horas de margen de reloj concede pagos-api al comprobar la caducidad? Escribe solo el número.

Ahora cruza la configuración con los hechos. En tokens-recibidos.txt cada fila es un token que pagos-api aceptó; compara su emisor, su audiencia y su exp con la hora de recepción. Uno vino del emisor de pruebas, otro estaba vencido desde la noche anterior y otro se emitió para un servicio distinto.

Responde para continuar

¿Qué token aceptó pagos-api aunque se había emitido para otra API? Escribe su ref tal como aparece.

Con lo que encontraste, toca escribir la recomendación para pagos-api. La app móvil seguirá enviando tokens y sus errores «aud inválido» de junio hay que resolverlos en su origen, no desactivando la comprobación.

Responde para continuar

¿Qué configuración recomiendas para el validador de pagos-api?

Ver pista de ayuda

Cada uno de los tres tokens anómalos de la tarde debe quedar rechazado.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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