Guía de JWT y Seguridad

Cómo Base64URL impulsa los tokens JWT

Entienda por qué los JSON Web Tokens usan codificación Base64URL. Estructura de encabezado, carga útil y firma, vulnerabilidad alg:none y verificación.

El Rol de Base64URL en los JWT

Un JSON Web Token (JWT) es un medio compacto y seguro para URL para representar afirmaciones entre dos partes. Para garantizar que los tokens JWT puedan transmitirse de forma segura dentro de encabezados HTTP, parámetros de consulta o cookies sin ser modificados por servidores proxy web, el estándar usa codificación Base64URL.

El Base64 estándar contiene caracteres + y /, que tienen significados especiales en URLs. Base64URL reemplaza + con -, / con _, y elimina el relleno = final.

Las Tres Partes de un JWT

Estructura de un JWT:

Encabezado (Base64URL) . Carga útil (Base64URL) . Firma (Base64URL)

Ejemplo: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

¡La Codificación Base64 NO es Cifrado!

Un error común de seguridad es asumir que el contenido de un JWT está cifrado porque parece ilegible. Base64URL es una codificación simple, no un cifrado. Cualquiera que capture un JWT puede decodificar y leer su encabezado y carga útil al instante usando nuestra herramienta Decodificadora de JWT o la Guía Base64. Nunca almacene contraseñas confidenciales o secretos sin cifrar en un JWT.

⚠️ Advertencia de Seguridad: Base64URL no cifra ni oculta los datos de un JWT a lectores no autorizados. Cifre siempre los tokens confidenciales con JWE si se requiere confidencialidad.