Introducción
Entender cómo funciona la navegación web es esencial para nuestro día a día en línea. Utilizamos la web para hacer compras, gestiones, buscar información o para ver una película. Para ayudarnos a proteger nuestras cuentas en los servicios de la web, veremos a continuación cómo funciona la autenticación web y las sesiones.
Servidores y navegadores
Como hemos aprendido en niveles anteriores, la navegación web usa los servidores y los navegadores para funcionar. La mayoría de los servicios a los que accedemos, en lugar de ser páginas web estáticas, ofrecen ciertas funcionalidades. Estos servicios se conocen como aplicaciones web.
Tanto las páginas web estáticas como las aplicaciones web usan direcciones web o URLs, que se traducen en direcciones IP a través del DNS. Así, nuestro navegador puede acceder
a los recursos alojados en el servidor. Cada imagen, página o documento alojado en el servidor, tiene una URL diferente. Nuestro navegador, hace una solicitud por cada uno de los contenidos, a través del protocolo HTTP.
VÍDEO
La navegación web forma parte de nuestro día a día. Este vídeo nos explica qué es una URL y cómo funciona la comunicación entre servidor y navegador.
Introducción a las sesiones web
Hay ciertos casos en el que el servidor tiene que conocer nuestra identidad para ofrecernos contenido personalizado o al que sólo tenemos acceso nosotros. Por ejemplo, los mensajes privados de una red social. En este caso, la aplicación web de la red social, debe autenticarnos cuando entremos en nuestra cuenta.
Las sesiones web se usan para identificar con nosotros cada una de las peticiones HTTP del navegador. Una vez hemos accedido a nuestra cuenta en la aplicación, el servidor nos otorga un identificador de sesión. En cada petición que el navegador haga al servidor, incluirá este identificador, para hacer saber que somos nosotros y que ya hemos verificado nuestra identidad al entrar en la cuenta.
VÍDEO
Las sesiones web se usan para autorizar las peticiones web. Las cookies de sesión mantienen esta información. Sin embargo, existen otras cookies que pueden afectar a nuestra privacidad.
El identificador de sesión se guarda en las cookies de sesión, un pequeño fichero que guarda el navegador durante la navegación. Cuando el servidor recibe una petición HTTP, el navegador consulta la cookie y envía el identificador en la petición. De esta forma, como hemos accedido a nuestra cuenta y el servidor nos ha asignado un identificador, sólo se muestran nuestros mensajes privados, y no los de otra persona. La autorización se produce cuando el navegador elige qué contenido mostrarnos acorde a este identificador de sesión.
Las cookies suelen tener diferentes periodos de caducidad, igual que las sesiones web. Esto se define en el momento que nos autenticamos y el servidor nos asigna el identificador. Si un atacante nos roba nuestro identificador de sesión, podría hacerse pasar por nosotros. Sin embargo, si el periodo de caducidad es corto, esto evita que el atacante pueda mantener acceso por un periodo largo.
Registro, autenticación y sesiones
Para utilizar los servicios web con una cuenta, lo primero que hacemos es registrarnos en el servicio. Además del nombre de usuario y datos necesarios del propio registro, es en este momento en el que configuramos el método de autenticación. En la mayoría de las aplicaciones web, el método por defecto es una contraseña.
En este punto, es importante recordar que la autenticación no es lo mismo que la autorización. La autenticación verifica la identidad del usuario, usando algún método como una contraseña. Por otro lado, la autorización permite o deniega el acceso a algún recurso acorde a algún criterio, como la identidad de un usuario a través del identificador de sesión. La primera vez que usamos un servicio, hacemos lo siguiente:
VÍDEO
La autenticación es el proceso de verificar la identidad. Para hacer esto en el mundo digital, existen varios métodos, todos basado en alguno de los tres tipos principales: algo que soy, algo que se o algo que tengo.
1 | Registro
- Para crear una cuenta, ingresamos los datos necesarios.
- Establecemos el método de autenticación, normalmente una contraseña.
2 | Autenticación
- Para acceder a la cuenta, nos identificamos.
- La aplicación web verifica nuestra identidad autenticándonos con el método elegido durante el registro.
- El servidor instala una cookie de sesión en nuestro navegador.
3 | Acceso a los recursos web
- Una vez hemos entrado en nuestra cuenta, consultamos la información privada. Por ejemplo, nuestros mensajes de una red social.
- Para acceder a los mensajes, el navegador envía la petición con la cookie de sesión.
- El servidor nos identifica y autoriza la petición, de acceso al recurso privado: nuestros mensajes de la red social.
4 | Cerrar sesión
- El servidor olvida el identificador y el navegador lo elimina.
- Al hacer peticiones, el servidor deniega el acceso y nos obliga a volver a autenticarnos.
Este proceso es común a la mayoría de las aplicaciones web. Sin embargo, hay casos concretos en cada una de ellas. La diferencia principal es el método de autenticación empleado.
Como recordarás, lo más seguro es usar más de un método de autenticación. Muchos servicios permiten usar autenticación multifactor (MFA) o un segundo factor de autenticación (2FA). Por ejemplo, junto a la contraseña, podemos usar códigos TOTP con un generador de códigos en una aplicación, o una llave de seguridad. De esta forma, si un atacante consigue nuestra contraseña, también tendría que conseguir acceso al segundo factor de autenticación.
Por último, si perdemos acceso a la cuenta, lo más habitual es que el servicio nos permita recuperar la cuenta enviando un correo electrónico a la dirección que hayamos registrado. Otra opción común es descargar unos códigos de un solo uso, conocidos como códigos de recuperación.
VÍDEO
La autenticación multifactor puede basarse en algo que poseemos físicamente, un token. Ejemplo de esto son las llaves de seguridad, los códigos TOTP o los códigos SMS. Todos ellos permiten mejorar la seguridad de nuestras cuentas cuando se usan conjuntamente con otro método.
Atención
¡Mantén tu cuenta de correo electrónico protegida! Si un atacante se hace con ella, podría utilizar la funcionalidad de recuperación de la cuenta para obtener acceso a otros servicios.