Detectar la implementación maliciosa de OAuth

7

Me pregunto cómo puede un usuario final detectar un OAuth implementado malintencionadamente si tiene dos patas o tres patas. En particular, me interesan los casos en los que el solicitante del consumidor presenta maliciosamente al usuario una página de proveedor de recursos falsos para ingresar las credenciales. Normalmente, si se espera que el consumidor reenvíe al solicitante a Facebook digamos , pero lo que el consumidor le presenta al usuario es una página de Facebook falsa. Eso permitiría al consumidor falsificar la identidad del usuario en el futuro ...

¿OAuth recomendó algo al respecto?

En particular, me interesan los casos de uso en un entorno de navegador.

    
pregunta smiley 17.08.2011 - 10:23
fuente

3 respuestas

9

El OAuth RFC declara:

  

OAuth utiliza tokens para representar la autorización otorgada a la      Cliente por el propietario del recurso. Normalmente, las credenciales de token son      emitido por el servidor a petición del propietario del recurso, después de      autenticando la identidad del propietario del recurso (usualmente usando un      nombre de usuario y contraseña).

     

Hay muchas formas en que un servidor puede facilitar el aprovisionamiento      de credenciales de token. Esta sección define una de esas formas, utilizando HTTP.      Redirecciones y usuario-agente del propietario del recurso. Esta redirección-      El método de autorización basado en tres pasos:

     
  1. El cliente obtiene un conjunto de credenciales temporales del servidor      (en la forma de un identificador y secreto compartido). Lo temporal      Las credenciales se utilizan para identificar la solicitud de acceso en todo      el proceso de autorización.

  2.   
  3. El propietario del recurso autoriza al servidor a otorgar al cliente      solicitud de acceso (identificada por las credenciales temporales).

  4.   
  5. El cliente usa las credenciales temporales para solicitar un conjunto de      credenciales de token del servidor, que le permitirán acceder      los recursos protegidos del propietario del recurso.

  6.   

Para tener la autorización, el cliente (el sitio que usa sus datos) debe redirigirlo al servidor que contiene sus datos para registrarse.

En la Sección 2.2 , los estados del RFC:

  

La forma en que el servidor maneja la solicitud de autorización,      incluyendo si usa un canal seguro como TLS / SSL está más allá      El alcance de esta especificación. Sin embargo, el servidor DEBE primero      verificar la identidad del propietario del recurso.

Pero definitivamente, yo (como propietario del recurso) no usaré ninguna OAuth-ORization sin verificar el certificado del sitio.

Entonces, para OAuth 1.0 esto no es obligatorio.

El OAuth 2.0 RFC sigue siendo un borrador, pero entiendo que es requiere TLS

  

10.9. Autenticidad de los puntos finales

     

Con el fin de prevenir los ataques de hombre en el medio y de phishing, el      El servidor de autorización DEBE implementar y requerir TLS con el servidor      autenticación definida por [RFC2818] para cualquier solicitud enviada al      Autorización y puntos finales de token. El cliente DEBE validar el      certificado TLS del servidor de autorización de acuerdo con su      requisitos para la autenticación de identidad del servidor.

[...]

  

10.11 [...]      Para reducir el riesgo de ataques de phishing, los servidores de autorización      DEBE utilizar TLS en cada punto final utilizado para la interacción del usuario final

Por lo tanto, la autenticación se basa en el protocolo TLS tal como se analizó en el blog recientemente .

Para resumir, sospecho que cualquier intento de OAuth sin TLS es malicioso. Y, por supuesto, lo mismo si los certificados SSL no se validan.

    
respondido por el M'vy 17.08.2011 - 11:54
fuente
2

Mi enfoque ha sido abrir una nueva pestaña y asegurarme de que estoy conectado a cualquier servicio que pretendo autenticar, digamos Facebook. Luego, cuando el nuevo sitio me redirecciona a Facebook, solo tengo que hacer clic en algo para aceptar, no volver a ingresar las credenciales. Si me presentan un formulario para ingresar las credenciales, sabré que algo está mal.

    
respondido por el Chris 17.08.2011 - 22:49
fuente
1

No hay cura para esto, ya que es un ejemplo típico de phishing, que se puede hacer sin incluir la palabra OAuth en tu publicación en absoluto ...

Cada aplicación puede redirigir a sus usuarios a un sitio falso "facebook" , y requerir que el usuario ingrese sus credenciales de facebook . El único remedio es que el propio usuario mire cuidadosamente la URL en el navegador, al ingresar sus credenciales supuestamente en " facebook" .

En cuanto a OAuth de dos patas, no tiene que preocuparse, porque se trata de una comunicación de máquina a máquina en la que los usuarios finales (y los navegadores) no participan ...

    
respondido por el luben 17.08.2011 - 15:28
fuente

Lea otras preguntas en las etiquetas