¿Cómo funciona el doble factor de autenticación?

¿Cómo funciona el doble factor de autenticación?

Esta es la tercera de una serie de entregas dedicadas a temas de seguridad en Internet y cómo incrementar nuestro escudo protector cuando estamos en línea. En la primera hablamos sobre los administradores de contraseñas y en la segunda sobre las -cada vez más populares- violaciones de datos.

Hoy vamos a hablar sobre el doble factor de autenticación, también conocido como two factor authentication, 2FA, o MFA -multi factor authentication-, por sus siglas en inglés.

El concepto de doble factor de autenticación (aunque algunos lo llaman autenticación de dos pasos, pero eso lo vamos a hablar más adelante) dice que el usuario debe ser “desafiado” a utilizar dos mecanismos de autenticación entre los siguientes tres:

  • Algo que sabés
  • Algo que tenés
  • Algo que sos

Algo que sabés suele ser tu contraseña, y este es el primer factor de autenticación que usamos en todos lados. Algo que sos podría ser tu huella digital, reconocimiento facial, de retina, entre otros. Pero vamos a hablar del segundo mecanismo de autenticación más utilizado en el mundo: algo que tenés.

Algo que tenés puede ser una tarjeta inteligente –smart card-, una llave de autenticación (como las YubiKey) o un token (físico o virtual).

Para que el desafío sea superado y el usuario habilitado a iniciar sesión en el sitio web, aplicación o sistema al que intenta acceder, deberá ingresar su usuario y contraseña + el segundo factor de autenticación. En esta imagen podemos observar cómo Google me “desafía” a ingresar el token para finalizar el inicio de sesión:

¿Y cómo puede ayudarte esto a prevenir un ataque? Simplemente porque a un atacante le resultaría más dificil obtener los dos factores de autenticación (contraseña + token, o contraseña + llave de autenticación) que uno solo.

Si el atacante lograra obtener acceso a tu contraseña de Gmail necesitaría también conocer el token (que cambia cada 30 segundos) o tener tu llave de autenticación para poder ingresar.

Los tokens, que generan códigos conocidos como TOTP, pueden ser físicos (como los que ofrecen Duo Security RSA) o virtuales (también llamados software tokens), aunque los primeros suelen verse más en entornos empresariales.

Tokens virtuales

Los software tokens más populares son Google Authenticator (Play Store / App Store), Authy (Play Store / App Store) y Microsoft Authenticator (Play Store / App Store), y están pensados tanto para usuarios hogareños como empresariales.

Todos funcionan bastante parecido, pero si me preguntan cuál prefiero les respondo Authy.

Soy usuario de Authy desde el año 2014. Desde ese entonces he cambiado más de 4 veces de teléfono (incluyendo un pasaje de Android a iOS) y los tokens siempre se mantuvieron conmigo. Fue una de las principales decisiones por las que migré desde Google Authenticator.

Authy identifica a sus usuarios por número de teléfono + e-mail, y ofrece soporte para múltiples dispositivos además de copia de seguridad de los tokens.

Y este es un dato muy importante, ya que mucha gente pierde acceso a sus cuentas por no guardar (a veces ni siquiera generar) los códigos de respaldo de los sitios en los que habilitaron el doble factor de autenticación.

Adicionalmente, para los desarrolladores, tiene una API muy flexible que les permite agregar la funcionalidad de doble factor de autenticación utilizando el servicio de ellos sin costo.

La interfaz es sencilla, y cumple su función a la perfección. Los códigos (TOTP) cambian cada 20 o 30 segundos, dependiendo del tipo de aplicación (Authy-enabled o genérica).

El proceso de recuperación de cuenta (en caso que hayan perdido su teléfono y no tengan acceso a ningún otro con su cuenta de Authy configurada) demora alrededor de 24 hs. y tiene sus motivos. Durante esas 24 hs., Authy enviará múltiples mensajes de texto y e-mails al usuario advirtiéndole que el proceso de recuperación de cuenta fue iniciado y las instrucciones para cancelarlo. Todos los detalles acerca del proceso de recuperación de cuenta están acá.

Para los usuarios de Apple Watch ofrece una aplicación con las mismas funcionalidades. Cuando la instalé pensé que no la iba a usar lo suficiente, pero debo reconocer que la uso más que a la app de iPhone.

Al día de publicado este post tengo habilitado el doble factor de autenticación en más de 80 sitios a través de Authy.

Llaves de autenticación

Unos párrafos antes mencionaba la YubiKey. Esta llave de autenticación funciona bajo el standard U2F (Universal Second Factor), desarrollado en conjunto por Yubico y Google, ahora en manos de la alianza FIDO (Fast IDentify Online).

Durante la configuración de la llave, la misma genera una secuencia de 44 caracteres que está relacionada exclusivamente con el dominio del sitio en el cual el usuario está realizando la configuración. De esta manera logramos evitar ser víctimas de phishing, ya que la secuencia generada para un sitio que se asemeja en apariencia a google.com pero cuyo dominio no sea google.com, será completamente diferente.

El funcionamiento es muy sencillo. El usuario ingresa sus datos de inicio de sesión y luego el navegador le solicitará que conecte la llave en el puerto USB de su laptop (o la apoye en el lector NFC de su smartphone) para superar el desafío.

Las YubiKey son multipropósito, ya que no solo permiten superar el desafío de “algo que tenés” durante la autenticación de doble factor, sino que también soportan el almacenamiento de SSH keys y certificados PGP. Su valor es de US$50-.

Entre los sitios que soportan el standard U2F se encuentran Dropbox, Facebook, GitHub, Google, Twitter, entre otros. Para quienes no soportan U2F pero sí la configuración de un token virtual, YubiKey ofrece una herramienta que permite grabar la “semilla” de configuración del TOTP en uno de sus slots. En este caso, cuando el sitio solicite ingresar el código TOTP, el usuario deberá insertar su llave en el puerto USB y presionar su botón.

Hace algunos meses Google presentó sus propias llaves de autenticación, conocidas como Titan Security Kit, y fabricadas por la compañía china Feitian. Su funcionamiento es similar al de la YubiKey, solo que ofrece un kit que incluye un modelo bluetooth y otro USB. Su valor es de US$40-. y cumple con los requisitos del Programa de Protección Avanzada.

Google fue duramente criticado por su elección de la tecnología bluetooth, dado que se conocen decenas de vulnerabilidades que la afectan y que podrían comprometer la clave de encripcióm del usuario over-the-air.

SMS token

Algunos sitios también envían el token por SMS (como Instagram, o LinkedIn), pero es aconsejable utilizar un token virtual en lugar del SMS -siempre que sea posible- dado que se han descubierto múltiples vulnerabilidades (técnicas y humanas) en las redes móviles y en el proceso que se utiliza para “portar” las líneas de un operador a otro. Pero esa es historia para otro post.

Para finalizar, la autenticación de dos pasos difiere del doble factor de autenticación puesto que la primera no necesariamente requiere la utilización de dos factores diferentes. El usuario podría tener que ingresar una contraseña + una frase y ambas entrarían en la categoría “algo que sabés“.

Una lista completa de los sitios que soportan algún mecanismo de doble factor de autenticación está disponible acá. Para usuarios de Chrome y Firefox, 2FA Notifier es una extensión que te avisa cuando el sitio que estás navegando soporta doble factor de autenticación.

¡Hasta la próxima!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.