Qual è una buona ragione per mantenere le credenziali OAuth?

0

Durante la revisione del database per alcuni siti Web ho notato delle tabelle in cui le credenziali OAuth (come il token, il token di aggiornamento) tra le altre informazioni sono memorizzate nel database.

La mia comprensione è che questa informazione è richiesta principalmente per la durata della sessione utente e non più dopo, quindi la mia domanda è perché dovrebbe essere conservata in un database o memorizzata in qualsiasi supporto?

Potrebbe essere memorizzato solo per risparmiare il costo della nuova convalida dopo che la sessione è scaduta?

    
posta NoChance 24.01.2017 - 15:10
fonte

1 risposta

1

Sono presenti token di accesso e token di aggiornamento.

Il token di accesso è in genere di breve durata (si pensi 30 o 60 minuti) e non vi è alcun motivo per mantenerlo dopo che è scaduto. Non ha alcun senso per nessuno.

Il token di aggiornamento è necessario per ottenere un nuovo token di accesso ed è generalmente di lunga durata; almeno fino a una sessione attiva.

Se un attaccante ottiene il possesso di un token di aggiornamento, ha tutti gli accessi che l'utente avrebbe se avessero effettuato l'accesso con quel token. Tuttavia, hanno accesso alle sessioni per le quali quel particolare token di aggiornamento li autorizza. (Ciò significa che, se il token è stato concesso per un privilegio inferiore al normale per quell'utente, l'utente malintenzionato avrebbe lo stesso privilegio ridotto).
Inoltre, dal momento che non è una password con hash, non possono derivare la password in chiaro da essa con le tabelle arcobaleno.

Un token di aggiornamento può essere ritirato in qualsiasi momento, senza richiedere all'utente di cambiare la password.

Da un punto di vista della sicurezza, l'utilizzo di un token di aggiornamento invece di richiedere all'utente di accedere di nuovo protegge dalla navigazione a spalla. Lo svantaggio è che se l'utente malintenzionato ha accesso fisico al dispositivo che contiene il token di aggiornamento, non è necessario che eseguano l'autenticazione.

Fai attenzione quando elimini i token di aggiornamento. Un token di aggiornamento scaduto non è utilizzabile da nessuno e può essere eliminato in modo sicuro. Ma l'eliminazione di un Token di aggiornamento attivo richiede che gli utenti effettuino nuovamente l'accesso; causando loro inutili disagi.

Assicurati che il database contenente i token di aggiornamento attivi sia correttamente protetto. In genere non sono hash come le password.

    
risposta data 24.01.2017 - 15:41
fonte

Leggi altre domande sui tag