¿Qué es JSON Web Token?

Autor: | Última modificación: 30 de noviembre de 2023 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes qué es JSON Web Token? La autenticación digital de usuarios es una de las aplicaciones más importantes de la criptografía en informática. Para ello, se han desarrollado sistemas como el del login para iniciar sesión dentro de una aplicación.

Existen métodos seguros e inseguros para gestionar las credenciales de verificación de los usuarios. A continuación, hablaremos sobre uno de los sistemas más actuales y seguros para validar el inicio de sesión de una persona. En este post, te explicaremos qué es JSON Web Token.

JSON Web Token

¿Qué es JSON Web Token?

En el proceso de aprender qué es JSON Web Token, debemos comprender que JWT es un estándar para transmitir información de forma segura en internet, por medio de archivos en formato JSON. Este es un tipo de archivo de texto plano con el cual se pueden crear parámetros y asignarles un valor. Este sistema se utiliza para la autenticación JWT de usuarios en aplicaciones y su función principal es la de validar la identidad de quien ingresa a la página, después de haber iniciado sesión en el pasado. De esta forma, no es necesario hacer el proceso de login cada vez que se entra a la página.

El contenido del token se encuentra firmado digitalmente, por lo que se puede comprobar su veracidad. De hecho, se puede encriptar para ocultar su información y reforzar su seguridad. La firma puede generarse por medio de una clave privada (MAC) o con un sistema de clave pública (RSA, ECDSA). La alternativa de usar una clave pública, además de verificar que el contenido de los JSON Web Tokens no sea modificable, también autentifica la identidad de su creador.

La estructura se divide tres partes que se encuentran separadas por puntos (xxx.yyy.zzz). Cada una de estas partes reciben el nombre, respectivamente, de:

  1. Header.
  2. Payload.
  3. Signature.

En resumen, el estándar de JSON Web Token permite emitir un certificado confiable cuando un usuario realiza exitosamente un proceso de login, con el fin de no tener que repetir el procedimiento cada vez que desee ingresar a la aplicación. Gracias a esta certificación, el servidor web puede aprobar de forma segura todas las peticiones se hagan desde esa sesión en nombre de ese usuario.

Estructura de un JWT

Ya hemos visto qué es JSON Web Token. Ahora, te explicaremos en qué consiste cada parte de su estructura:

Header

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Contiene:

  • El algoritmo que se utiliza para la firma, el cual suele ser HMACSHA256 por defecto.
  • El parámetro «typ», que suele ser «JWT» por defecto.

El header está codificado en Base64URL.

Payload

Es la parte más importante, porque contiene los datos del mensaje. Está codificado también en Base64URL y es la segunda parte en la estructura de un JWT o JSON Web Token. Contiene toda la información de lo que es el token JWT. Allí, puedes poner lo que desees, pero cuanto menor sea la cantidad de datos, mejor será la velocidad de procesamiento en el servidor. Por ejemplo:

  • sub: subject
  • iss: issuer
  • exp: expiration

En el parámetro «sub» se suele poner el ID del usuario; en «iss«, el nombre de quien emite el certificado; en «exp» el tiempo de expiración del token.

Signature

El JSON Web Signature se crea concatenando el header y el payload, codificados en Base64URL, con un punto en el medio. En el caso de usar el estándar HMACSHA256 para la creación de este código, la operación se vería del siguiente modo:

# Qué es JSON Web Token
HMACSHA256(
    base64URLEncode(header) + "." +
    base64URLEncode(payload),
    secret)

¿Cómo practicar la creación de JWT?

Ya hemos hablado sobre qué es JSON Web Token y cuál es la estructura de su contenido. Ahora, te enseñaremos una herramienta para que practiques cómo generar tokens online de este tipo.

Si trabajas en programación y te apasiona el mundo de la criptografía, existe un sitio web que te permite experimentar con la creación de JSON Web Tokens y observar de cerca su funcionamiento; dicha página es JSON Web Token.

En este sitio web podrás encontrar librerías de JWT y, además, un generador de tokens con diferentes tipos de métodos de encriptación. Por defecto, se utiliza el algoritmo HS256, pero puedes escoger entre una enorme variedad, según tu conveniencia y también tu curiosidad durante la práctica.

¿Cómo aprender más?

Ahora sabes qué es JSON Web Token y cómo se utiliza en criptografía. Si quieres aprender más y convertirte en un experto en ciberseguridad, no puedes perderte nuestro Ciberseguridad Full Stack Bootcamp, una formación intensiva con la que te especializarás en menos de 7 meses. ¿A qué sigues esperando? ¡Inscríbete ya!

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado