¿Es seguro enviar la contraseña al correo electrónico del usuario?

94

Qué tan seguro es el envío de contraseñas por correo electrónico a un usuario, ya que el correo electrónico no está protegido por HTTPS.

¿Cuál es la mejor manera de asegurarlo? ¿Debo usar el cifrado?

    
pregunta user310291 01.08.2012 - 12:18
fuente

5 respuestas

148

No debes nunca enviar las contraseñas en forma clara, ni debes guardarlas en forma clara. Debería hacerlos con un hash criptográfico unidireccional lento, como bcrypt o PBKDF2. Si un usuario olvida su contraseña, le ofrece una función de "restablecer contraseña", que envía un enlace de restablecimiento de una sola vez a su cuenta.

Un esquema como el siguiente es razonable:

  • Hash todas las contraseñas usando un salt más bcrypt / PBKDF2. Consulte mi razonamiento aquí .
  • Valide los hashes al iniciar sesión.
  • Si un usuario olvida su contraseña, envíele un enlace seguro de restablecimiento de una sola vez, utilizando un token de restablecimiento generado aleatoriamente almacenado en la base de datos. El token debe ser único y secreto, por lo que hash el token en la base de datos y lo compara cuando se usa el enlace.
  • Exigir que un token solo se pueda usar para restablecer la contraseña del usuario que lo solicitó.
  • Una vez que se usa el token, debe eliminarse de la base de datos y no debe permitirse que se vuelva a usar.
  • Todos los tokens equivalentes a contraseña, incluidos los tokens restablecidos, caducan después de un breve período de tiempo, por ejemplo. 48 horas. Esto evita que un atacante explote tokens no utilizados en una fecha posterior.
  • Inmediatamente muestre un formulario para permitir que el usuario establezca una nueva contraseña. ¡No utilice contraseñas generadas aleatoriamente temporales!
  • Haga todo esto sobre SSL.

Recomiendo encarecidamente leer a través de La Guía Definitiva del sitio web basado en formularios Autenticación para un conjunto completo de directrices sobre cómo crear sistemas de inicio de sesión seguros.

    
respondido por el Polynomial 01.08.2012 - 12:33
fuente
41

El correo electrónico no es seguro. Enviar una contraseña por correo electrónico es un riesgo para la seguridad. Para mitigar el riesgo, puede (en algunas situaciones) hacer que la contraseña enviada por correo electrónico sea una contraseña de un solo uso, lo que solo desbloquea la posibilidad de que el usuario seleccione una nueva contraseña por su cuenta.

Esto es lo que hacen los buenos sistemas de "Olvidé mi contraseña para este sitio web": el usuario hace clic en el botón "maldición, olvidé mi contraseña" y se envía un correo electrónico que contiene una URL (con HTTPS) que incorpora un identificador de sesión aleatorio, y apunta a una página que le permite al usuario elegir una nueva contraseña. La URL es la "contraseña de un solo uso". Con este esquema, al menos puede, desde el lado del servidor, saber cuándo se usó la URL.

Si puede realizar el cifrado correctamente , es decir, si puede enviar un mensaje OpenPGP o S / MIME cifrado con la clave pública del usuario, entonces el usuario tiene un mensaje privado / par de claves públicas: en ese caso, ¿por qué usaría contraseñas?

    
respondido por el Thomas Pornin 01.08.2012 - 13:31
fuente
22

Es una mala práctica enviar contraseñas al usuario, ya que eso significaría que tienes una copia en texto claro de la contraseña del usuario.

No se me ocurre ninguna buena razón para hacer esto. Hay otras formas más seguras de lograr lo que se necesita.

Para obtener una respuesta general con respecto a la seguridad del correo electrónico, sugiero que lea este enlace , que contiene buena información.

Si TIENE QUE enviar información confidencial por correo electrónico, use un esquema como PGP u otras técnicas de encriptación para proteger los datos.

    
respondido por el Ayrx 01.08.2012 - 12:26
fuente
4

Si tiene la 'contraseña clara' para enviar en primer lugar (aparte del proceso de registro), lo está haciendo mal. ¡Nunca, nunca almacene la contraseña de texto plano! Muchas empresas como Sony Music y similares han sido quemadas últimamente por eso ... y déjenme decirles que los consumidores no están contentos.

    
respondido por el Vaughan Hilts 01.08.2012 - 23:58
fuente
3

Haciendo eco de las publicaciones anteriores, el correo electrónico no es seguro y usted debería nunca enviar por correo electrónico datos confidenciales , en particular las contraseñas. Especialmente debido a que no están cifrados y se encuentran en texto claro, es extremadamente fácil para cualquiera piratear su correo electrónico y obtener acceso a ellos a través de la red pública.

Si usted o su cliente tienen problemas para recordar sus contraseñas, debe usar un administrador de contraseñas seguro. Este es un sitio web que alberga una lista de sus contraseñas en una bóveda completamente encriptada. Los buenos son KeePass o LastPass.

Si usted es una empresa que está intentando enviar a los clientes su contraseña nuevamente, debe tener configuradas las preguntas de seguridad que los clientes respondan cuando crean su cuenta inicialmente. De esta manera, si lo olvidan, pueden hacer clic en un enlace que los envía para responder a estas preguntas correctamente y restablecer su contraseña.

Según su propio conocimiento, este es un blog informativo, que justifica el cifrado y advierte contra el uso de ciertas contraseñas enlace de Ziptr.

    
respondido por el Katie Campbell 01.08.2012 - 15:13
fuente

Lea otras preguntas en las etiquetas