¿Qué es JSON Web Token?

Autor: | Última modificación: 26 de julio de 2022 | Tiempo de Lectura: 3 minutos

¿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 de 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.

¿Qué es JSON Web Token?

JSON Web Token (JWT) es un estándar para transmitir información de forma segura en internet, por medio de archivos en formato JSON, que 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 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 que ya haya 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 de un JWT son 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 que no deba 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. Contiene toda la información del token. 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:

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 un token 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 https://jwt.io/.

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!

[email protected]

¿Sabías que hay más de 24.000 vacantes para especialistas en Ciberseguridad sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!