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.