¿Se considera una buena práctica usar la autenticación de Facebook / Google?

47

Muchos servicios, sitios y aplicaciones ofrecen la opción 'iniciar sesión con Facebook' o 'iniciar sesión con Google'. Para muchos sitios, el navegador abre una ventana separada en la que puede ingresar su nombre de usuario y contraseña. De esta manera, puede verificar la URL y convencerse de que el origen realmente es Google / Facebook / lo que sea. El inicio de sesión en esta ventana debe ser seguro y no hay razón para preocuparse (aparte de cualquier problema de privacidad que pueda tener).

Sin embargo, este no es siempre el caso. Aunque no puedo encontrarlos ahora, estoy bastante seguro de que hay algunos sitios que requieren que inicie sesión con su cuenta de Facebook / Google en su sitio (por lo que la URL que se muestra no es Facebook / Google). Estoy seguro de que hay algunas aplicaciones de escritorio que hacen esto también. Un ejemplo que puedo dar es la experiencia GeForce de Nvidia. Aparte de la ridiculez de tener que iniciar sesión en Google o Facebook para actualizar un controlador, esto no parece ser una buena práctica, ya que no puedo comprobar si inicio sesión en Google o si la ventana de inicio de sesión está falsificada.

He leído un par de veces que el uso de otros servicios para iniciar sesión se considera una buena práctica. ¿Es esto cierto? Puedo ver algunos problemas serios con él.

    
pregunta Ruben 10.03.2017 - 10:55
fuente

5 respuestas

33
  

Estoy seguro de que hay algunos sitios que requieren que inicie sesión con su cuenta de facebook / google en su sitio (por lo que la URL que se muestra no es facebook / google). Estoy seguro de que hay algunas aplicaciones de escritorio que hacen esto también.

Esta es una muy mala práctica para los sitios web, ya que OAuth / OpenID (que son protocolos utilizados para delegar la autenticación) está diseñado para solucionar el caso de uso exacto. Pero no hay otra forma de hacerlo en las aplicaciones de escritorio, porque las aplicaciones de escritorio no tienen la funcionalidad de redireccionamiento.

Una página web puede reenviarte a la autenticación de Google o Facebook, donde puedes ingresar tus credenciales, y luego, cuando te autenticas correctamente, Google / Facebook puede redirigirte de regreso a donde viniste.

Esto es imposible de hacer en una aplicación de escritorio. Una forma de evitarlo es que la aplicación de escritorio abra un navegador web en el que se autentique con su proveedor de autenticación (Google / Facebook), y que ocurra algo de magia detrás de escena puede autenticarlo en la aplicación de escritorio. Pero en general, este es un problema no resuelto: simplemente tendrá que confiar en la aplicación de escritorio para no robar sus credenciales. De hecho, abrir un navegador web tampoco soluciona el problema; ahora solo confía en el navegador para no robar sus credenciales (el navegador también es una aplicación de escritorio)

  

He leído un par de veces que el uso de otros servicios para iniciar sesión se considera una buena práctica. ¿Es esto cierto?

Se considera una buena práctica porque

  1. Es fácil de usar: los usuarios no tienen que recordar cien credenciales diferentes

  2. En general, ofrece una mejor seguridad: no tiene que confiar en cientos de implementaciones diferentes y esperar que cada sitio esté libre de errores y almacene su contraseña de manera segura; solo tiene que confiar en Google o Facebook para cuidar la seguridad Y son mucho más capaces de hacerlo que su sobrino adolescente que escribió otro sistema de inicio de sesión para su nuevo sitio.

Por supuesto, también significa que ahora estás poniendo todos tus huevos en una canasta. Si alguien infringe tu cuenta de Google / Facebook, estás en un problema mucho mayor si utilizas esa cuenta para autenticarte en otros cien sitios. Además, existen problemas de privacidad al permitirle a su proveedor de autenticación saber qué sitios visita y con qué frecuencia inicia sesión.

    
respondido por el Pascal 10.03.2017 - 13:40
fuente
6

