Clave de sesión vs token de acceso Outh

15

¿Existe alguna ventaja en las sesiones basadas en cookies de OAuth vs (establecidas a través de un nombre de usuario / contraseña) según los siguientes supuestos?

  1. Solo hay un cliente legítimo para el servicio
  2. El secreto del cliente de OAuth se ha comprometido (por lo que cualquier persona puede emitir solicitudes válidas)
  3. El token OAuth y la sesión tienen la misma duración
  4. Ambos permiten el acceso al mismo conjunto de recursos con los mismos privilegios
  5. Todas las comunicaciones cliente-servidor bajo cualquiera de los dos esquemas se realizan a través del mismo protocolo (por el bien de los argumentos, HTTPS)
  6. El cliente y el servidor están controlados por la misma parte
pregunta Michael Mior 15.09.2012 - 02:49
fuente

2 respuestas

14

Bueno, depende ...

OAuth es un protocolo para crear una sesión. Los tokens de portador OAuth son transmitidos por el cliente utilizando el encabezado HTTP Authentication: Bearer . Esto es solo una fuente criptográfica que se transmite a través de un elemento de encabezado http, que en efecto es ( casi ) idéntico al elemento de encabezado http cookie .

¿En qué se diferencia? Bueno, las reglas para las cookies son un poco diferentes a otros elementos del encabezado. La cookie es mantenida por el navegador y se adjunta a cada solicitud a la que pertenece la cookie. Esta es la razón por la que falsificación de solicitudes entre sitios o los ataques de conducción de sesión. Al navegador no le importa de dónde vino la solicitud, adjuntará la cookie según el destino de la solicitud.

Los tokens de OAuth Bearer son un poco diferentes. Estos tokens generalmente son administrados por el cliente (JavaScript, Flash o incluso alguna aplicación de middleware). Si su aplicación utiliza JavaScript para administrar el token de portador de autenticación, entonces este valor no se aplicará automáticamente por el navegador y, por lo tanto, puede duplicarse como un token CSRF, lo cual es nítido.

Sin embargo, si está utilizando OAuth para middleware, entonces CSRF no entra en juego, por lo que no importa dónde se muestre en el encabezado.

    
respondido por el rook 16.09.2012 - 07:28
fuente
3

CSRF ya está protegido por todos los navegadores modernos, si no se limita a adjuntar cookies según el destino, si las validaciones permiten la política de origen antes de enviarlas al servidor, así que luego de investigar un poco, auth2 y la autenticación basada en sesión, ambas tienen el mismo riesgo de seguridad y la única diferencia es el encabezado que se está utilizando

    
respondido por el user2795270 25.12.2013 - 16:30
fuente

Lea otras preguntas en las etiquetas