¿Qué es la autenticación basada en tokens?
- Glosario IAM
- ¿Qué es la autenticación basada en tokens?
La autenticación basada en token es un protocolo de seguridad que verifica la identificación de un usuario mediante el uso de tokens cifrados. Con la autenticación basada en token, los usuarios se autentican con un token válido para acceder a servidores, aplicaciones, sitios web o una Interfaz de programación de aplicaciones (API). La autenticación basada en token es un protocolo común de autenticación de dos factores (2FA) o autenticación multifactor (MFA), que agrega otra capa de seguridad junto con el nombre de usuario y la contraseña tradicionales.
¿Qué es un token?
Un token es la clave que autentica a los usuarios durante el proceso de inicio de sesión. Los tokens pueden ser digitales o un dispositivo físico como una tarjeta inteligente o una llave USB. Los tokens web, al ser digitales y almacenados en el dispositivo del usuario, son ampliamente favorecidos por las organizaciones debido a su conveniencia y flexibilidad. Los tokens web eliminan la necesidad de que las personas lleven tokens físicos y se pueden integrar fácilmente en varios sistemas de software, lo que ofrece una experiencia de autenticación sin problemas.
Cómo funciona la autenticación basada en tokens
Veamos los cuatro pasos esenciales de la autenticación basada en token.
Solicitud inicial: Un usuario solicitará acceder a una aplicación específica introduciendo su nombre de usuario y su contraseña.
Verificación de usuario: Las credenciales de inicio de sesión se envían al sistema de autenticación para ver si son correctas. Una vez confirmado, comprobará los permisos específicos que el usuario tiene en el sistema.
Validación de tokens: El sistema generará y emitirá un token web para el usuario que se puede usar durante un período limitado.
Almacenamiento de tokens: El token se almacena en el dispositivo del usuario hasta que este se desconecta, cierra la sesión o el token caduca.
Tipos de tokens para la autenticación
Los tokens digitales vienen en varios tipos, cada uno desempeñando un papel crucial para garantizar un proceso de autenticación seguro y adecuado. Exploremos cinco tipos comunes de tokens digitales y sus roles específicos en la autenticación.
Token web JSON (JWT)
El token web JSON es un estándar abierto (RFC 7519) que se utiliza para intercambiar información de forma segura entre dos partes: un servidor y un cliente. Los JWT contienen información sobre la identificación de un usuario y se firma digitalmente para confirmar que los datos contenidos son legítimos. Un token web JSON está compuesto por tres partes: el encabezado, la carga útil y la firma digital.
Encabezado: El encabezado contiene información sobre el JWT. Proporciona el tipo de token y el algoritmo utilizado para firmar el token.
Carga útil: La carga útil contiene las reclamaciones del usuario. Las reivindicaciones son piezas de información de identificación con respecto a una totalidad particular, generalmente de un usuario. Las cargas útiles pueden incluir información adicional, como la expiración del token y los permisos del usuario.
Firma digital: La firma digital es una clave criptográfica que verifica el encabezado y la carga útil para garantizar que el mensaje no se haya cambiado durante la transmisión y certifica la identificación del usuario.
Tokens de acceso
Los tokens de acceso son el tipo más común de tokens web JSON. Estos tokens están diseñados para autorizar el acceso de los usuarios a un servicio particular. Después de que un usuario haya iniciado sesión correctamente, se emite un token de acceso con una fecha de vencimiento para el usuario. El token de acceso otorgará a los usuarios acceso a sus recursos y servicios designados por un tiempo limitado.
Tokens de identificación
A diferencia de los tokens de acceso, los tokens de ID no se utilizan principalmente para otorgar acceso a los recursos y aplicaciones de red. En su lugar, los tokens de identificación son tokens web JSON que contienen información sobre el usuario, como un identificador único, un nombre y una dirección de correo electrónico, junto con su estado de autenticación. Los tokens de ID se proporcionan a las aplicaciones cliente para verificar la identificación del usuario.
Actualizar tokens
Los tokens de actualización son tipos específicos de tokens web JSON que se utilizan para obtener tokens de acceso adicionales sin requerir que el usuario vuelva a ingresar sus credenciales de inicio de sesión. Su propósito es extender la vida útil de un token de acceso para los usuarios a través de su renovación automática.
Tokens de API
Un token de API es una cadena de códigos que corresponde al usuario que solicita la autenticación en una API. Autentica la identificación del usuario y otorga acceso a los puntos finales de la API, lo que permite a los usuarios autorizados interactuar con los recursos de la API de forma segura.
Ventajas de usar la autenticación basada en tokens
A continuación, se presentan tres beneficios de usar la autenticación basada en tokens.
Seguridad: Dado que los tokens están diseñados para tener una vida útil corta, se minimiza la ventana de posible acceso no autorizado. Una vez que un usuario termina su sesión con la aplicación, el token emitido caduca. Esto limita el tiempo disponible para que los atacantes intercepten el token y comprometan una cuenta.
Flexibilidad: La autenticación basada en tokens se puede usar en múltiples plataformas, como aplicaciones web, aplicaciones móviles y API. Esto crea una experiencia de autenticación fácil al tiempo que aumenta la accesibilidad para los usuarios.
Escalabilidad: Dado que los tokens deben almacenarse en el dispositivo del usuario, los servidores no necesitan mantener la sesión de un usuario en una aplicación. Esto permite a los servidores gestionar de manera eficiente múltiples solicitudes al tiempo que genera tokens según sea necesario.
Desventajas de usar la autenticación basada en tokens
Aquí hay tres inconvenientes clave de usar la autenticación basada en tokens.
Riesgo de clave comprometida: Una amenaza común asociada con la autenticación basada en tokens es el posible compromiso de las claves de tokens. Los ataques cibernéticos como el phishing, el malware, la fuerza bruta o los ataques de intermediario (MITM) pueden apuntar a estas claves. La mayoría de los sistemas de tokens web dependen de una sola clave, por lo que si un cibercriminal compromete la clave, todo el sistema se vuelve vulnerable.
Vida útil corta: Debido a la corta vida útil de los tokens, es importante tener en cuenta que los tokens requieren una gestión consistente. Esto implica garantizar que los tokens tengan fechas de vencimiento y renovar sus credenciales según sea necesario.
Tamaño del token: Los tokens pueden ser grandes, especialmente si contienen una cantidad significativa de información o metadatos de usuario. Debido a la complejidad y el tamaño de un token, puede aumentar la sobrecarga de la red en entornos que tienen un ancho de banda de Internet limitado.