NOTA: Soy consciente de que existen muchas preguntas similares sobre el tema del almacenamiento de contraseñas de forma segura, sin embargo, estoy publicando esto porque creo que es lo suficientemente diferente de las preguntas de almacenamiento de contraseñas existentes porque esta pregunta es principalmente sobre cómo un servicio puede enviar de forma segura al usuario una contraseña generada aleatoriamente en texto sin formato y, sin embargo, mantenerla segura en su extremo (es decir, en la base de datos) en lugar de almacenar de forma segura una contraseña proporcionada por el usuario.
Me di cuenta de que el servicio VPN que uso (PIA) está en la lista de delincuentes de texto sin formato , y mi opinión parcial es que no lo hacen. En cualquier caso, me pregunto si es realmente una buena idea que un servicio como PIA genere las contraseñas de los usuarios y las envíe al usuario en texto sin formato mientras las almacena de forma segura en una base de datos utilizando las mejores prácticas descritas en otro lugar (hashing, salazón, múltiples iteraciones, etc).
Si tuviera que implementar algo como esto, mi pensamiento sería hacer un flujo como este:
- El usuario se registra (y no proporciona una contraseña)
- Genere una contraseña y almacénela temporalmente
- Transmitir la contraseña en texto sin formato al usuario a través de cualquier método
- Rompe la contraseña y guárdala en la base de datos
- Eliminar permanentemente la contraseña de texto sin formato almacenada y / o sobrescribirla un poco.
Mi pregunta es, ¿es posible lograr la funcionalidad descrita anteriormente en negrita de una manera similar a la que se menciona arriba o de otra manera?
Nota: No estoy preguntando acerca de la seguridad de transmitir la contraseña, solo si existe una buena manera de que el servicio lo mantenga seguro mientras aún puede. envíe al usuario su contraseña en forma clara.