Lo scadere del token di aggiornamento OAuth nello stesso momento in cui il token di accesso ha qualche utilità? O è solo un teatro di sicurezza?

4

Stiamo integrando con un fornitore che ha un'implementazione OAuth 2.0 unica (per noi): con ogni richiesta di aggiornamento, ci inviano un nuovo token di aggiornamento insieme al token di accesso.

Dicono che questo è stato richiesto come parte del loro lavoro per ottenere SOC2, ma non posso fare a meno di pensare che abbiano frainteso qualcosa che i loro consulenti di sicurezza raccomandavano.

Qualche idea su quale possa essere il ragionamento su questo?

    
posta fridgepolice 09.08.2016 - 18:47
fonte

2 risposte

1

Il token di aggiornamento non è scaduto allo stesso tempo di access_token, viene ruotato dopo l'uso.

Da sezione 5.2.2.3 di rfc6819 :

Refresh token rotation is intended to automatically detect and prevent attempts to use the same refresh token in parallel from different apps/devices. This happens if a token gets stolen from the client and is subsequently used by both the attacker and the legitimate client. The basic idea is to change the refresh token value with every refresh request in order to detect attempts to obtain access tokens using old refresh tokens. Since the authorization server cannot determine whether the attacker or the legitimate client is trying to access, in case of such an access attempt the valid refresh token and the access authorization associated with it are both revoked.

(grassetto il mio)

FWIW, ogni provider OAuth2 che ho usato ha funzionato in questo modo.

    
risposta data 04.09.2016 - 15:35
fonte
0

Probabilmente dovresti ottenere direttamente il ragionamento da loro, ma questo design è conforme alla specifica :

Issuing a refresh token is optional at the discretion of the
authorization server.  If the authorization server issues a
refresh token, it is included when issuing an access token

La proprietà più interessante che posso pensare è che se un client perde il proprio token di aggiornamento e un utente malintenzionato lo utilizza per ottenere una nuova coppia di token di aggiornamento / accesso, il client legittimo non riuscirà a ottenere un token la volta successiva aggiornare (a meno che l'attaccante non possa modificare lo stato del client legittimo). Questo potrebbe essere usato per fare qualcosa come determinare quando tutti i token rilasciati a un particolare client dovrebbero essere revocati (perché si presume compromesso).

    
risposta data 10.08.2016 - 02:40
fonte

Leggi altre domande sui tag