Problemas de seguridad con la autenticación de dos factores (2FA)

La autenticación de dos factores (2FA) es un tipo específico de autenticación multifactor (MFA) que refuerza la seguridad del acceso al requerir dos métodos (también denominados factores de autenticación) para verificar su identidad. Estos factores pueden incluir algo que usted conoce -como un nombre de usuario y una contraseña- más algo que usted tiene -como una aplicación de teléfono inteligente- para aprobar las solicitudes de autenticación.

2FA protege contra la suplantación de identidad, la ingeniería social y los ataques de fuerza bruta a las contraseñas y protege sus inicios de sesión de los atacantes que explotan credenciales débiles o robadas.

La autenticación de dos factores (2FA) es el elemento fundamental de un modelo de seguridad de confianza cero. Para proteger los datos sensibles, hay que verificar que los usuarios que intentan acceder a esos datos son quienes dicen ser. La 2FA es una forma eficaz de protegerse contra muchas amenazas de seguridad que tienen como objetivo las contraseñas y las cuentas de los usuarios, como el phishing, los ataques de fuerza bruta, la explotación de credenciales, etc.

Digamos que se utiliza un nombre de usuario y una contraseña para completar la autenticación primaria en una aplicación. Esa información se envía a través de Internet (su red primaria). Querrás utilizar un canal diferente (fuera de banda) para completar tu segundo factor. Aprobar una notificación push enviada a través de su red móvil es un ejemplo de autenticación fuera de banda.

¿Cuáles son los tipos de 2FA?

SMS 2FA

howtogeek.com

La autenticación de dos factores por SMS valida la identidad de un usuario enviando un código de seguridad a su dispositivo móvil. A continuación, el usuario introduce el código en el sitio web o la aplicación en la que se está autenticando.

TOTP 2FA

blog.meteor.com

El método 2FA basado en el tiempo (TOTP) genera una clave localmente en el dispositivo al que el usuario intenta acceder. La clave de seguridad suele ser un código QR que el usuario escanea con su dispositivo móvil para generar una serie de números. A continuación, el usuario introduce esos números en el sitio web o la aplicación para acceder. Las claves generadas por los autenticadores caducan al cabo de cierto tiempo, y se generará una nueva la próxima vez que el usuario se conecte a una cuenta. TOTP forma parte de la arquitectura de seguridad Open Authentication (OAUTH).

Push-Based 2FA

how-to-geek

Push-based 2FA mejora el SMS y TOTP 2FA añadiendo capas adicionales de seguridad, a la vez que mejora la facilidad de uso para los usuarios finales. El 2FA basado en push confirma la identidad de un usuario con múltiples factores de autenticación que otros métodos no pueden. Duo Security es el proveedor líder de 2FA basado en push.

Tokens U2F

wellesley.edu

Los tokens U2F aseguran la autenticación de dos factores utilizando un puerto USB físico para validar la ubicación y la identidad de un usuario que intenta iniciar sesión. Para utilizar un token U2F, el usuario inserta el token en su dispositivo y pulsa el botón situado en la parte superior del mismo. Una vez activado el token, el usuario introduce su PIN y accede a sus cuentas.

WebAuthn

inovex.de

Creada por la Alianza FIDO (Fast IDentity Online) y el W3C, la API de autenticación web es una especificación que permite el registro y la autenticación mediante criptografía de clave pública. WebAuthn (API de autenticación web) permite a terceros, como Duo, aprovechar los autenticadores biométricos integrados en los ordenadores portátiles y los teléfonos inteligentes, permitiendo a los usuarios autenticarse rápidamente y con las herramientas que ya tienen a su alcance.

¿Qué amenazas aborda 2FA?

  • Contraseñas robadas
  • Intentos de phishing
  • Ingeniería social
  • Ataques de fuerza bruta
  • .Force Attacks

  • Broken Logic
  • Key Logging

Vulnerabilidades en la autenticación de dos factores

Bypassing two-factor authentication

A veces, la implementación de la autenticación de dos factores es defectuosa hasta el punto de que se puede eludir por completo.

Si primero se pide al usuario que introduzca una contraseña, y luego se le pide que introduzca un código de verificación en una página separada, el usuario se encuentra efectivamente en un estado «conectado» antes de haber introducido el código de verificación. En este caso, merece la pena probar si se puede saltar directamente a las páginas de «sólo acceso» después de completar el primer paso de autenticación. Ocasionalmente, encontrará que un sitio web no comprueba realmente si ha completado o no el segundo paso antes de cargar la página.

Tokeners de autenticación de dos factores

Los códigos de verificación suelen ser leídos por el usuario desde un dispositivo físico de algún tipo. Muchos sitios web de alta seguridad proporcionan ahora a los usuarios un dispositivo dedicado a este fin, como el token RSA o el dispositivo de teclado que podrías utilizar para acceder a tu banca online o a tu ordenador portátil del trabajo. Además de estar construidos específicamente para la seguridad, estos dispositivos dedicados también tienen la ventaja de generar el código de verificación directamente. También es común que los sitios web utilicen una aplicación móvil dedicada, como Google Authenticator, por la misma razón.

Por otro lado, algunos sitios web envían los códigos de verificación al teléfono móvil del usuario como un mensaje de texto. Aunque técnicamente esto sigue verificando el factor de «algo que tienes», se presta a abusos. En primer lugar, el código se transmite por SMS en lugar de ser generado por el propio dispositivo. Esto crea la posibilidad de que el código sea interceptado. También existe el riesgo de que se produzca un intercambio de tarjetas SIM, por el que un atacante obtiene de forma fraudulenta una tarjeta SIM con el número de teléfono de la víctima. El atacante recibiría entonces todos los mensajes SMS enviados a la víctima, incluido el que contiene su código de verificación.