La respuesta a la pregunta realmente depende del método en el que se implementa la autenticación de dos factores (2FA), el escenario en el que se implementa y los recursos disponibles para que un atacante intente derrotar el método seleccionado de autenticación de dos factores.
Existen muchos métodos para lograr la autenticación de “dos factores”, pero la mayoría implica aumentar un nombre de usuario / contraseña con un factor independiente adicional. Los métodos comunes de autenticación de dos factores y sus desafíos se enumeran a continuación.
Generadores sin conexión de contraseña de un solo uso (OTP)
Los generadores de OTP sin conexión incluyen tokens de OTP de hardware tradicionales que usan una pieza de hardware o software para generar un código de varios dígitos que se utiliza para demostrar la posesión de ese generador de tokens. La solución funciona sembrando tanto el generador como el servidor con el mismo secreto simétrico, y usando un algoritmo matemático para generar el OTP basado en la hora actual o en un contador. Idealmente, estas soluciones se implementan en una pieza discreta de hardware, pero también se pueden implementar en un software que se puede ejecutar en un dispositivo como un teléfono móvil. El enfoque permite que la solución se use para autenticar sin que el dispositivo generador esté conectado a la red.
Hay una variedad de implementaciones de este enfoque, el más popular es RSA SecurID (propietario) y los protocolos TOTP / HOTP (parte del conjunto de estándares IETF de OATH).
La seguridad del sistema depende de dos elementos clave:
- Seguridad de la semilla simétrica: si un atacante compromete el generador OTP o el servidor utilizado para validar la OTP generada / enviada para obtener acceso a esa semilla simétrica, el juego termina. El atacante puede generar la OTP correcta en cualquier momento y, siempre que posea el primer factor de autenticación (nombre de usuario / contraseña), suplanta al usuario final sin ser detectado. Este fue el problema causado por la violación de la instalación de fabricación SecurID de RSA en 2011: los atacantes obtuvieron acceso a los secretos simétricos en millones de tokens de hardware SecurID. Y, por supuesto, también es importante asegurarse de que, en el caso de las soluciones de token de hardware, el token de hardware se entregue al usuario final correcto y no se intercepte.
- Seguridad del canal utilizado para enviar OTP: como se señaló anteriormente, el generador de OTP está fuera de línea; el generador de OTP se usa para crear una contraseña de un solo uso que el usuario envía utilizando un dispositivo conectado a la red (generalmente además de su nombre de usuario y contraseña). Desafortunadamente, si el dispositivo utilizado para enviar la OTP (y nombre de usuario y contraseña) se ve comprometido a través de malware, o el usuario está diseñado socialmente para enviar esta información a un sitio web fraudulento, le da al atacante la capacidad de realizar una autenticación única en en nombre del usuario. Este ha sido un vector de ataque común contra sitios web de banca en línea, un enfoque exacerbado por kits de herramientas como el troyano Zeus.
Además de los desafíos de seguridad enumerados anteriormente, los tokens OTP de hardware también sufren otras deficiencias:
- Usabilidad: los usuarios finales deben transcribir la OTP desde su dispositivo generador al dispositivo que solicita las credenciales de autenticación. Esto puede ser un desafío para los usuarios, ya que los códigos OTP suelen tener entre seis y ocho dígitos y están listos para errores de transcripción. Esto puede conducir a la frustración del usuario en caso de intentos fallidos de autenticación, y la rebelión de los usuarios contra el requisito de usar 2FA. Cuando se implementa OTP a través de una aplicación de software en un teléfono móvil, el problema de usabilidad se ve agravado por el requisito de que el usuario cambie entre aplicaciones para generar una OTP y, posteriormente, vuelva a la aplicación original para ingresar a la OTP.
- Implementabilidad: en el caso de los tokens OTP de hardware, las empresas deben comprar / adquirir tokens, configurar su servidor OTP para usar los tokens aprovisionando los secretos simétricos correctos y asociando los tokens con las cuentas de los usuarios, y distribuyendo tokens a los usuarios finales. Esto agrega tiempo y costo adicionales para implementar una autenticación sólida en cualquier organización de tamaño suficiente, lo que significa que muchas organizaciones solo implementarán 2FA en un subconjunto de usuarios. El uso de dispositivos / aplicaciones móviles como generadores de OTP alivia un poco este dolor, pero aumenta la posibilidad de que el malware en el dispositivo móvil pueda robar el secreto simétrico que siembra el algoritmo de generación de OTP.
- Mantenimiento: una vez más, en el caso de los tokens OTP de hardware, hay costos adicionales ocultos. Los tokens de hardware requieren baterías, que pueden agotarse y requieren reemplazo. Además, los usuarios tienden a perder, romper u olvidar los tokens, lo que requiere la implementación de tokens OTP de reemplazo o alternativas temporales. Otro problema oculto es que algunos tokens de hardware, como RSA SecurID, tienen una vida útil incorporada; en esencia, el token es un bien perecedero que caducará después de que haya expirado una duración específica.
Si bien los tokens de hardware brindan una buena seguridad basada en hardware, solo lo hacen si confía en que su proveedor no se verá comprometido, sepa que sus usuarios no ingresan su OTP indiscriminadamente, protegen los secretos de OTP en su servidor OTP y usted no Tenga en cuenta los costos directos e indirectos. Las aplicaciones de generador de OTP en el teléfono móvil abordan algunos, pero no todos, los problemas con los tokens de hardware, con la posibilidad elevada de que un atacante con o sin acceso físico pueda robar el secreto simétrico del teléfono.
SMS / Voz Entrega de contraseña por única vez
La persistente disponibilidad de datos y conectividad telefónica ha dado lugar a una alternativa al enfoque tradicional del generador de OTP descrito anteriormente. En lugar de usar un token de hardware dedicado, o incluso una aplicación, algunos proveedores están entregando soluciones que entregan una OTP generada por el servidor al usuario mediante un mensaje de texto (enviado al número de teléfono conocido del usuario) o mediante una llamada telefónica que lee el OTP en voz alta utilizando síntesis de texto a voz.
Varios proveedores de soluciones han creado tales soluciones, incluidas RSA, Authentify, Microsoft / PhoneFactor y muchas otras.
En esta solución, la seguridad del sistema depende de elementos ligeramente diferentes:
- Seguridad del canal utilizado para entregar la OTP: en última instancia, la posesión del número de teléfono utilizado para recibir la OTP es el factor crítico para asegurar esta solución. Si alguien roba el teléfono del usuario final y conoce su nombre de usuario y contraseña, puede suplantar al usuario final a un proveedor de servicios. Sin embargo, hay otros ataques que son posibles. Por ejemplo, un atacante puede recibir los mensajes SMS o llamadas telefónicas del usuario final clonando la tarjeta SIM del teléfono móvil. Alternativamente, el atacante puede simplemente diseñar socialmente a la compañía telefónica o al proveedor de servicios para redirigir el tráfico de SMS / teléfono a un nuevo número (“Oh, perdí mi teléfono, ¿puede reenviar todo el tráfico a 555-1234 ahora?”). Finalmente, un atacante puede tener éxito en convencer al usuario de que instale software para interceptar y reenviar la OTP al atacante, como es el caso de los ataques Hesperbot más sofisticados contra aplicaciones de banca en línea.
- Seguridad del canal utilizado para enviar OTP: como se indicó anteriormente, si el usuario recibe la OTP de forma segura, pero ingresa la OTP en una aplicación o navegador web comprometido, entonces un atacante puede perpetrar un ataque en tiempo real para obtener una sesión válida con el proveedor del servicio
Si bien las soluciones de SMS y OTP entregadas por voz evitan los problemas de implementación y mantenimiento de los generadores OTP tradicionales, comparten muchos de los mismos desafíos en términos de usabilidad. Además, tienen los siguientes inconvenientes adicionales:
- Variabilidad de costos: en algunos casos, el costo de 2FA en estas soluciones se administrará por evento de autenticación, lo que significa un costo establecido por SMS o llamada de voz entregada. No solo puede ser un desafío predecir el volumen de transacciones (rápido: ¿cuántas veces tiene la intención de autenticarse en su VPN este año?), Los costos de entrega también pueden ser variables (es decir, un SMS cuesta más entregar a Antartica que Atlanta ) Esto puede hacer que el presupuesto sea un desafío para las organizaciones de TI.
- Confiabilidad: tanto el SMS como la OTP entregada por voz requieren que el usuario posea su teléfono y tenga recepción. Esto no siempre es cierto y puede ser especialmente problemático en situaciones específicas. Por ejemplo, un usuario que se encuentra en itinerancia a través de las fronteras internacionales puede no recibir mensajes SMS de manera oportuna (la mayoría de los SMS y OTP de voz deben usarse en un intervalo específico) o incurrir en costos de envío adicionales. En verticales específicos, los entornos operativos pueden prohibir o interferir con el uso de teléfonos; en particular, los entornos de atención médica que incluyen áreas de protección electromagnética pueden ser especialmente problemáticos.
En la mayoría de los casos, los SMS se han adoptado para la banca de consumo y las aplicaciones de Internet de consumo como “suficientemente bueno”. Las soluciones tienen la ventaja de que son fáciles de implementar y relativamente económicas. Dicho esto, son dolorosos de usar (especialmente en aplicaciones solo para dispositivos móviles), y la seguridad que ofrecen probablemente no sea tan alta como muchos vendedores podrían representar.
Autenticación basada en notificaciones push
Las notificaciones push aprovechan la creciente disponibilidad de teléfonos inteligentes con conexiones de datos “siempre activas”. Estas soluciones utilizan una aplicación móvil dedicada para recibir solicitudes para aprobar un intento de autenticación. Estos enfoques varían dramáticamente en la implementación, pero en general intentan abordar los desafíos de usabilidad y costos con SMS y soluciones OTP entregadas por voz.
La seguridad de estos enfoques dependerá en gran medida de la implementación de la solución; La mayoría de los enfoques tienden a ser propietarios:
- Seguridad del material criptográfico: en algunos casos, la aplicación móvil utilizará la criptografía de clave pública para permitir que el teléfono genere respuestas criptográficas a un desafío entregado mediante la notificación push; en otros casos, se pueden usar secretos simétricos (en algunos casos extremos, la solución de notificación push actúa como una capa sobre la OTP tradicional, con la aplicación esencialmente actuando como una forma inteligente de abordar los problemas de usabilidad de la OTP). Como antes, la seguridad de estas soluciones dependerá de la seguridad de cualquier material criptográfico (claves simétricas, claves privadas, tokens de sesión) suministradas al dispositivo.
- Seguridad del usuario del canal para entregar la notificación push: esto dependerá del servicio particular de notificación push utilizado (Apple Push Notification Services o Google Cloud Messaging). Los proveedores pueden o no elegir emplear métodos adicionales para aumentar la seguridad del mecanismo de entrega, pero eso solo genera más preguntas cuando es probable que dichos enfoques sean propietarios y no estén sujetos a un escrutinio adecuado.
Los sistemas basados en notificaciones push, como los de Duo Security, Nok Nok Labs (para quienes trabajo) y otros abordan dramáticamente los problemas de implementación y mantenibilidad de los generadores OTP tradicionales, y los problemas de variabilidad de costos de las soluciones SMS y OTP entregadas por voz. . También tienen la ventaja de que pueden usarse para proporcionar una verdadera autenticación “fuera de banda”, donde el dispositivo y el canal utilizados para aprobar una solicitud de autenticación es independiente del canal utilizado originalmente para instigar la solicitud de autenticación.
Por desgracia, ellos también tienen problemas:
- Confiabilidad: Al igual que con los SMS y OTP entregados por voz, la efectividad de estas soluciones depende de la confiabilidad de la conexión de datos. Sin embargo, estas soluciones al menos tienen la ventaja de que generalmente no hay un cargo por transacción por autenticación.
- Seguridad del dispositivo: en algunos casos, la posesión del dispositivo del usuario final es suficiente para comprometer su cuenta; Es posible que algunas soluciones ni siquiera requieran un nombre de usuario y una contraseña para activar la autenticación, y pueden no requerir que el usuario se autentique en su teléfono para aprobar una solicitud de autenticación.
A medida que más organizaciones implementen aplicaciones web y móviles, esperaría ver intentos de incorporar capacidades de autenticación basadas en inserción en las aplicaciones móviles para aumentar la seguridad cuando el usuario visita la aplicación web.
Otros métodos 2FA
Wow, esta respuesta es mucho más larga de lo que esperaba escribir, así que voy a cerrarla por el momento. Existen otros enfoques para 2FA, incluido el uso de tarjetas inteligentes (que tienen requisitos de hardware que los hacen costosos y no apropiados para la mayoría de las implementaciones de consumidores o empresas), respuestas basadas en el conocimiento (que requieren que el usuario ingrese información que, en teoría, solo ellos lo saben; en la práctica, esto no es 2FA, ya que KBA es simplemente otra contraseña). Dejaré los detalles de respuesta sobre esos y otros enfoques para otro día.