La primera parte es principalmente una respuesta parcial para el caso de la aplicación de escritorio. Instalar una aplicación de escritorio no es lo mismo que navegar por un sitio remoto. En este último, confías en que tu navegador te proteja (tanto como pueda) de posibles ataques. En el primero, debes confiar en que la aplicación no contenga malware. No hago mucha diferencia entre confiar en Chrome para no enviar todas mis informaciones personales a Google y confiar en una aplicación NVidia para no robar su contraseña de Google.

La única diferencia real es que agrega un nuevo lugar de ataque posible a su contraseña única de Google. Si le preocupa, simplemente cree una cuenta auxiliar, que no use para los accesos sensible y utilícela para NVidia y / u otras aplicaciones de escritorio.

Dicho esto, es definitivamente una mala práctica que un sitio o incluso una aplicación de escritorio se ponga en camino y tome en cualquier momento la responsabilidad de pasar su contraseña a un servicio de autenticación externo. Los protocolos como OAuth o CAS se diseñaron específicamente para permitir que un sitio o aplicación delegue la autenticación a un servicio de terceros y nunca vea la contraseña . El cliente confía en la autenticación. Para proteger su credencial, el servicio de la aplicación confía en la autenticación. Servicio para identificar de forma segura al cliente. Parada completa Tener que confiar en el servicio de la aplicación para no robar las credenciales es, en mi opinión, un error de diseño.

Para el caso de uso de escritorio, la forma correcta es permitirle descargar de forma segura la actualización a través de su navegador, usted asume la responsabilidad de esa parte, y luego la aplicación toma el archivo descargado para hacer su actualizaciones De esa manera, si algo sale mal (por ejemplo, descargó un archivo comprometido de un sitio pirata), usted es responsable de ello. Pero alguna aplicación. Los desarrolladores no siempre son conscientes de quién debe ser responsable de qué ...

    
respondido por el Serge Ballesta 10.03.2017 - 12:21
fuente
3

En mi opinión no es una buena práctica. Algunas preguntas no pueden ser ignoradas:

  • Google y Facebook ya exploran nuestra privacidad, vendiendo nuestra información personal a empresas y anunciantes de terceros. Es solo más comida para el pescado. Es por eso que proporcionan este servicio.
  • Como dice @Pascal, todos los huevos en la misma canasta confían en un tercero. No es una buena opción hoy en día.
  • Puede desarrollarse usted mismo un servidor Oauth, sin la necesidad de utilizar Facebook o Google. De esta manera, puede estar seguro de lo que está sucediendo con sus datos.
respondido por el rew1nd 10.03.2017 - 13:53
fuente
3

Creo que fue este video donde se discute exactamente esto.

Para resumir:

"Si tiene la opción de no almacenar la contraseña y no manejarla, sino que otra persona (preferiblemente más grande) haga eso por usted, siempre elija esa opción. Este será un problema potencial menos para preocuparse. . "

    
respondido por el Иво Недев 10.03.2017 - 17:30
fuente
-1

Bueno, si Google y Facebook lo usan, uno tiene que ser un poco exigente para no considerarlo una buena práctica. Tienen la mejor gente de autenticación del mundo y parecen sentirse cómodos con OAUTH2.

Tiene sus ventajas: no tiene que escribir el código de mantenimiento de la contraseña, puede sentirse bastante cómodo, ya que su código se ha probado exhaustivamente, etc. Uno de sus inconvenientes es que puede ser una molestia probar dentro de su aplicación, y sus usuarios tienen que tener una cuenta en un proveedor.

Habiendo dicho que ya no uso OAUTH2, me muevo a Two Factor usando sms y códigos de desafío. Me sorprendió lo fácil que fue conectarse, ninguno de los inconvenientes anteriores es cierto: es fácil de probar y es mucho más probable que las personas tengan una celda que una cuenta. Es bastante económico (aunque OAUTH2 es gratis), y por mi parte, creo que es más seguro. Por supuesto, YMMV

    
respondido por el Mark Aurit 10.03.2017 - 20:55
fuente

Lea otras preguntas en las etiquetas