¿Cuál es la mejor experiencia de usuario para restablecer un nombre de usuario o contraseña olvidado?

No creo que haya un mejor camino para esto. Depende de la seguridad y la sensibilidad de la información protegida por la contraseña. Mis recomendaciones:

Baja seguridad, bajo riesgo (por ejemplo, una base de datos de recetas o un tablero de mensajes):

  • Permitir al usuario recuperar la contraseña en la sesión a través de la verificación de una sola pieza de información adicional (por ejemplo, preguntas de seguridad multifactoriales)
  • envíe la contraseña a la dirección de correo electrónico (o envíe un mensaje de texto al número de teléfono) asociada con la cuenta

Alta seguridad, alto riesgo (cualquier cosa con PII, como banca o atención médica):

  • envíe por correo electrónico un enlace de restablecimiento de contraseña (no la contraseña en sí) a la dirección de correo electrónico en el archivo, con una explicación clara de que alguien de una dirección IP registrada lo solicitó, y las acciones que el usuario debe tomar si esta no era su intención.
  • requiere hablar con un humano, por teléfono o chat seguro
  • requieren verificación de múltiples factores de información adicional (pares secretos Q / A elegidos por el usuario)
  • Permitir múltiples canales de verificación de recuperación de contraseña, incluido el teléfono de texto o TTS (Chase hace esto)

El problema con las contraseñas de baja seguridad para aplicaciones de bajo riesgo (como una base de datos de recetas) es que las personas a menudo usan la misma contraseña varias veces (o incluso todo el tiempo). Entonces, si sus contraseñas se ven comprometidas de alguna manera, el atacante puede probar fácilmente esas contraseñas con otros servicios, en particular los proveedores de correo electrónico (generalmente, la dirección de correo electrónico se revela en el mismo conjunto de datos) y con frecuencia será exitosa.

Dicho esto, creo que debería ser suficiente para hash contraseñas de forma segura (Blowfish, no MD5) para el almacenamiento de la base de datos, y utilizar enlaces de restablecimiento en lugar de contraseñas de texto sin formato (temporales) en los correos electrónicos. Por supuesto, esto no evitará que las personas usen una contraseña fácil de adivinar, pero solo hay mucho que puede hacer. Gracias a los recientes hacks de Sony, afortunadamente las personas son algo más conscientes de la vulnerabilidad de la contraseña.

Restablecer las contraseñas es un paso realmente importante que no se puede evitar.

Facilitar el proceso es algo que ya se ha minimizado. Dado que es un problema de seguridad, debe incluir un método de terceros (número de teléfono o correo electrónico) en el proceso.

1. seleccione el nombre de usuario / correo electrónico del formulario si se ha completado y muestra directamente una pantalla que dice: “Se ha enviado un enlace de confirmación a su dirección de correo electrónico o número de teléfono, haga clic en el enlace para generar una nueva contraseña”.

2. Si “SIEMPRE” tiene un número de teléfono adjunto a su perfil, el envío de un SMS con un código seguro que, al ingresarlo en la pantalla, permitirá generar una nueva contraseña, es otro método estándar seguido por muchas organizaciones financieras (bancos, tarjetas de crédito, etc.)

En el pasado, las preguntas de seguridad se usaban mucho para proporcionar esta funcionalidad, pero eso no tiene ningún sentido ahora. Con el transcurso del tiempo, la mayoría de los sitios web (si no todos) han abandonado ese proceso.

La única forma de mejorar el flujo será reduciendo los pasos, mientras se asegura de que el usuario siempre sienta que su información es segura y que la única forma de acceder a ella es mediante algún método personal. Por lo tanto, no veo ninguna forma alternativa de confirmación de correo electrónico adicional o verificación telefónica.

Me encantaría saber si hay otros métodos posibles para esto.