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

Made with Slides.com