No creo que sea una vulnerabilidad. Cuando lo piensas como una contraseña enviada en texto sin formato, entonces sí es comprensible pensar que hay una vulnerabilidad aquí, pero no es una contraseña.
El envío de un enlace como https://example.com/reset.php?code=97fy978y39fny39478fyn3
, que es un enlace de una sola vez en el que hace clic para acceder a un formulario de restablecimiento de contraseña en el que escribe su nueva contraseña, es básicamente lo mismo que enviarle una contraseña de un solo uso. simplemente tomaron el code
del enlace y lo llamaron una contraseña temporal.
La idea en sí misma no es vulnerable, pero la implementación incorrecta en su mayoría lo es.
¿Qué podría salir mal aquí?
-
El code
o la contraseña podrían ser muy cortos o no generados con un criptográficamente seguro PRNG .
-
El code
o la contraseña podrían dar acceso a áreas de la cuenta por un período prolongado de tiempo antes de establecer una nueva contraseña.
-
El code
o la contraseña podrían permanecer válidos durante mucho tiempo, haciendo que su exposición final sea un riesgo.
-
No usar HTTPS, lo que le da a MitM la oportunidad de interceptarlos.
Actualización: Tienes razón, el correo electrónico está fuera del alcance de la implementación, pero luego nos saldríamos completamente del tema. podemos discutir que todo el sistema está roto , pero no hay otra opción. Ellos podrían enviarte el código en un SMS, pero ¿qué pasaría si tu amigo estuviera sosteniendo tu móvil? Podrían enviarlo a su buzón (un poco tonto) pero ¿qué pasa si alguien abrió su buzón? La única opción segura que queda es que envíen a un representante de la compañía para que vaya a su dirección y le solicite su identificación y tome sus huellas dactilares (que proporcionó en el formulario de registro) y luego reinicie tu contraseña.
Verás, el correo electrónico es una manera de facto de contactar al propietario de la cuenta original, por lo que es lo mejor que pueden hacer.
En general, solo estaba tratando de mostrarle que la seguridad de la contraseña única de texto simple es exactamente la misma que la del enlace único utilizado por casi todos los servicios web (Facebook, Twitter, StackExchange, ... )