0Pricing
Cyber Security Academy · Lezione

Attacchi ai token e hardening

Difendere i flussi di autenticazione dagli abusi.

Attacchi ai token e hardening è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

I token come credenziali

Nell'autenticazione moderna, i token sono credenziali. Chiunque possieda un bearer token valido viene considerato il soggetto autenticato finché il token non scade o viene revocato.

  • Il furto di un token equivale quindi al furto di una credenziale.
  • Il rafforzamento della sicurezza si concentra sulla limitazione della durata dei token, sul loro vincolo al titolare e sulla possibilità di revocarli rapidamente.

Questa lezione tratta gli attacchi contro i token OAuth/OIDC/SAML e i controlli difensivi che li contrastano.

Confusione dell'algoritmo JWT

Un attacco JWT classico sfrutta l'header alg.

  • alg: none, se accettato, consente a un attaccante di falsificare token non firmati.
  • Confusione da RS256 a HS256: l'attaccante firma nuovamente un token usando la chiave RSA pubblica come segreto HMAC.

Difesa: fissi l'algoritmo atteso lato server e non consenta mai al token di determinare quale percorso di verifica eseguire.

Vulnerable: verify(token, key)  // alg taken from header
Hardened:   verify(token, key, { algorithms: ["RS256"] })
// reject alg:none, reject HS* when RS* expected

Furto di token tramite XSS e log

La compromissione più comune dei token consiste nel semplice furto di un token valido.

  • XSS legge i token da localStorage o dalla memoria.
  • I token negli URL possono trapelare attraverso la cronologia del browser, gli header referrer e i log dei server.
  • Logging dettagliato degli header Authorization.

Preferisca cookie httpOnly, Secure, SameSite per le sessioni del browser e rimuova i token dai log e dagli URL.

Set-Cookie: session=...; HttpOnly; Secure; SameSite=Lax
// keeps JS (and thus XSS) from reading the token

Attacchi di replay

Un attacco di replay riutilizza un token valido intercettato per agire a nome della vittima.

  • È possibile mitigarli con scadenze brevi, un nonce monouso (OIDC) e il tracciamento degli ID delle asserzioni (SAML).
  • TLS impedisce l'intercettazione passiva in rete.
  • I token con vincolo al mittente impediscono il riutilizzo anche in caso di furto.
Replay defenses:
  short exp + nonce/jti uniqueness
  TLS everywhere
  sender-constrained tokens (mTLS / DPoP)

Token con vincolo al mittente

I bearer token possono essere utilizzati da chiunque li possieda. I token con vincolo al mittente associano un token a una specifica chiave del client.

  • I token vincolati tramite mTLS (RFC 8705) associano il token al certificato TLS del client.
  • DPoP (RFC 9449) associa il token a una chiave proof-of-possession con cui il client firma ogni richiesta.

Un token rubato è quindi inutilizzabile senza la chiave privata corrispondente.

DPoP: each request carries a signed proof JWT
  DPoP: <proof-jwt signed with client private key>
  Authorization: DPoP <access_token>

Durate brevi e rotazione dei token di refresh

Riduca al minimo la finestra di utilità di ogni token rubato.

  • Mantenga brevi i token di accesso (nell'ordine dei minuti).
  • Utilizzi la rotazione dei refresh token: ogni operazione di refresh emette un nuovo refresh token e invalida quello precedente.
  • Rilevi il riutilizzo di un refresh token ruotato come segnale di furto e revochi l'intera catena.
On /token refresh:
  issue new RT, invalidate old RT
  if old RT presented again -> breach -> revoke family

Revoca e introspection dei token

I JWT auto-contenuti restano validi fino alla scadenza, complicando la revoca. Fornisca meccanismi per interrompere rapidamente l'accesso.

  • L'endpoint di revoca (RFC 7009) invalida i token di refresh e di accesso.
  • L'introspection (RFC 7662) consente a un resource server di verificare in tempo reale lo stato di un token.
  • Mantenga una deny list basata su jti per le revoche critiche.
POST /introspect  token=...
  -> { "active": true, "sub": "...", "scope": "read" }
POST /revoke      token=...

Controllo di audience e scope

Un token valido non autorizza automaticamente l'accesso alla sua API. Verifichi esplicitamente l'intento.

  • Controlli aud affinché un token emesso per un altro servizio non possa essere riutilizzato sulla sua API.
  • Applichi scope per endpoint; non presuma che un token valido implichi l'accesso completo.
  • Convalidi iss per bloccare i token provenienti da emittenti non attendibili.

In questo modo impedisce il riutilizzo dei token tra servizi e gli abusi da confused deputy.

Attacchi mix-up e tra provider

Quando un client supporta più identity provider, gli attacchi di mix-up possono indurlo a inviare a un endpoint diverso, scelto dall'attaccante, un codice o un token emesso da un IdP.

  • Il client perde traccia dell'AS da cui proviene una risposta.
  • Difesa: associ le risposte all'emittente usando il parametro iss (RFC 9207) e convalidi state per ciascun provider.
/authorize ... &state=<provider-bound>
callback must include &iss=<expected-AS>
client verifies iss matches the AS it started with

Archiviazione e trasporto sicuri

Dove e come vengono conservati i token ne determina l'esposizione.

  • Sessioni nel browser: cookie httpOnly, Secure, SameSite; eviti localStorage.
  • Dispositivi mobili: keychain/keystore del sistema operativo, mai file in chiaro.
  • Server: gestore dei segreti, dati cifrati a riposo, privilegi minimi con ambito limitato.
  • Utilizzi sempre TLS durante il transito; non inserisca mai i token nelle stringhe di query.

Una checklist per il rafforzamento dei token

Riunisca i controlli in una baseline operativa.

  • Fissi gli algoritmi; rifiuti alg: none e gli attacchi di confusione.
  • Convalidi iss, aud, exp, signature, nonce/state.
  • TTL breve del token di accesso, con rotazione dei refresh token e rilevamento del riutilizzo.
  • Preferisca token con vincolo al mittente (DPoP/mTLS) per API ad alto valore.
  • Supporti revoca e introspection.
  • Conservi i token in modo sicuro; li tenga fuori da URL e log.
Hardening baseline:
  [ ] alg pinned, none rejected
  [ ] iss/aud/exp/sig/nonce validated
  [ ] short TTL + RT rotation + reuse detection
  [ ] DPoP/mTLS for sensitive scopes
  [ ] revoke + introspect available

Verifica rapida: neutralizzare i token rubati

Scelga il controllo che limita meglio i danni causati direttamente dal furto di token.

Riepilogo: attacchi ai token e rafforzamento della sicurezza

Punti chiave:

  • I token sono credenziali; il furto equivale alla presa di controllo dell'account.
  • Protegga i JWT fissando gli algoritmi e convalidando iss, aud, exp, signature, nonce.
  • Limiti l'esposizione con durate brevi e rotazione dei refresh token con rilevamento del riutilizzo.
  • I token con vincolo al mittente (DPoP/mTLS) neutralizzano i bearer token rubati.
  • Fornisca revoca e introspection e tenga i token fuori da URL, log e localStorage.

Domande Frequenti

La lezione «Attacchi ai token e hardening» è gratuita?

Sì — il testo completo di «Attacchi ai token e hardening» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Attacchi ai token e hardening»?

Difendere i flussi di autenticazione dagli abusi. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Attacchi ai token e hardening»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Flussi OAuth 2.0
  2. OpenID Connect (OIDC)
  3. SAML e federazione
  4. Attacchi ai token e hardening
← Torna a Cyber Security Academy