¿El uso de OAuth para iniciar sesión es más o menos seguro que el mantenimiento de sus propias contraseñas?

7

Pros:

  • La complejidad de la administración de contraseñas es mantenida por una compañía con una política de seguridad más sólida. Supongamos que protegen las contraseñas correctamente.
  • El usuario no tiene que mantener otra contraseña duplicada vulnerable.

Contras:

  • La empresa cliente de OAuth ahora posee tokens de portador reales. Esto parece un paso atrás, ya que solo hay que mantener presas de contraseña irrecuperables. No estoy seguro si estas fichas de portador pueden hacer mucho sin embargo.

¿Hay una razón crucial por la que uno es claramente más seguro que el otro? ¿Hay una preferencia aceptada dentro de la comunidad de seguridad? Es posible que me esté perdiendo los datos de OAuth que dan una idea de esto.

    
pregunta djechlin 14.03.2016 - 06:54
fuente

1 respuesta

3

La idea detrás de OAuth es que, como servicio, no necesita conocer las credenciales (una vez más) para autenticar y personalizar el servicio.

Tiene razón en que los tokens del portador (parte de OAuth 2 en de hecho) son tan sensibles como el nombre de usuario / contraseña. Pero también lo es.

La idea es que con OAuth 2 usted se autentique con el proveedor del servidor OAuth 2, el servidor que le entrega (o, de hecho, la aplicación con la que se autentica) un conjunto de tokens para usar.

  • Token de portador, token de corta duración para usar directamente para solicitudes autenticadas.
  • Actualizar token, token de larga duración para obtener un nuevo token de portador.

La aplicación OAuth los utiliza junto con sus propios secretos previamente registrados (ID de aplicación y clave de aplicación) y una conexión TLS (https) para mantener las cosas seguras y secretas.

El resultado final es un esquema que es al menos tan seguro como el esquema de inicio de sesión del proveedor de servicios OAuth,
sin tener que mantener un nuevo conjunto de credenciales y sin tener que revelar las credenciales a la posible tercera parte que es el servicio de cliente OAuth.
Como beneficio adicional, no hay ningún requisito para que el cliente use TLS y aún tenga un inicio de sesión seguro
(aunque yo recomiendo TLS para cualquier aplicación web).

Y cuando se usan 'subvenciones' es posible limitar la información para la que se pueden usar los tokens,
como facebook, google y github muestran usuarios que se autentican con oauth.

La siguiente imagen tomada de Wikipedia ilustra cómo auth funciona de manera diferente a los esquemas de nombre de usuario / contraseña y por qué puede ser ventajoso.

    
respondido por el LvB 14.03.2016 - 10:30
fuente

Lea otras preguntas en las etiquetas