Se me pidió que proporcionara una interfaz web pública a la que se asigna una dirección de correo electrónico (que pertenece a nuestros usuarios) para clientes públicos (por ejemplo, una aplicación web o una aplicación móvil nativa) ya sea que un usuario haya activado la autenticación de dos factores. Actualmente, estoy evaluando el riesgo de seguridad introducido con este requisito. Tengo un mal presentimiento pero hasta ahora no encontré ningún problema importante con eso. Esto es lo que puedo pensar:
- La información de si un usuario ha activado o no un usuario 2FA puede ser utilizada por un atacante para enfocarse primero en cuentas débiles (por ejemplo, ataques de adivinación de contraseña en línea). Sin embargo, es bien conocido que solo una muy pequeña fracción de usuarios tiene 2FA habilitado. Por lo tanto, un atacante no ahorraría mucho esfuerzo si distingue entre las cuentas 1FA y 2FA, por lo que la ventaja es bastante pequeña.
- Al saber que un usuario tiene habilitado 2FA, el atacante también sabe que nos ha dado un número de teléfono porque usamos códigos SMS como segundo factor. No veo ninguna ventaja aquí para el atacante ya que 1) debería ser muy improbable que un usuario no tenga un teléfono (móvil) y 2) otros usuarios (sin 2FA) también nos hayan dado sus números de teléfono.
- Un atacante podría adivinar que un usuario tiene datos que vale la pena proteger. Este es actualmente el mayor problema que puedo ver. En caso de que exista alguna vulnerabilidad en nuestro sitio que le permita a un atacante obtener los datos de nuestros usuarios, un atacante podría concentrarse primero en las cuentas 2FA para obtener la mayor cantidad de información valiosa posible antes de que se detecte el ataque.
¿Perdí algo?