security - quien - Inicio de sesión instantáneo desde el correo electrónico. ¿Por qué tan pocos han hecho esto?
cual es el codigo para confirmar mi correo electronico (11)
Intenté buscar esto pero no apareció nada. Discusión o enlaces relevantes son solicitados.
Supongamos que vamos a enviar un correo electrónico para atraer a un usuario para iniciar sesión en nuestra aplicación web súper social. El objetivo de este correo electrónico es hacer que regresen al sitio y hurguen un poco más antes de que se olviden de nosotros, así que naturalmente queremos reducir la barrera para que regresen. Las cookies ayudan a evitar que necesiten iniciar sesión en todo momento, pero aún así no ayudan en el caso cuando el usuario ha olvidado sus credenciales. Queremos una gratificación instantánea aquí: un clic directo al bebé de acción. En su lugar, ¿por qué no podemos enviar al usuario una forma hash de un token sensible al tiempo generado aleatoriamente que hemos almacenado en el DB? Si pueden devolver este token al servidor, podemos confiar en su identidad.
Este escenario parece que podría ser seguro, siempre y cuando haya gestionado los tokens correctamente. El proceso sería algo así:
Antes de enviar el correo electrónico de recordatorio a John Doe, genere un token de número aleatorio (un número lo suficientemente grande como para evitar conjeturas) que caduque después de unos días.
En el correo electrónico, incluya una url que contenga una forma hash del token (perhap xor con la ID del usuario).
Cuando John Doe inicia sesión en su correo electrónico y hace clic en el enlace, el servidor verifica la existencia del token en el DB y que no está caducado. Si el token existe, el servidor lo registra automáticamente.
Seguridad: suponemos que el correo electrónico de John Doe en realidad pertenece a John Doe, aunque solo sea porque las direcciones de correo electrónico se verifican como parte del proceso de registro. Cualquier usuario que tenga acceso al correo electrónico de John Doe podría acceder a su cuenta; sin embargo, esto no es nuevo. Muchos sitios ya suponen que la cuenta de correo electrónico del usuario es segura porque implementan la función para restablecer la contraseña al correo electrónico.
Mi Google ha encontrado solo un sitio que hace esto, OKCupid, que es un sitio de citas en línea. ¿Alguien sabe de otros sitios que hacen esto? ¿Por qué no es más común el inicio de sesión instantáneo por correo electrónico? ¿Seguridad? ¿Falta de beneficio sustancial por la complejidad añadida?
¿Cómo puede estar seguro de que este enlace hash no sería interceptado por un tercero? No veo esto como muy seguro.
Al hacer que sea perfectamente normal que las personas hagan clic en los enlaces de inicio de sesión en los correos electrónicos, básicamente los está configurando para una trampa de phishing. La próxima vez que aparezca un correo electrónico de phishing que se parece a un correo electrónico promedio con un enlace de inicio de sesión, simplemente hará clic en él y se dejará engañar.
Como saben, así es como restablece la contraseña funciona (básicamente). ¿Por qué no iniciar sesión así? Porque básicamente estás poniendo un nombre de usuario y contraseña en texto claro en la cadena de consulta, lo cual es algo malo . Ver: ¿Es segura una cadena de consulta HTTPS?
En algunos sitios puede separar las "cosas importantes" de las "cosas realmente muy importantes". Digamos que las "cosas importantes" en su sitio permiten a los usuarios ver las políticas, los miembros activos y los mensajes de grupo entrantes. Las "cosas realmente muy importantes" le permiten cambiar políticas, restablecer contraseñas y agregar nuevos usuarios. Entonces, lo que puedes hacer es lo siguiente:
- Permita que su enlace http brinde acceso a las "cosas importantes". Después de todo, no es el fin del mundo si las personas conocen las políticas, los usuarios o los mensajes en su sistema.
- Solicite una autentificación de nombre de usuario / contraseña real si se realiza una solicitud para las "cosas realmente, realmente importantes".
En esencia, estás construyendo diferentes niveles de confianza dentro de tu sistema. Los correos electrónicos que envía para atraer a los usuarios son casi siempre para actividades inocuas ("hey, revisa el nuevo widget que hemos agregado"), y si las personas desean permanecer en el sitio, entonces no les importará el tiempo adicional para la autenticación.
Esto es muy similar a cómo Godaddy maneja las actualizaciones de información de contacto de registro de dominio (aunque le piden que escriba o pegue el token en su forma segura, en lugar de hacerlo parte de la URL), así que tal vez no sea tan infrecuente como cree.
Lea Verou tiene una idea interesante sobre eso:
Esta característica podría activarse solo si el usuario en cuestión estuvo inactivo por un tiempo. Los usuarios frecuentes no lo necesitan tanto y, aunque lo hicieran, no se escapan tan fácilmente, por lo que no es tan crucial.
Fuente: http://lea.verou.me/2010/08/automatic-login-via-notification-emails/
Los correos electrónicos no son seguros.
No puede asumir que el correo electrónico no se verá en tránsito, y tampoco puede suponer que el usuario leerá el correo electrónico a través de SSL (especialmente si usa un cliente de correo web).
Por lo general, restablecer la contraseña por correo electrónico (¿con suerte?) Requiere un segundo factor: la pregunta de seguridad.
No tendrías una pregunta de seguridad.
Muchos sitios web permiten a los usuarios recuperar sus contraseñas a través de la verificación de correo electrónico. Tu idea no es muy diferente, pero:
- Si un usuario no inicia sesión en su sitio siguiendo un enlace en SSL, entonces su clave se pasa sin codificar y puede ser secuestrada a través de la detección de paquetes.
- Dijiste que el token que generarás caducará en unos días. El largo tiempo de caducidad lo hará más vulnerable al secuestro de la sesión. Los tokens creados para la recuperación de contraseñas generalmente caducan en menos de una hora.
Si el usuario reenvía el correo electrónico a un amigo por cualquier motivo, ese amigo podría iniciar sesión como usuario.
Sospecho que una mejor idea sería permitir el inicio de sesión usando OpenID / OAuth. Entonces, los usuarios no tienen que recordar ni ingresar una contraseña para su sitio bajo ninguna circunstancia, por lo tanto, deben llegar desde un ''¡volver!'' el correo electrónico no es diferente de cualquier otra ruta.
¡Por supuesto, requiere que ya tengan una cuenta con Facebook, Google o algún otro competidor!
Dado que hay una gran cantidad de "restablecimiento de contraseña", hace lo mismo en este hilo:
Recuerde que es bastante común (y descuidado) que los mecanismos de restablecimiento de contraseña se combinen con uno o más de los siguientes:
Detección de actividad sospechosa . Sin esto, no se puede negar que está haciendo sistemas de autenticación de aficionados (¿tal vez dejar ese trabajo a personas más capaces?). Por ejemplo, ¿el restablecimiento de la contraseña proviene del país donde el usuario generalmente usa el sistema? ¿Han habido múltiples intentos fallidos de iniciar sesión en la cuenta (o en cualquier otra cuenta recientemente) (ataques de diccionario, botnets, etc.)? Es probable que los mecanismos de restablecimiento de contraseña que ha utilizado y evaluado al formular sus decisiones aquí estén de hecho (debajo de la superficie) utilizando algún tipo de detección de actividad sospechosa.
Pregunta (s) de seguridad . https://www.owasp.org/index.php/Choosing_and_Using_Security_Questions_Cheat_Sheet
Por el amor de Dios, personas, por favor, lea esto cuidadosamente: https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet