OAuth token di accesso vs chiave di sessione

15

C'è qualche vantaggio rispetto alle sessioni basate su cookie OAuth (stabilite tramite nome utente / password) sotto le seguenti ipotesi?

  1. Esiste solo un client legittimo per il servizio
  2. Il segreto del client OAuth è stato compromesso (quindi le richieste valide possono essere rilasciate da chiunque)
  3. Il token OAuth e la sessione hanno la stessa durata
  4. Entrambi consentono l'accesso allo stesso insieme di risorse con gli stessi privilegi
  5. Tutte le comunicazioni client-server in entrambi gli schemi avvengono tramite lo stesso protocollo (per argomenti, HTTPS)
  6. Il client e il server sono controllati dalla stessa parte
posta Michael Mior 15.09.2012 - 02:49
fonte

2 risposte

13

Bene, dipende ...

OAuth è un protocollo per la creazione di una sessione. I token bearer OAuth vengono trasmessi dal client utilizzando l'intestazione HTTP Authentication: Bearer . Questo è solo un nonce crittografico che viene trasmesso tramite un elemento di intestazione http, che in effetti è ( quasi ) identico all'elemento di intestazione http cookie .

In che cosa differisce? Bene, le regole per i cookie sono leggermente diverse rispetto ad altri elementi di intestazione. Il cookie è gestito dal browser e viene allegato a ogni richiesta a cui appartiene il cookie. Questo è il motivo per cui Falsificazione richiesta tra siti o attacchi di sessione di lavoro funzionano. Il browser non si cura di dove è arrivata la richiesta, allegherà il cookie in base alla destinazione della richiesta.

I token Bearer OAuth sono leggermente diversi. Questi token sono generalmente gestiti dal client (JavaScript, Flash o anche alcune applicazioni middleware). Se la tua applicazione utilizza JavaScript per gestire il token bearer di autenticazione, allora questo valore non verrà automaticamente applicato dal browser e quindi può raddoppiare come token CSRF, che è accurato.

Tuttavia, se stai usando OAuth per il middleware, allora CSRF non entra in gioco, quindi non importa dove viene visualizzato nell'intestazione.

    
risposta data 16.09.2012 - 07:28
fonte
3

CSRF è già protetto da tutti i browser moderni, se non si collega semplicemente cookie in base alla destinazione, se convalidati consentono la politica di origine prima di inviarlo al server, quindi dopo aver fatto qualche ricerca, oauth2 e l'autenticazione basata sulla sessione hanno entrambi lo stesso rischio per la sicurezza e l'unica differenza è l'intestazione che viene utilizzata

    
risposta data 25.12.2013 - 16:30
fonte

Leggi altre domande sui tag