¿Es seguro este flujo de inicio de sesión a través de una cuenta de correo electrónico autenticada?

0

Quiero que los usuarios inicien sesión ingresando un correo electrónico y luego comprobando que controlan ese correo electrónico. Solo me importa que ellos controlen el correo electrónico y, por lo tanto, quiero evitar agregar otra contraseña al proceso si puedo hacer una transferencia segura al acceso de seguridad de un correo electrónico enviado a esa cuenta de correo electrónico (para eliminar una clase de ataque, no No se preocupa por las partes fundamentalmente confiables que pueden acceder al correo electrónico legítimamente, como la gente de TI en una organización).

Lo he pensado un poco y he desarrollado el siguiente esquema. Aquí hay muchas respuestas que me dan información sobre las partes, pero me preguntaba si este esquema específico, en su totalidad, es suficiente para que no tenga que usar mi propio sistema de contraseñas además de una verificación por correo electrónico. sistema, para evitar que terceros ilegítimos inicien sesión con una dirección de correo electrónico a la que no deben poder acceder.

  1. envíe la dirección de correo electrónico [email protected]
  2. generar un token aleatorio, por ejemplo, 'First-token' (¡solo imagina que es aleatorio!), con una caducidad de unos 2 minutos (configurable, solo un poco de tiempo corto)
  3. envíe un correo electrónico a [email protected], que contiene un enlace para enviar un GET a través de https a un punto final de inicio de sesión con la dirección de correo electrónico y el "primer token" como parámetros de consulta
  4. la primera vez que el extremo de inicio de sesión recibe el 'primer token' y '[email protected]', mientras que el 'primer token' aún no ha caducado, se genera otro token 'segundo-token' y se devuelve. El 'segundo token' se convierte en el token de acceso de mayor duración para [email protected], con un vencimiento mayor (días, quizás)
  5. si el punto final de inicio de sesión se encuentra con 'first-token' y '[email protected]' después de que 'first-token' haya caducado, se devuelve un error

Entonces, suponiendo que el usuario tenga su cuenta de correo electrónico protegida con una contraseña que sea difícil de descifrar / diseñar socialmente y todo lo demás, ¿qué tan seguro es este esquema de inicio de sesión?

Mi pensamiento inmediato es que, como he oído que el correo electrónico no es seguro y se puede interceptar como texto simple en el cable, esto no es seguro en absoluto. Sin embargo, no entiendo muy bien qué tan grande es el problema: ¿los correos electrónicos enviados a una cuenta pueden ser interceptados sin conocer los servidores específicos por los que pasará el correo electrónico? ¿Qué tan probable o incluso factible es que un correo electrónico específico sea dirigido, interceptado y leído si no lo es, por ejemplo, parte de la organización cuyo servidor de correo electrónico finalmente recibirá el correo electrónico?

Y, si no es seguro, entonces, ¿no significa eso que la mayoría de los usuarios olvidaron la contraseña? Te enviaré un enlace de descanso por correo electrónico. Los flujos en Internet son vulnerables a los ataques, ya que todos utilizan algo muy similar, o incluso más débil, que el esquema anterior. Solo estoy hablando de hacer de esta puerta trasera la puerta principal, pero de cualquier manera la puerta va a existir, ¿verdad? ¿Qué me lleva a creer que este esquema podría considerarse seguro en la práctica?

He pensado en posibles agujeros de seguridad en este esquema en la medida en que mi conocimiento sobre el tema lo permita, ¡realmente apreciaría la ayuda de los expertos!

    
pregunta davnicwil 18.09.2014 - 01:23
fuente

2 respuestas

0

El inicio de sesión por correo electrónico se puede hacer de manera segura como lo describió anteriormente si el sitio web está configurado para usar SSL / TLS. El correo electrónico en sí mismo se envía de forma no segura (legible) a través de la red y puede ser interceptado. Sin embargo, si el atacante no tiene el primer token, es inútil tener solo la segunda clave que se envía por correo electrónico.

El inconveniente es el hecho de que solo puede iniciar sesión una vez, ya que el primer token que establezca debe estar (muy) limitado por el tiempo. Cuanto más tiempo se establezca el marco de tiempo, más tiempo se le permite a la fuerza bruta forzar la autenticación.

También tenga en cuenta que es posible que existan algunas medidas de seguridad que retrasarán la entrega del correo electrónico hasta 15 minutos. Esto será muy molesto para los usuarios que lo hagan cada vez que quieran iniciar sesión.

    
respondido por el Dirk Krijgsman 05.11.2018 - 10:47
fuente
0

Recientemente se publicó una pregunta similar: ¿Es esta autenticación sin contraseña? flujo seguro?

En resumen, mi respuesta fue: no lo hagas (crear un nuevo "protocolo de seguridad" requiere mucho conocimiento, esfuerzo y control de calidad y, aparte de eso, la combinación de correo, parámetros de obtención, etc., suena bastante propenso a errores).

A la pregunta "qué tan seguro es el correo":

El problema es que tanto el envío de correos electrónicos (mediante smtp) como el envío de correos electrónicos (mediante pop3) no están encriptados. Es exactamente lo mismo que usar http para el tráfico web: un hombre en el medio (mitm) puede leer y comprometer todo.

La pregunta es, ¿cuál es el riesgo de ser víctima de un ataque de mitm? Esto depende en gran medida del escenario. ¿Estás a menudo conectado a un wifi público? Entonces es muy probable que haya un hacker o solo un troll en la red. ¿Está principalmente conectado a un LAN privado conmutado y configurado correctamente? En este caso, es más difícil para un atacante comprometer la red y detectar el tráfico. ¿Qué tan responsable es su comportamiento de Internet en general en términos de descargar "accidentalmente" un malware? Y así sucesivamente

    
respondido por el Alex 05.12.2018 - 16:19
fuente

Lea otras preguntas en las etiquetas