2009-07-01 17 views
13

¿Cuál es su opinión sobre el envío de nombre de usuario y contraseña a su dirección de correo electrónico cuando se registran en nuestro sitio web? De esta manera, si olvidan la contraseña en el futuro, pueden búsquelo en su correo electrónico ... tampoco tendremos que implementar el escenario de olvidar/restablecer contraseña (estamos a punto de lanzarlo) ...enviando nombre de usuario y contraseña por correo electrónico después del registro de usuario en la aplicación web

¿este enfoque es lo suficientemente seguro?

  1. Mi segunda pregunta es que básicamente en nuestro sitio, el usuario rellena ciertos formularios e ingresa cierta información como su nombre, dirección, número de teléfono, información de ingresos e información personal. al final, cuando envían la aplicación, estamos pensando en enviarles un resumen de toda esta información, como su nombre, dirección, etc. para que la guarden en sus registros.

está bien ... seguro suficiente ... ¿cuáles son las preocupaciones

+3

sólo un pensamiento, probablemente, no es digno de su propia respuesta ... ¿ha considerado el uso de OpenID? Le permite eludir muchas de las preocupaciones de seguridad relacionadas con el registro de cuenta y las contraseñas, ya que nunca toca la contraseña del usuario y no es su responsabilidad cambiarla si se le olvida. – rmeador

+0

Puede que no responda la pregunta, pero sin duda vale la pena mencionarla. Si su público es lo suficientemente inteligente como para entender OpenID, úselo. –

+0

De acuerdo. Me gusta la solución OpenID. – jinsungy

Respuesta

2

La preocupación es definitivamente en el envío del correo electrónico con la contraseña. Si no está correctamente encriptado, alguien podría oler los paquetes del correo electrónico que se está enviando y recuperar la contraseña. Además, la persona podría tener una cuenta de correo electrónico secuestrada. Si no es un gran problema si alguien roba la contraseña, entonces es posible que no tenga que preocuparse, pero de lo contrario NO enviaría ninguna contraseña sin encriptar por correo electrónico.

Editar: Para responder a su segunda pregunta, ni siquiera enviaría un correo electrónico. En su lugar, enviaría un enlace para que puedan ver fácilmente su perfil/información cuando inicien sesión.

1

La mayoría de las empresas simplemente no incluyen la combinación de nombre de usuario y contraseña debido a la seguridad del cliente externo de correo electrónico. Cualquier cantidad de usuarios podría imponer fuerza bruta o adivinar la contraseña a la cuenta de correo electrónico de otros usuarios, lo que le permitiría al pirata informático ver el correo electrónico de su sitio. Entonces el pirata informático también podría causar estragos en su sitio

1

Yo diría que proporcionar una contraseña olvidada seguirá siendo vital, ya que no todos tendrán la garantía de conservar todos sus correos electrónicos (o incluso los podrán encontrar más adelante). ..

4

Mi regla de oro sería - si está bien escribirlo en una postal y enviarlo por correo, entonces está bien para el correo electrónico estándar. No creo que la información de ingresos caiga en esa categoría para la mayoría de las personas.

En cuanto a las contraseñas, si no pueden recordarlas en primer lugar, no podrán encontrar el correo electrónico que les enviaste con la contraseña, y es una admisión de almacenarlo en el claro. Lo evitaría y les daría los medios para reiniciar; lo necesitarán de todos modos.

23

Nunca envíe una contraseña u otra información confidencial a la luz. Eso incluye el correo electrónico. También debe almacenar tan poco de esto como sea posible en un formato recuperable. La comunicación no encriptada, especialmente el correo electrónico, se manipula fácilmente y no desea que las personas equivocadas obtengan contraseñas.

Si es posible:

  • almacenar sus contraseñas en un hash salado, por lo que el texto original es irrecuperable, y por lo tanto irrompible por nada menos que un ataque de fuerza bruta. Si el usuario olvida su contraseña, haga que la restablezca y envíe una contraseña temporal (que es requerida para cambiar al iniciar sesión) o un enlace de confirmación (que, de nuevo, solicita una nueva contraseña) por correo electrónico.

  • Nunca envíe nada sensible por correo electrónico; si el usuario necesita información, haga que vaya a su sitio para obtenerla. Estás usando HTTPS, ¿verdad?

+2

Dice que nunca envíe una contraseña sin cifrar, pero sugiere enviar una contraseña temporal por correo electrónico. correo electrónico == inseguro. – jinsungy

+1

De ahí el requisito de cambiarlo al iniciar sesión. Restablecer la contraseña por correo electrónico es inseguro sin importar cómo lo haga (ya sea una contraseña temporal o una URL); la esperanza es que cualquier información transmitida en el proceso sea obsoleta cuando el atacante pueda acceder a ella. La única alternativa real es el mecanismo de preguntas secretas, que se puede realizar a través de un protocolo seguro, pero hace preguntas que la mayoría de los posibles atacantes podrían simplemente mirar hacia arriba, lo que lo hace aún menos seguro que el correo electrónico. –

+1

"la esperanza es que cualquier información transmitida en el proceso sea obsoleta" ¿Qué sucede si el usuario no revisa su correo electrónico durante una semana?Créalo o no, esto sucede. Un atacante puede obtener fácilmente la contraseña temporal. Lo ÚNICO en el correo electrónico para el usuario debe ser "su correo electrónico se restableció". – jinsungy

4

