JWT Analyzer
Decodifica e analisi di sicurezza per token JSON Web Token (JWT). Risk scoring algoritmico su algoritmo, scadenza, alg=none, kid injection. 100% client-side: il token non lascia il browser.
Avviso: Questo tool NON verifica la firma crittografica. La firma autentica richiede la chiave segreta o il certificato pubblico del server emittente. Usare una libreria server-side (es. jsonwebtoken, java-jwt, PyJWT) per la verifica completa.
Token JWT
Il token deve avere 3 parti separate da punto. Solo base64url - nessun dato inviato a server.
Incolla un token JWT per avviare l'analisi, oppure usa Carica esempio.
Sicurezza JWT: risorse accademiche e standard
JWT (RFC 7519) e' uno standard ampiamente usato ma con pattern vulnerabili documentati. Questo tool segue le linee guida OWASP Top 10 e la ricerca in ambito autenticazione web.
Vulnerabilita' note
- alg=none - Consente token senza firma. Documentata da Auth0 (2015) e inclusa nell'OWASP Top 10 A02 Cryptographic Failures.
- HMAC vs RSA confusion - Una libreria che accetta HS256 al posto di RS256 puo' essere ingannata usando la chiave pubblica RSA come segreto HMAC.
- kid injection - Il campo
kid(Key ID) se non sanificato puo' essere usato per path traversal o SQL injection nella selezione della chiave. - Nessun claim exp - Token senza scadenza non possono essere revocati senza blacklist esplicita.
Percorsi universitari - Sicurezza Informatica
- Sapienza - CyberChallenge.IT 2025 - Primo classificato nazionale 2025. Percorso sicurezza informatica top in Italia.
- UniBa - Sede del CINI Cybersecurity National Lab (laboratorio nazionale CINI dedicato alla ricerca in sicurezza informatica, reti e crittografia applicata). Secondo classificato CyberChallenge.IT 2025.
Approfondisci con la serie UniAppunti / Sicurezza Informatica - autenticazione, crittografia, PKI, OAuth 2.0 e JWT in profondita'.
Come utilizzare JWT Analyzer
Incolla il token JWT
Incolla il token nel campo di input, oppure clicca "Carica esempio" per vedere un token di prova con header, payload e firma già decodificati.
Leggi header e payload decodificati
Il tool decodifica automaticamente le sezioni base64url dell'header e del payload e le mostra come JSON formattato, senza mai inviare il token a un server.
Controlla il risk score
Il pannello dei findings segnala con livello critico/attenzione/ok problemi noti: algoritmo debole o alg=none, token scaduto o senza claim exp, pattern sospetti nel campo kid.
Verifica le scadenze temporali
Le sezioni exp, iat e nbf vengono convertite in data ISO e tempo relativo (es. "scade tra 2 ore"), per capire a colpo d'occhio la validità temporale del token.
Suggerimenti
- Non incollare mai token JWT reali di produzione su tool online di terze parti, anche se dichiarano di essere client-side: usa preferibilmente token di test o revocali dopo l'analisi.
- Se il tool segnala "nessun claim exp", valuta di aggiungere sempre una scadenza esplicita ai token che emetti: un token senza exp non può essere invalidato se non con una blacklist lato server.
Domande frequenti
Il tool verifica la firma crittografica del token?
No. Il tool decodifica header e payload (che sono solo codificati in base64url, non cifrati) ma non verifica la firma, perché questo richiederebbe la chiave segreta o pubblica del server emittente. L'analisi si concentra su risk scoring strutturale: algoritmo, scadenza, pattern sospetti.
Perché alg=none è considerato un rischio critico?
alg=none (CVE-2015-9235) indica che il server accetta token senza verificare alcuna firma: chiunque può creare un token con qualsiasi payload, incluso impersonare un altro utente o assegnarsi ruoli privilegiati. Nessun server in produzione dovrebbe accettare questo algoritmo.
Perché HS256 è segnalato come "attenzione" e non "critico"?
HS256 è un algoritmo HMAC simmetrico: la stessa chiave firma e verifica il token. Non è una vulnerabilità di per sé, ma se la chiave condivisa trapela (es. hardcoded nel codice o in un repository pubblico) tutti i token firmati con quella chiave sono compromessi. Gli algoritmi asimmetrici come RS256 o ES256 sono preferibili perché la chiave privata resta solo sul server.
Cosa significa il warning su "kid injection"?
Il campo kid (Key ID) nell'header identifica quale chiave usare per verificare la firma. Se il server lo usa per costruire un path di file o una query senza sanificarlo, un valore malevolo (sequenze di path traversal, apici SQL-like, pattern di template injection) può causare path traversal o injection. Il tool segnala pattern sospetti nel kid, ma la vulnerabilità reale dipende da come il server lo gestisce.
I miei dati del token vengono salvati o inviati da qualche parte?
No. L'intera analisi (decodifica base64url, risk scoring, calcolo scadenze) avviene client-side nel browser. Il token non lascia mai il tuo dispositivo e non viene salvato in localStorage né inviato a nessun server, incluso quello di questo sito.