¿Es mejor cuando un usuario olvida su contraseña para que restablezca su contraseña o simplemente para devolverle la contraseña perdida?¿Es mejor restablecer la contraseña o devolver la contraseña perdida?
Respuesta
Es más seguro restablecer la contraseña, ya que un tercero podría interceptar la contraseña enviada.
Editar: Por reinicio, supongo que te refieres al patrón común de enviar al usuario un token que permite al usuario definir una nueva contraseña. Obviamente, si solo genera una nueva contraseña y la envía por correo, es tan insegura como simplemente enviar la contraseña original. El token solo debe poder usarse una vez, de lo contrario será tan bueno como una contraseña.
único riesgo es que un tercero intercepta el token y el cambio de la contraseña antes de el usuario lo hace. Este es un riesgo menor que enviar la contraseña, ya que una contraseña interceptada será útil siempre que la contraseña esté en uso, mientras que el token solo será útil una vez, y que descubrirá si alguien ha usado el token.
Tenga en cuenta que el riesgo más alto probablemente no sea que la gente escuche el tráfico de correo electrónico, sino que alguien revise su correo más tarde o piratee su cuenta de correo web, por lo que es realmente malo tener contraseñas válidas en su buzón.
Entonces, ¿cómo obtendrá el usuario la contraseña de reinicio, dado que el correo es inseguro? :) – Zed
@Zed: envíe un enlace al usuario que contenga un valor aleatorio de un solo uso (que recuerde) para que cuando hagan clic en él pueda restablecer su contraseña y enviarles una nueva (a través de https). –
@Greg: ese es el punto. No hay diferencia entre enviar por correo una "contraseña aleatoria" o un "valor aleatorio que el usuario puede usar para ...". Los usa para identificar _temporariamente_ al usuario. Un tercero puede manipular cualquiera de ellos. – Zed
Enviarles la contraseña perdida implica que los mantiene en texto plano o encriptados en un cifrado bidireccional que no es seguro.
me gustaría sugerir siguiente mecanismo de Wordpress para resetear la contraseña:
- enviar un enlace con la confirmación de restablecimiento de contraseñas
- seguir el enlace de confirmación a la página lo que generaría contraseña aleatoria y enviarlo para el usuario
- Deje que el usuario inicie sesión con la nueva contraseña y cambie a algo mejor recordando.
Estaba pensando en enviar una contraseña de reinicio, aunque parece más fácil para el usuario enviarles allí la contraseña anterior. –
En todo caso, es una cuestión de confianza: ¿realmente desea que los administradores de cada sitio que use conozcan las contraseñas que elija? Claro, idealmente las personas usarían contraseñas diferentes para cada sitio, pero pocas lo hacen, es demasiado complicado. – Amber
Solo agregue un poco a la respuesta de Eimantas. Por seguridad, el servidor nunca debe guardar la contraseña de un usuario en texto plano. Debería guardar la contraseña cifrada de una vía. Cuando un usuario inicia sesión, el cliente debe cifrar la contraseña con javescript y enviar la cadena cifrada al servidor. Esto es un poco como funciona el inicio de sesión de Unix. Con frecuencia, un usuario usa la misma contraseña para diferentes sitios web. Si lo mantiene en texto plano, obtendrá acceso a todos ellos. Como usuario, me preocuparía mucho por eso. – user172818
No debe poder devolver la contraseña en primer lugar. Su mejor oportunidad es generar una contraseña aleatoria de uso único y enviarla a la dirección de correo electrónico registrada del usuario.
Puede implementar preguntas de seguridad (como "el nombre de su primer perro") y otro misticismo, pero creo que los usuarios tienden a olvidar las respuestas a estas incluso más que sus contraseñas, volviendo al punto de partida.
Si utiliza (en) preguntas de seguridad, NO DEBEN ser tratadas como una contraseña de respaldo, sino solo como guardianes de acceso a un mecanismo de restablecimiento de contraseña.De lo contrario, se rompe su cuenta de correo electrónico cuando alguien busca la escuela secundaria a la que asistió y la prueba como una respuesta para "¿Dónde conoció a su cónyuge?" (como le pasó a Sarah Palin el año pasado). –
Pero es importante enviar una contraseña aleatoria solo después de un correo electrónico de confirmación inicial. Si no ve esto, una persona malintencionada puede hacer clic en el botón Solicitar contraseña, ingrese su dirección de correo electrónico y deje su cuenta inaccesible. Si desea iniciar sesión con su contraseña original sin consultar primero el correo electrónico, se produce un error de inicio de sesión. Esta es una mala experiencia de usuario y molesta. Esta técnica utilizada por un script de bot puede realizar una denegación de servicio para cada dirección de correo electrónico conocida utilizando el servicio. – DEAD10CC
Muchos usuarios usan la misma contraseña en muchos sitios web. Para respetar la privacidad de las personas, se recomienda almacenar siempre las contraseñas unidireccionales cifradas con funciones hash como SHA-256 o MD5. Pero no debe usarlos sin sal adicional, ya que los ataques de diccionario se pueden realizar simplemente con esas contraseñas. El cuidado de la privacidad de los usuarios forma la base de una relación de confianza entre usted y sus clientes.
También recomiendo el mecanismo de restablecimiento de contraseña mencionado por Eimantes. El mensaje de correo electrónico de confirmación es la tarea principal en este proceso. Siempre permita que el usuario confirme su solicitud de restablecimiento de contraseña para evitar que las solicitudes falsas conduzcan a una cuenta inaccesible.
En lugar de calcular una contraseña aleatoria, puede reenviar al usuario a una página donde puede ingresar una nueva contraseña.
Además, tenga en cuenta que el envío de contraseñas a través de http sin ssl es muy inseguro, especialmente en redes públicas como los puntos de acceso de wlan. Eche un vistazo a los métodos de autenticación de mensajes como HMAC en combinación con Diffie-Hellman-Key-Exchange. O al menos use una función hash + salt adicional durante el inicio de sesión.
SHA-256 y MD5 son demasiado rápidos para considerarse seguros. Mira BCrypt o PBKDF2. –
- 1. Formas seguras para restablecer la contraseña o dar una contraseña anterior
- 2. - Recuperable (Restablecer contraseña)
- 3. ¿Cómo generar una contraseña aleatoria o URL temporal para restablecer la contraseña en Zend Framework?
- 4. Cómo recuperar o restablecer la contraseña del paquete SSIS?
- 5. Generar URL temporal para restablecer la contraseña
- 6. Formulario Django + para restablecer la contraseña
- 7. CodeIgniter: función de contraseña perdida, ¿cómo implementar?
- 8. Restablecer la contraseña de raíz de MySQL cuando no se conoce la contraseña actual
- 9. Diseñar la plantilla de correo para restablecer la contraseña
- 10. Restablecer la contraseña de ASP.NET: ¿problemas de seguridad?
- 11. ¿Cómo restablecer la contraseña de root de mysql?
- 12. Restablecer la contraseña de root de mysql5 en macports
- 13. Restablecer el estado de recuperación de contraseña
- 14. Cómo restablecer la contraseña de administrador de Django
- 15. ¿Cómo recibir una notificación cuando un usuario cambia la contraseña o solicita un restablecimiento de contraseña?
- 16. PHP desglosando la contraseña
- 17. Encriptación de la contraseña
- 18. La mejor manera de almacenar la contraseña en sql
- 19. ¿Manera segura de recuperar o reiniciar la contraseña?
- 20. ¿Olvidó su contraseña? ¿Cuál es el mejor método para implementar una función de contraseña olvidada?
- 21. ¿Cuál es la mejor manera de almacenar una contraseña o clave privada en un host web?
- 22. gitosis pidiendo la contraseña
- 23. Cómo cifrar la contraseña
- 24. ¿Cuál es la duración óptima para la contraseña del usuario?
- 25. Cómo restablecer la contraseña del usuario desde la interfaz de administrador
- 26. ¿Cómo puedo restablecer una contraseña de usuario en hudson?
- 27. La mejor manera de hacer código para "Contraseña olvidada"
- 28. htaccess - usando la contraseña O la lista blanca de IP
- 29. ¿Cuál es la mejor práctica para dónde se debe realizar la comparación de contraseña?
- 30. restablecer contraseña de root con configuración mysql incorrecta
eche un vistazo a: http://stackoverflow.com/questions/647514/what-is-the-best-way-to-implement-2-way-encryption-with-php – Jacco
no debería tener contraseña original en primer lugar, tiene que ser hash irrecuperable. – Stann