Las personas suelen compartir contraseñas en todos los sitios. Por lo tanto, debe suponer que la misma contraseña funciona para la banca en línea del cliente, y nunca debe enviarla por correo electrónico ni proporcionar una forma para que (alguien que pretende ser) el cliente la recupere.

Está bien enviarles un correo electrónico de confirmación con su nombre de usuario; esto es útil.

Recuerde, si les envía su contraseña por correo electrónico es probable que se olvide de ese correo electrónico, o simplemente lo elimine. Por lo tanto, necesita otro mecanismo de restablecimiento de contraseña de todos modos.

La mejor manera de manejar el caso de "contraseña olvidada" es que el usuario le solicite que envíe un correo electrónico al usuario; cuando hacen clic en el enlace, les permite escribir una nueva contraseña.

En cuanto a la información personal (dirección, ingresos, etc.): ¿por qué alguien querría que se los enviara por correo? ¡Ellos ya lo saben! Simplemente está enviando datos privados sin cifrar a través de Internet sin ningún motivo.

2

Les digo a las personas que piensen en el correo electrónico como una postal: un empleado de cualquier compañía que lo maneja entre el remitente y el destinatario puede leerlo.

2

Cuando envíe información por correo electrónico, , no será seguro. Hay muchas maneras en que alguien puede obtenerlo. Sería un juego de niños para un hacker hábil que busca robar su información.

Absténgase de enviar cualquier información personal como contraseñas e información de ingresos por correo electrónico, ya que puede ser MUY EMBARAZANTE para usted y su organización si dicha información se filtró o se la robaron. Piensa seriamente en seguridad. Simplemente toma ese incidente para que caigan todos los ladrillos.

En cuanto a la recuperación de contraseña, lea minuciosamente Forgot Password Best Practices.

La conclusión es que una aplicación siguiendo las mejores prácticas debe permitir un usuario para restablecer su propia contraseña. Las preguntas de seguridad personal deben ser utilizadas. La aplicación no debe enviar correo electrónico, mostrar contraseñas ni establecer contraseñas temporales.

EDIT: Actualización Enlace ...

+0

¡Esto supone que el sitio está protegido con SSL! – jinsungy

+0

Y que las respuestas a las preguntas no son fáciles de adivinar o buscar. El apellido de soltera de mi madre, por ejemplo, es un registro público. –

+0

Es de sentido común que tener una pregunta de seguridad no sería suficiente, especialmente algo así como el apellido de soltera de la madre. Use múltiples preguntas de seguridad no débiles. – jinsungy

0

tengo tres normas relativas a las contraseñas:

  • No guarde las contraseñas en texto plano en la base de datos
    • ¿Por qué la gente confía en ti con ese tipo de información? Puede que solo tengas buenas intenciones, pero las grandes compañías han fallado antes, por lo que también estás en riesgo.
  • No utilice la contraseña recordatorios
  • siempre ofrecen para enviar una nueva contraseña por correo electrónico
    • Esta es la forma más segura de recuperación de contraseñas. Debe obligar al usuario a cambiar la contraseña una vez que haya iniciado sesión con la nueva contraseña.
+1

El punto 3 es propenso a ataques DoS. Siempre envíe enlaces que le permitan restablecer una contraseña, no la restablezca de inmediato. – molf

0

Como se mencionó en los comentarios, es posible que desee ver en OpenID. La manera más segura de administrar las contraseñas es eliminarlas.

1

Estoy de acuerdo con la respuesta superior y tengo que agregar: cada vez que recibo un correo electrónico de confirmación de suscripción que contiene mi contraseña, borro el correo electrónico y considero que nunca volveré a utilizar ese servicio web. Para mí, indica una falta de seguridad & conciencia de privacidad.

0

Construyo una aplicación web para enviar información confidencial por correo electrónico. No es una IU perfecta, pero es muy segura y funciona muy bien.

Existe un plugin de outlook, API para conectar un sitio web externo y el sitio web.

El concepto es que el mensaje recibido en su buzón no está en texto claro. Es un correo electrónico HTML con un enlace. Debe hacer clic en el enlace para acceder al contenido del correo electrónico. Cuando es acceso una vez, el mensaje es destruir.

El mensaje está en stock en una base de datos encriptada de nuestro lado. Puede configurar una contraseña que solo conocen las dos partes para abrir el mensaje en línea o recibir una contraseña (número Aleatorio 6) por SMS.

Es muy fácil de implementar por API.

Hay una muestra

// https://www.secure-exchanges.com/API.aspx

var nom = this.Nom.Value; 
      var prenom = this.PrenomNom.Value; ; 
      var email = this.MotPasse.Value; 
      string sujet = string.Format("Informations pour {0}, {1} courriel :", prenom, nom, email); 
      API.APISoapClient secure = new API.APISoapClient(); 
      Guid user = Guid.Empty; 
      Guid psw = Guid.Empty; 
      string serialNumber = "xxxxxxxxxxxxxxx"; 
      Guid.TryParse("xxxxxxxxxxxxxxxx8", out user); 
      Guid.TryParse("xxxxxxxxxxxxxxxxxxx", out psw); 
      API.GranttKeyAnswer a = secure.GetAccessToken(user, psw); 

      API.SendMessageAnswer a2 = secure.SendMessage(user, a.GranttAccessKey, "mon message", "", sujet, true, "[email protected]", false, "819-888-8888", serialNumber, "onlyEmail", "fr-CA"); 
Cuestiones relacionadas