Inicio de sesión sin contraseña a través del correo electrónico: consideraciones de seguridad

16

Estoy proponiendo el uso de un sistema de inicio de sesión que envíe un token de inicio de sesión (con alta entropía) por correo electrónico al usuario. Después de usar el token, el usuario recibe otro token por correo electrónico y el token anterior se invalida. El nuevo token se envía con información sobre el uso del último token, por lo que si alguien obtiene acceso a un token de alguna manera, el usuario lo sabrá.

La implementación que he recibido ha sido excelente en cuanto a UX, pero estoy enfrentando mucha presión por parte de personas que no son de tecnología para "probar" que esto es seguro. Además, a nuestro equipo de marketing le preocupa que sea difícil enseñarle a los clientes.

Aparte de la vida útil de los tokens de inicio de sesión únicos (pueden durar un par de semanas), ¿qué hace que esto sea diferente a la funcionalidad de contraseña olvidada? Además, y aquí es donde esta pregunta no es tan fácil de responder como otras que son relativamente similares aquí, ¿hay compañías respetadas que hayan implementado un esquema de inicio de sesión como este y hay algunos documentos que puede recomendar que señalo para probar el seguridad de este sistema?

    
pregunta James Kassemi 14.03.2014 - 02:24
fuente

2 respuestas

9

Usted tiene razón en que la seguridad de su sistema es similar a la de la mayoría de los sistemas de restablecimiento de contraseñas. Es tan seguro como las direcciones de correo electrónico, ni más ni menos. Tenga en cuenta que algunos procesos de restablecimiento de contraseñas plantean preguntas adicionales (por ejemplo, ¿cuál es el nombre de su primera mascota?) Que brindan cierta seguridad adicional.

Tendrá dificultades para persuadir a un no técnico de la seguridad de esto. Un enfoque sería hacer un Modelo de amenaza de su sistema y mostrárselo. Aunque dudo que lo lean. La cuestión es que la seguridad informática está lejos de ser perfecta, por lo que realmente tiene que pensar qué sucede si sale mal. Si tiene una infracción, puede parecer mucho más difícil justificar su sistema no estándar. Se puede decir mucho por hacer lo mismo que los demás.

He visto sistemas en vivo que adoptan su enfoque, incluidos Doodle y RT . Algunas encuestas también lo hacen.

Tengo curiosidad por la razón por la que restableces el token después de que se haya utilizado. ¿En qué pensabas?

Una amenaza a tener en cuenta es en las barras de búsqueda del navegador. Si un usuario tiene estos instalados, todos los sitios web que visitan pueden ser enviados al motor de búsqueda. Esto podría terminar con la adición de http://yoursite/token/ al índice de Google, lo que claramente no es deseable. Su enfoque de tokens de un solo uso realmente evita esto. Otro enfoque es utilizar siempre las etiquetas meta "o sin índice" o robots.txt.

Lo que ha creado aquí es lo que yo llamaría "inicio de sesión único de un hombre pobre". Es posible que tenga en cuenta que existen algunos estándares para el inicio de sesión único en la web, como OpenID, OAuth, Mozilla Persona y más. Sin embargo, ninguno de estos ha ganado una masa crítica.

    
respondido por el paj28 14.03.2014 - 03:31
fuente
6

Sí, esto me fascina como un posible mecanismo de autenticación sin contraseña. Y como usted & otros ya lo han mencionado, ofrece la misma seguridad que la mayoría de los sistemas de contraseña olvidada ... aunque los mejores do requieren que responda algún tipo de pregunta de seguridad también, haciéndolo más como de dos factores.

De todos modos, el ahora desaparecido sitio Passwordless.org ofreció un buen resumen ...

  

Aquí es cómo funciona la autenticación sin contraseña con más detalle:

     
  1. En lugar de solicitar una contraseña a los usuarios cuando intentan iniciar sesión en su aplicación o sitio web, solo pregúnteles su nombre de usuario (o correo electrónico o número de teléfono móvil).
  2.   
  3. Cree un código de autorización temporal en el servidor backend y almacénelo en su base de datos.
  4.   
  5. Envíe al usuario un correo electrónico o SMS con un enlace que contenga el código.
  6.   
  7. El usuario hace clic en el enlace que abre su aplicación o sitio web y envía el código de autorización a su servidor.
  8.   
  9. En su servidor backend, verifique que el código sea válido y cámbielo por un token de larga duración, que se almacena en su base de datos y se envía de vuelta para que se almacene también en el dispositivo cliente.
  10.   
  11. El usuario ha iniciado sesión y no tiene que repetir este proceso hasta que su token caduque o quieran autenticarse en un nuevo dispositivo.
  12.   

Si todos los sitios en Internet se autentican de esta manera, la respuesta a Heartbleed podría haber sido rápida y decisiva. En cambio, nos enfrentamos al hecho de que millones de contraseñas robadas nunca se cambiarán.

¿Existen empresas respetadas que hayan implementado un esquema de inicio de sesión como este y hay algunos documentos que puede recomendar para que demuestren la seguridad de este sistema?

Sé que Medium.com ganó un poco de prensa recientemente por solo requerir una dirección de correo electrónico para la autenticación. Algunos artículos ...

Y Yahoo hace algo similar al proporcionar contraseñas únicas a través de SMS:

En cuanto a los trabajos de investigación, todavía no estoy seguro, pero me encantaría conocer algunos.

    
respondido por el Simon East 16.07.2015 - 08:24
fuente

Lea otras preguntas en las etiquetas