Decodificador JWT

Decodifica un JSON Web Token (JWT) para ver su encabezado, carga útil y firma. Útil para depurar e inspeccionar tokens JWT utilizados en autenticación y autorización. El contenido de su JWT no se guardará en ningún lugar.

Carga útil (Claims):

Encabezado (Algoritmo de firma y tipo de token):

Firma:

La firma se muestra como datos codificados en Base64URL. Esta herramienta no realiza verificación de firma.

Más sobre JSON Web Tokens

Formato JWT

Un JSON Web Token (JWT) es un medio compacto y seguro para URL para representar claims que se transfieren entre dos partes. Consiste en tres partes codificadas en Base64URL separadas por puntos: header.payload.signature. El encabezado típicamente contiene el tipo de token (JWT) y el algoritmo de firma. La carga útil contiene los claims—declaraciones sobre una entidad (típicamente el usuario) y metadatos adicionales. La firma se usa para verificar que el mensaje no fue alterado en el camino.

JOSE (JSON Object Signing and Encryption)

JWT es parte del framework más amplio JOSE (JSON Object Signing and Encryption), que proporciona una forma estandarizada de asegurar datos basados en JSON. JOSE incluye varias especificaciones relacionadas: JWS (JSON Web Signature) para tokens firmados, JWE (JSON Web Encryption) para tokens cifrados, JWK (JSON Web Key) para representar claves criptográficas, y JWA (JSON Web Algorithms) para especificar algoritmos criptográficos.

JSON Web Signature (JWS)

La mayoría de los JWTs que encuentras son tokens JWS—están firmados pero no cifrados. Esto significa que cualquiera puede leer la carga útil decodificándola con Base64URL, pero no pueden modificarla sin invalidar la firma. JWS proporciona integridad y autenticidad: puedes verificar que el token fue emitido por una parte de confianza y no ha sido manipulado.

Algoritmos de firma

JWS soporta varios algoritmos criptográficos para firmar tokens. Estos se dividen en dos categorías: algoritmos simétricos (misma clave para firmar y verificar) y algoritmos asimétricos (clave privada para firmar, clave pública para verificar).

Algoritmos HMAC (Simétricos)

HS256, HS384 y HS512 usan HMAC (Hash-based Message Authentication Code) con SHA-256, SHA-384 o SHA-512 respectivamente. Estos son algoritmos simétricos—la misma clave secreta se usa tanto para firmar como para verificar el token. Los algoritmos HMAC son rápidos y simples pero requieren distribución segura de claves ya que ambas partes necesitan el mismo secreto.

Algoritmos RSA (Asimétricos)

RS256, RS384 y RS512 usan RSASSA-PKCS1-v1_5 con SHA-256, SHA-384 o SHA-512. PS256, PS384 y PS512 usan RSASSA-PSS (esquema de firma probabilístico). Los algoritmos RSA usan una clave privada para firmar y una clave pública para verificar. Esto permite que la clave de verificación se comparta públicamente sin comprometer la seguridad—ideal para sistemas distribuidos donde múltiples servicios necesitan verificar tokens.

Algoritmos de curva elíptica (Asimétricos)

ES256, ES384 y ES512 usan ECDSA (Elliptic Curve Digital Signature Algorithm) con curvas P-256, P-384 o P-521 respectivamente. Los algoritmos EC ofrecen la misma seguridad que RSA pero con tamaños de clave más pequeños, resultando en firmas más pequeñas y operaciones más rápidas. ES256 es cada vez más popular para aplicaciones modernas debido a su eficiencia.

JSON Web Encryption (JWE)

Mientras que JWS proporciona tokens firmados, JWE proporciona tokens cifrados donde la carga útil es confidencial. Los tokens JWE tienen cinco partes en lugar de tres: encabezado, clave cifrada, vector de inicialización, texto cifrado y etiqueta de autenticación. JWE soporta varios algoritmos de cifrado incluyendo AES-GCM y AES-CBC con HMAC. Nota que este decodificador solo maneja tokens JWS; los tokens JWE requieren descifrado con la clave apropiada.

Especificaciones RFC

Los estándares JWT y JOSE están definidos en varios RFCs de IETF:

Herramientas relacionadas