Guía de JWT y Seguridad

Base64 y JWT — Cómo Base64URL Impulsa JSON Web Tokens

Aprende cómo JWT usa Base64URL para codificar sus tres partes (header, payload, signature). RFC 7519 explicado con ejemplos.

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.