Saltar al contenido

¿Cómo se usa el token?

febrero 8, 2022
¿Cómo se usa el token?

Diferencia entre moneda y token

Un token es un dato que no tiene ningún significado o uso por sí mismo, pero que combinado con el sistema de tokenización correcto, se convierte en un elemento vital para asegurar su aplicación. La autenticación basada en tokens funciona asegurando que cada solicitud a un servidor vaya acompañada de un token firmado que el servidor verifica para comprobar su autenticidad y sólo entonces responde a la solicitud.

JSON Web Token (JWT) es un estándar abierto (RFC 7519) que define un método compacto y autocontenido para transmitir de forma segura información entre las partes codificada como un objeto JSON. JWT ha ganado popularidad masiva debido a su tamaño compacto que permite que los tokens se transmitan fácilmente a través de cadenas de consulta, atributos de cabecera y dentro del cuerpo de una solicitud POST.

Un token web JSON consta de tres partes: cabecera, carga útil y firma. La cabecera y la carga útil se codifican en Base64, luego se concatenan con un punto, y finalmente el resultado se firma algorítmicamente produciendo un token en forma de header.claims.signature. La cabecera consta de metadatos que incluyen el tipo de testigo y el algoritmo hash utilizado para firmar el testigo. La carga útil contiene los datos de las reclamaciones que el token está codificando. El resultado final es el siguiente:

Ejemplo de token de acceso

La forma general en que funciona es permitiendo que una aplicación tenga un token de acceso (que representa el permiso de un usuario para que el cliente acceda a sus datos) que puede utilizar para autenticar una solicitud a un punto final de la API.

Conceptualmente, OAuth2 tiene unos cuantos componentes que interactúan: El servidor de recursos (el servidor de la API) contiene los recursos a los que se accede. Los tokens de acceso son proporcionados por el servidor de autorización (que puede ser el mismo que el servidor de la API). Los tokens son proporcionados por el propietario del recurso (el usuario) al acceder a los recursos. Del mismo modo, una aplicación que utiliza las credenciales y la API se llama cliente o consumidor.

Con authorization_code grant, el propietario del recurso permite el acceso. A continuación, se envía un código de autorización al cliente a través de la redirección del navegador, y el código de autorización se utiliza en segundo plano para obtener un token de acceso. Opcionalmente, también se envía un token de actualización.

En el modo de concesión client_credentials, se utilizan las credenciales del cliente en lugar de las del propietario del recurso. El token de acceso se asocia con el propio cliente o con la autorización delegada del propietario del recurso.

Qué es un token en blockchain

Un token CSRF es un valor único, secreto e impredecible que es generado por la aplicación del lado del servidor y transmitido al cliente de tal manera que se incluye en una solicitud HTTP posterior realizada por el cliente. Cuando se realiza la solicitud posterior, la aplicación del lado del servidor valida que la solicitud incluya el token esperado y rechaza la solicitud si el token falta o no es válido.

Los tokens CSRF pueden prevenir los ataques CSRF al hacer imposible que un atacante construya una petición HTTP totalmente válida y adecuada para alimentar a un usuario víctima. Dado que el atacante no puede determinar o predecir el valor del token CSRF de un usuario, no puede construir una solicitud con todos los parámetros necesarios para que la aplicación atienda la solicitud.

Si se necesita una mayor seguridad más allá de la fuerza del PRNG, se pueden generar tokens individuales concatenando su salida con alguna entropía específica del usuario y tomar un hash fuerte de toda la estructura. Esto presenta una barrera adicional para un atacante que intente analizar los tokens basados en una muestra que se les emite.

Token de seguridad

Aunque los tokens son valores no relacionados, conservan ciertos elementos de los datos originales -comúnmente la longitud o el formato-, por lo que pueden utilizarse para operaciones comerciales ininterrumpidas. Los datos sensibles originales se almacenan entonces de forma segura fuera de los sistemas internos de la organización.

A diferencia de los datos cifrados, los datos tokenizados son indescifrables e irreversibles. Esta distinción es especialmente importante: al no existir una relación matemática entre el token y su número original, los tokens no pueden volver a su forma original sin la presencia de datos adicionales almacenados por separado. Como resultado, una violación de un entorno tokenizado no comprometerá los datos sensibles originales.

Como se ha descrito anteriormente, un token es un dato que sustituye a otro dato más valioso. Los tokens no tienen prácticamente ningún valor por sí mismos; sólo son útiles porque representan algo más grande, como el número de cuenta principal de una tarjeta de crédito (PAN) o el número de la Seguridad Social (SSN). Una buena analogía es una ficha de póquer. En lugar de llenar una mesa con dinero en efectivo (que puede perderse o ser robado fácilmente), los jugadores utilizan fichas como marcadores de posición. Sin embargo, las fichas no pueden usarse como dinero, aunque las roben. Primero deben cambiarse por su valor representativo.

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad