Antonio Braccolino, Identity & Access, home

Lab · 09 / 16

Scoprire un token rubato.

Gli access token durano poco; i refresh token ti tengono connesso. Se uno viene copiato, la rotazione trasforma la copia in un allarme.

Hai completato tutti i lab

Tutti i 16 lab, dalla mappa dello IAM alle architetture di riferimento. L’identità non ha più segreti per te.

Vedi i traguardi

Condividi il tuo badge

Instagram: scarica l’immagine e pubblicala come post o storia. LinkedIn: quando lo apri il testo viene copiato, incollalo e allega l’immagine.

OAuth 2.0 · Refresh token · Intermedio · 6 passi

Cosa impari

  • Perché gli access token scadono presto
  • Cosa cambia la rotazione
  • Perché il riuso revoca tutta la famiglia
App
l’app vera, con i suoi token
IdP
emette e ruota i token
Attacker
qualcuno con un refresh token rubato
  1. POST /token · RT1

    Passo 1 di 6

    L’access token è scaduto

    In parole semplici Il pass giornaliero è scaduto, quindi mostri l’abbonamento per averne uno nuovo.

    Dopo 15 minuti l’access token non è più valido. L’app invia il refresh token RT1 per averne uno nuovo, senza disturbare l’utente.

    POST https://idp.example.com/token
      grant_type=refresh_token
      &refresh_token=RT1
      &client_id=web-app
  2. AT2 + RT2

    Passo 2 di 6

    Token nuovi, il vecchio è bruciato

    In parole semplici Ricevi un pass nuovo e un abbonamento nuovo; quello vecchio viene strappato.

    Con la rotazione, ogni uso restituisce un nuovo refresh token (RT2) e RT1 non vale più. L’IdP ricorda che RT1 e RT2 appartengono alla stessa famiglia.

  3. POST /token · RT1

    Passo 3 di 6

    Qualcuno riusa il vecchio token

    In parole semplici Qualcuno si presenta con la fotocopia dell’abbonamento strappato.

    RT1 era stato rubato, per esempio da un log o da un’estensione del browser malevola. L’attaccante prova a usarlo per avere token nuovi.

  4. 400 invalid_grant

    Passo 4 di 6

    Riuso rilevato: la famiglia viene revocata

    In parole semplici Lo sportello sa che quel biglietto era già stato strappato, quindi annulla tutti gli abbonamenti a tuo nome.

    Un refresh token già usato significa che due parti ne hanno una copia. L’IdP non sa chi è legittimo, quindi revoca anche RT2 e può generare un evento di sicurezza.

  5. POST /token · RT2

    Passo 5 di 6

    Ci prova l’app vera

    In parole semplici Mostri il tuo abbonamento nuovo, ma è stato annullato anche quello.

    Quando l’access token scade di nuovo, l’app presenta RT2. È stato revocato insieme a tutta la famiglia.

  6. 400 invalid_grant → login

    Passo 6 di 6

    L’utente rifà l’accesso

    In parole semplici Torni allo sportello con il documento: un piccolo fastidio, ma il ladro resta fuori.

    L’app riporta l’utente alla pagina di login. Il prezzo è un accesso in più; in cambio, un refresh token rubato smette di funzionare appena viene usato.

Domini e valori d’esempio. Nulla esce dal tuo browser.