¿El envío de enlaces de autorización a través del correo electrónico es una vulnerabilidad?

0

No estoy seguro de si mi redacción es correcta, pero si adjunto un token único dentro de los enlaces de correo electrónico que autorizará al usuario si se hace clic, ¿consideraría esto una vulnerabilidad?

La contraseña restablecida en parte incluye esto. Ese enlace te autoriza a restablecer tu contraseña, pero aquí estoy hablando de un enlace más duradero.

Actualmente no tengo en mente ninguna implementación en particular, pero siempre he pensado que ingresar credenciales después de hacer clic en un enlace es un proceso engorroso.

De esa manera, perdemos la capacidad de enviar un correo electrónico masivo exactamente al mismo correo electrónico, y tal vez se produzca una vulnerabilidad si usamos un servicio de correo masivo externo (como muy probablemente), o la configuración del correo de los receptores permita el rastreo de alguna manera.

¿Alguien ha tenido altibajos?

    
pregunta EralpB 20.02.2014 - 19:03
fuente

2 respuestas

3

El problema con esto es que en la práctica actual, el correo electrónico no es realmente un canal muy seguro para enviar este tipo de información. No hay mucha información. una forma de evitar esto, a menos que convenza a la masa abrumadora de la humanidad para cambiar drásticamente sus hábitos de correo electrónico. Probablemente eso nunca sucederá, así que tenemos que vivir con él lo mejor que podamos.

Si un enlace de "autenticación" caduca después de poco tiempo, el riesgo de una fuga es mínimo. Es muy poco probable que alguien entre en la cuenta de correo electrónico entre el momento en que -El correo es enviado y la hora en que el usuario lo ve. También ayuda si, una vez que se hace clic en el enlace, expira inmediatamente, porque esto hace que la ventana de oportunidad sea aún más corta.

Para los fines de restablecimiento de contraseñas, esto generalmente se considera "suficientemente bueno". En estos casos, la ventana de oportunidad para un atacante es muy corta , porque el usuario tuvo que desencadenar deliberadamente la creación del enlace y le pedimos que verificara su correo electrónico. Es probable que lo compruebe y haga clic en el enlace en cuestión de minutos. Eso es lo que queremos.

Pero cuanto más tiempo permanezca activo ese enlace, mayor será el riesgo de que alguien más vea el enlace primero. Si lo usan, tendrá problemas, porque no tiene forma de saber que esto no es el usuario al que deseaba enviar el mensaje. Esa es la razón basada en la seguridad por la que no es una buena idea usar un enlace de autenticación a largo plazo.

Hay otra razón más pragmática: ¿cómo recordará el usuario qué enlace usar? Si el usuario tiene que memorizar o escribir su propia URL de autenticación, es al menos tan difícil de usar como una contraseña. , plus el usuario deberá escribirlo en lugares donde no se ocultará. Si confiamos en que el usuario haga un marcador del navegador, tan pronto como el usuario tenga que tratar con varias máquinas (salvo los mecanismos de sincronización del navegador, que presentan sus propios problemas), el marcador se perderá. Si el usuario tiene que revisar su correo electrónico cada vez que quiere iniciar sesión, ese es otro cuadro de diálogo de usuario / pase, y aunque no tenemos que preocuparnos, todavía no hemos guardado ningún usuario. tiempo.

    
respondido por el The Spooniest 20.02.2014 - 21:44
fuente
1

No debe tener un enlace enviado por correo electrónico para la autorización a largo plazo, ya que probablemente se verá comprometido con el tiempo y el usuario no tiene una buena manera de saber si se filtró. El punto de enviar un enlace de restablecimiento de contraseña es que el usuario sabrá si pierde el acceso a su cuenta y el restablecimiento solo se puede usar una vez.

Si desea que alguien pueda autenticarse al hacer clic en un enlace de un correo electrónico, debe usar SSL para intercambiar una cookie de sesión y luego usar esa cookie de sesión para la autenticación. Dado que la cookie se intercambia de forma segura, evitará un tercero que obtenga acceso sin comprometer primero al cliente.

    
respondido por el AJ Henderson 20.02.2014 - 19:20
fuente

Lea otras preguntas en las etiquetas