Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Estructura de un token firmado y lo que no protege

5 tareas · 35 min · Principiante

Boletas Mavecure vende boletas para conciertos y partidos, y su aplicación entrega a cada cliente un token de acceso que el equipo describe como «cifrado». Con autorización escrita te entrega uno de la cuenta de pruebas ya decodificado, la nota en la que el equipo explica qué cree que protege, y la forma en que cada servicio registra la cabecera de autenticación. No se pide ningún token ni se toca la API: se lee qué lleva el token y qué no garantiza.

0 de 5 · 0%

Objetivo de la sala

Boletas Mavecure vende boletas para conciertos y partidos, y su aplicación entrega a cada cliente un token de acceso que el equipo describe como «cifrado». Con autorización escrita te entrega uno de la cuenta de pruebas ya decodificado, la nota en la que el equipo explica qué cree que protege, y la forma en que cada servicio registra la cabecera de autenticación. No se pide ningún token ni se toca la API: se lee qué lleva el token y qué no garantiza.

Un token web JSON (JWT, definido en el RFC 7519 de la IETF) firmado tiene tres partes separadas por puntos: un encabezado que dice cómo se firmó, una carga con las afirmaciones (quién es el sujeto, quién lo emitió, para quién es, cuándo vence) y la firma. Las dos primeras solo están codificadas en base64url, que es una forma de escribir bytes con letras seguras para una URL; cualquiera que tenga el token las convierte de vuelta a texto sin ninguna clave.

La firma es lo único criptográfico, y su promesa es concreta: que el encabezado y la carga no cambiaron desde que el emisor los firmó, y que los firmó quien tiene la clave. No oculta nada y no dice nada de quién presenta el token. Existe una variante cifrada (JWE), pero se reconoce por su encabezado y por tener cinco partes, no tres.

Responde para continuar

¿Qué garantiza la firma de un token como el de Mavecure, si el servicio la verifica bien?

Ver pista de ayuda

Separa integridad, confidencialidad y posesión: la firma solo se ocupa de una.

Como la carga se lee sin clave, todo lo que va en ella lo ven el navegador, cualquier script de la página, los proxies que registran cabeceras, las herramientas de soporte y quien encuentre el token en un registro. Por eso la carga debe llevar lo mínimo para autorizar (un identificador opaco del sujeto, el emisor, la audiencia, las fechas y los permisos) y nunca datos personales que no hagan falta para esa decisión. Que el texto «se vea ilegible» en el navegador es la codificación, no un cifrado.

Abre el laboratorio y lee token-decodificado.txt junto con el punto 1 de nota-del-equipo.txt.

Responde para continuar

¿Qué afirmación de la carga entrega el número de identificación del cliente a cualquiera que tenga el token? Escribe su nombre tal como aparece.

Un token de acceso funciona al portador: el servicio acepta a quien lo presente mientras la firma sea válida y no haya vencido. Eso lo convierte en un secreto de la misma categoría que una contraseña durante toda su vida, y cualquier lugar donde quede escrito entero es un lugar donde se puede robar. Los registros son el caso más frecuente: un nivel de depuración olvidado y un índice que lee media empresa bastan. La práctica correcta es registrar solo el identificador del token (jti), nunca su valor.

Revisa registro-servicios.txt y su bloque de configuración.

Responde para continuar

¿Qué servicio escribe el token entero en el índice de registros compartido? Escribe su nombre tal como aparece.

El daño de un token filtrado se mide con su vida: desde iat (cuándo se emitió) hasta exp (cuándo deja de valer). Las dos fechas van en segundos desde el 1 de enero de 1970 en UTC, así que su diferencia es directamente la ventana de uso para quien lo encuentre. Una vida larga es cómoda para el vendedor de taquilla y para el intruso por igual.

Calcula la vida del token de la cuenta de pruebas con los valores de su carga.

Responde para continuar

¿Cuántas horas sirve el token de acceso de la cuenta de pruebas desde que se emite? Escribe solo el número.

Vuelve a nota-del-equipo.txt. Los puntos 2 y 3 descansan en la misma confusión entre lo que protege una firma y lo que no. El punto 2 (el descuento según nivel_cliente) es correcto solo si quien decide el descuento es el servidor después de verificar la firma; si lo decide el front, la firma no interviene en nada.

Responde para continuar

Según el punto 3 de la nota, un token copiado «no sirve de nada». ¿Qué es lo correcto?

Ver pista de ayuda

Para usar un token robado no hace falta firmar uno nuevo.

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