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* expectedFurto 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
localStorageo 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 tokenAttacchi di replay
Un attacco di replay riutilizza un token valido intercettato per agire a nome della vittima.
- È possibile mitigarli con scadenze brevi, un
noncemonouso (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 familyRevoca 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
jtiper 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 convalidistateper ciascun provider.
/authorize ... &state=<provider-bound>
callback must include &iss=<expected-AS>
client verifies iss matches the AS it started withArchiviazione 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: nonee 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 availableVerifica 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
- Flussi OAuth 2.0
- OpenID Connect (OIDC)
- SAML e federazione
- Attacchi ai token e hardening