Quali sono i rischi dell'utilizzo di OAuth per l'autenticazione quando si ha il controllo di entrambe le estremità?

1

Recentemente ho scoperto che le applicazioni nel nostro sistema utilizzavano semplicemente Oauth2 invece di OpenID Connect per autenticare gli utenti. Il caso d'uso originale era usare OAuth per consentire ai nostri utenti di autenticarsi sulle applicazioni utilizzando l'account dell'applicazione principale, che sono tutti sotto il nostro controllo.

Ci sono molti post sul fatto che OAuth sia un protocollo autorizzazione e come tale non dovrebbe essere usato per autenticazione . Mentre capisco la differenza tra le due nozioni, ho difficoltà a trovare informazioni su ciò che effettivamente è il rischio di farlo, e quale tipo di attacchi potrebbero essere fatti sul sistema e condurre in un utente che viene impersonato.

Tutto quello che riuscivo a trovare erano gli attacchi che non erano specifici del caso d'uso dell'autenticazione (CSRF durante la procedura di autorizzazione per esempio) o implicavano un'applicazione client malevola che riutilizzava l'autorizzazione dell'utente. Ma queste minacce sembravano pertinenti solo quando si utilizzavano servizi pubblici come Google o Facebook come provider di identità. Nel mio caso d'uso, sia il fornitore di identità che i clienti sono sotto controllo, negando in modo efficace la minaccia di un client di terze parti malintenzionato.

Quali sono i rischi associati all'uso di OAuth per autenticare utenti quando tutti i client sono sotto controllo?

    
posta Hyruu 21.11.2018 - 12:44
fonte

1 risposta

1

Il problema con OAuth2 è che il authorization_code fornito dal provider OAuth2 è non associato alla client_id del client OAuth2.

Ciò significa che se un utente autorizza un servizio malevolo ad accedere alle sue risorse OAuth2, il servizio dannoso potrebbe utilizzare il authorization_code ricevuto per "impersonare" l'utente su un altro servizio, se l'altro servizio sbaglia l'autorizzazione per l'autenticazione.

Perrisponderealladomanda:

SEpuoigarantiredicontrollareTUTTIiclientiTUTTOiltempo,probabilmentestaibene.Tuttavia,staiancorautilizzandoOAuth2aldifuoridell'ambitoprevisto.L'usodiunprotocollodisicurezzaaldifuoridell'ambitoprevistoègeneralmenteconsideratounapraticamoltonegativa.

Adesempio,esisteilrischiorealechequalcuno,inunsecondomomento,decidadimodificarel'ambitodelprogetto;succedetuttoiltempo.
Sequestoaccade,potrestiimprovvisamentescoprirechelesupposizionichehaifattoprimanonsonopiùvere.Sequestisonoglistessipresuppostichetihannofattosentireabbastanzasicurodaandareavantiecostruirelatuaautenticazionesucattivepratiche,latuaautenticazioneèimprovvisamentevulnerabileagliattacchidirappresentazione.Leprobabilitàsono,scopriraisoloquandolepersoneinizierannoasegnalarestraniincidenti.

Insintesi:sedesideril'autenticazione,dovrestiutilizzare OpenID Connect . OpenID Connect è la build del livello di autenticazione su OAuth2.

    
risposta data 21.11.2018 - 12:58
fonte

Leggi altre domande sui tag