¿Por qué usar códigos de un solo uso para copias de seguridad de autenticación de dos factores?

7

Estoy creando una aplicación web que utiliza autenticación de dos factores.

Al implementar la función de recuperación, veo que la mayoría de las compañías (por ejemplo, Apple, Facebook, Github) proporcionan un conjunto de ~ 15 códigos de respaldo, que son códigos de una sola vez de 7 a 10 caracteres para enviar al servidor junto con las credenciales del usuario como parte del proceso de recuperación de la cuenta.

No entiendo esta práctica. ¿Por qué la necesidad de códigos de una sola vez? ¿No sería más sencillo tener un código de respaldo de uso múltiple?

    
pregunta Nino Filiu 30.07.2018 - 13:32
fuente

1 respuesta

7

En comparación con algo así como SMS o OTP de correo electrónico, no creo que haya un caso tan sólido para hacer estos usos de una sola vez, pero los mismos argumentos todavía se aplican.

Supongamos que tengo los códigos impresos en papel. Luego, durante el proceso de recuperación, el código de recuperación pasa a través de todos los nodos siguientes:

  • Texto sin formato: teclado, sistema operativo, navegador de mi computadora
  • CIFRADO POR HTTPS: navegador - > punto final TLS del servidor (por ejemplo, CloudFront)
  • Texto sin formato: punto final TLS - > equipo de red - > servidor de aplicaciones
  • Texto sin formato: servidor de aplicaciones < - > db < - > otros componentes internos.

El punto es que incluso con HTTPS, hay muchos de nodos que tendrán su código en la memoria (o tal vez en los registros) como parte del proceso de recuperación. Si el código es de uso múltiple, debe confiar en que cada uno de esos nodos es honesto y no está infectado con malware. Si el código es de un solo uso, una vez que se usa, no importa si termina en los registros o lo que sea.

No es un argumento sólido, pero es lo mejor que se me ocurre.

    
respondido por el Mike Ounsworth 30.07.2018 - 15:31
fuente