Usando OAuth per l'accesso è meno o più sicuro di quello di mantenere le tue password?

7

Pro:

  • La complessità nella gestione delle password è gestita da un'azienda con una politica di sicurezza più strong. Supponiamo che proteggano le password correttamente.
  • L'utente non deve mantenere un'altra password vulnerabile e duplicata.

Contro:

  • La società cliente OAuth ora detiene i token al portatore reali. Questo sembra un passo indietro dal dover solo aggrapparsi agli hash delle password irrecuperabili. Non sono sicuro che questi token bearer possano fare molto però.

C'è una ragione fondamentale per cui uno è chiaramente più sicuro dell'altro? C'è una preferenza accettata all'interno della comunità di sicurezza? È possibile che manchi i fatti di OAuth che suggeriscono questo.

    
posta djechlin 14.03.2016 - 06:54
fonte

1 risposta

3

L'idea alla base di OAuth è che come servizio non è necessario conoscere le credenziali (ancora una volta) per autenticare e personalizzare il servizio.

Hai ragione nel senso che i token al portatore (parte di OAuth 2 in fatto) sono altrettanto sensibili come username / password. ma così è un hash di esso.

L'idea è che con OAuth 2 tu collabori con il provider di server OAuth 2, il server, piuttosto che tu (o di fatto l'applicazione con cui esegui l'autenticazione) un insieme di token da utilizzare.

  • Token al portatore, token di breve durata da utilizzare direttamente per le richieste autenticate.
  • Aggiorna token, token longevo per ottenere un nuovo token bearer.

L'applicazione OAuth li usa insieme ai propri segreti preregistrati (Application ID e Application Key) e una connessione TLS (https) per mantenere le cose sicure e segrete.

Il risultato finale è uno schema che è almeno sicuro quanto lo schema di accesso del provider di servizi OAuth,
senza dover mantenere un nuovo set di credenziali e senza dover rivelare le credenziali all'eventuale terza parte che è il servizio client OAuth.
Come bonus, non vi è alcun obbligo per il client di utilizzare TLS e avere ancora un accesso sicuro
(anche se consiglio vivamente TLS per qualsiasi applicazione web).

E quando vengono utilizzate le "concessioni" è possibile limitare le informazioni per le quali i token possono essere utilizzati,
come Facebook, Google e Github mostrano utenti che si autenticano con oauth.

La seguente immagine tratta da Wikipedia mostra come oauth funziona in modo diverso rispetto agli schemi di username / password e perché può essere vantaggioso.

    
risposta data 14.03.2016 - 10:30
fonte

Leggi altre domande sui tag