Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

El flujo de código con PKCE y los flujos que se desaconsejan

5 tareas · 40 min · Principiante

Un cliente puede pedir acceso de varias maneras y no todas son igual de seguras. En Terracota Logística, el punto de autorización registró en una mañana ocho solicitudes de cinco aplicaciones, y no todas piden lo mismo ni con las mismas protecciones. Aprendes cómo funciona el flujo recomendado, el de código con PKCE, por qué el implícito se desaconseja, y lees el registro para ver qué cliente se aparta de la política. Solo lectura.

0 de 5 · 0%

Objetivo de la sala

Un cliente puede pedir acceso de varias maneras y no todas son igual de seguras. En Terracota Logística, el punto de autorización registró en una mañana ocho solicitudes de cinco aplicaciones, y no todas piden lo mismo ni con las mismas protecciones. Aprendes cómo funciona el flujo recomendado, el de código con PKCE, por qué el implícito se desaconseja, y lees el registro para ver qué cliente se aparta de la política. Solo lectura.

En el flujo de código de autorización el cliente manda a la persona al servidor de autorización. Allí se identifica y consiente. El servidor la devuelve al cliente con un código de un solo uso en la dirección de retorno, y el cliente lo canjea por tokens en una llamada directa al servidor, por un canal que no pasa por el navegador.

El riesgo es que alguien que vea el código lo use antes que el cliente legítimo. PKCE (RFC 7636) lo evita: el cliente inventa un secreto al azar, el code_verifier (de 43 a 128 caracteres), y manda en la primera petición solo su huella, el code_challenge, con el método S256 (huella SHA-256 codificada en base64url). Al canjear el código manda el secreto original y el servidor comprueba que coincide con la huella. Un código copiado no sirve sin el secreto. El método plain envía el secreto sin transformar y la propia RFC lo reserva para clientes que no pueden hacer la huella.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

¿Por qué un código de autorización interceptado no le sirve a quien lo robó cuando el cliente usa PKCE?

En el flujo implícito (response_type=token) el servidor no entrega un código sino el token de acceso mismo, en el fragmento de la dirección del navegador. Nació cuando las páginas web no podían hacer llamadas a otros dominios. Hoy ya no hace falta, y es peor: el token queda expuesto en el historial, en registros intermedios y en cualquier script de la página, y no hay forma de ligarlo a quien lo pidió. La guía de seguridad vigente de OAuth 2.0 (RFC 9700) pide no usarlo y emplear en su lugar el flujo de código con PKCE.

Abre el laboratorio, mira la tabla solicitudes_de_autorizacion y busca el cliente que pide el token directamente.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

¿Qué cliente usa response_type=token en el registro de solicitudes?

La RFC 9700 exige PKCE a los clientes públicos y lo recomienda también a los confidenciales. Una solicitud puede estar mal de dos maneras: no traer desafío (el guion de la columna code_challenge_method) o traerlo con un método débil. En el registro hay un cliente que manda su desafío con plain: el secreto viaja a la vista en la misma petición que el servidor ve y que el navegador deja en sus registros, así que el desafío no cumple su función.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

¿Qué cliente envía su desafío con el método plain?

Mira de nuevo las dos filas de resultado del flujo implícito: el token queda «entregado en el fragmento de la URL». Ese resultado resume el problema entero. Cuando el token viaja por el navegador, cualquier cosa que lea la dirección puede guardarlo, y no hay una llamada posterior en la que el servidor compruebe que quien lo recibe es quien lo pidió.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

¿Cuál es la razón principal por la que se desaconseja el flujo implícito?

Para saber cuánto del tráfico ya sigue el flujo recomendado, cuenta las solicitudes que piden un código (response_type=code) y mandan además el desafío S256. Las demás, sea por falta de desafío, por método plain o por flujo implícito, son las que hay que corregir.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

¿Cuántas de las ocho solicitudes piden código con desafío S256?

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

Conectando con la base…

Solicitudes de autorización · Terracota Logística
Consulta del registro del punto de autorización · solo lectura

Tablas

clientes_registrados

  • cliente
  • tipo_de_cliente
  • donde_corre

solicitudes_de_autorizacion

  • hora
  • cliente
  • response_type
  • code_challenge_method
  • state
  • resultado
Ctrl + Enter
Consola de consultas v1.0 · build b77233

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