Autenticación
Técnicas modernas para sistemas distribuídos
Encabezado Authorization
Encabezado Authorization
Las credenciales de acuerdo al Standard RFC 7617 se envían en un formato de usuario:contraseña codificado en base64.
A este tipo de autorización se le conoce como autenticación básica
Desventajas
- Se deben enviar las credenciales en cada petición
- Sistema completamente centralizado.
- Si las credenciales cambian todas las sesiones se vuelven nó válidas
Se genera un token asociado internamente a un usuario. Este token suele tener además una caducidad establecida.
Token de sesión
El token de sesión suele enviarse como una cookie para aprovechar la naturaleza de estas, dado que por defecto son enviadas en cada petición al mismo dominio por el navegador web en cuestión.
Token de sesión
Permite a los atacantes inyectar scripts del lado del cliente, en las aplicaciones web, de otros usuarios.
Ataques XSS
- Toda la autenticación por Tokens es vulnerable a ataques man in the middle
- El token es válido hasta que explícitamente termine su periodo de validez
Vulnerabilidades
JWT - FTW
JSON Web Tokens
JWT
Son una método para representar de forma criptográfica peticiones de forma segura entre dos partes
- La información necesaria para la autenticación se transmite de forma independiente después del primer contacto con la aplicación
- Información autocontenida
- Múltiples passphrases
- Pequeño en tamaño
- Cifrado simétrico
Ventajas
- Vulnerable a ataques man in the middle.
- Debe generarse con toda la información necesaria desde el inicio
Deventajas
Los Tokens JWT se utilizan en sistemas de autenticación oAUTH y oAuth2 donde servidores de terceros se comunican entre ellos a partir de un conjunto de tokens generados con distintas credenciales
JWT en la práctica
Los Tokens JWT se utilizan en sistemas de autenticación oAUTH y oAuth2 donde servidores de terceros se comunican entre ellos a partir de un conjunto de tokens generados con distintas credenciales
JWT en la práctica
Es un estándar para el acceso delegado a la información. Confiere la confianza del acceso a la información a un tercero. A través del intercambio seguro de la información.
La implementación de oAuth es independiente de la tecnología que corre en ambos servidores.
oAuth
Aunque muy a menudo se utiliza el LocalStorage (en navegadores Web) como principal forma de almacenar un token. Este método a probado ser inseguro.
Las credenciales deben siempre guardarse en una cookie firmada.
Credenciales Seguras
Los tokens de acceso a terceros son privados, por lo que en aplicaciones client-side, la implementación de autenticación tiende a tener una duración menor.
Credenciales Seguras
Nunca se debe almacenar del lado del cliente las credenciales generadas por proveedores de identidad.
Ejemplos Prácticos
Autenticación
By Estuardo Díaz
Autenticación
El arte de poner aplicaciones en línea
- 118