Vai al contenuto
Quaestio

Decodifica JWT

Incolla un token per vedere cosa contiene e quando scade. Se hai la chiave, puoi anche verificare la firma.

La decodifica avviene nel tuo browser. Non viene inviato nulla.

Validità

…

Decodificato, non verificato: chiunque può creare un token con questo contenuto. Inserisci la chiave qui sotto per verificare la firma.

Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

{
  "iss": "https://example.com",
  "sub": "1234567890",
  "aud": "quaestio",
  "name": "Ada Lovelace",
  "iat": 1757000000,
  "nbf": 1757000000,
  "exp": 4102444800,
  "jti": "4f1c2a9e"
}

Campi e claim

algalgoritmo di firma
HS256
typtipo di token
JWT
issemittente
https://example.com
subsoggetto, di solito l’ID dell’utente
1234567890
auddestinatario a cui è rivolto il token
quaestio
expscadenza
4102444800
nbfnon valido prima di
1757000000
iatemesso il
1757000000
jtiID univoco del token
4f1c2a9e
Firma
32 byte

Verifica la firma

La chiave viene usata solo nel tuo browser e non viene salvata.

Incorpora

Incorpora lo strumento nel tuo sito

Copia il codice e incollalo dove vuoi che appaia lo strumento, per esempio in un articolo del blog o in una pagina scolastica. È gratuito, il riquadro non ha pubblicità e lo strumento calcola nel browser del visitatore.

Come funziona

Un JSON Web Token (JWT, RFC 7519) ha tre parti separate da punti: header, payload e firma. Header e payload sono JSON codificato in base64url, una variante di base64 che usa - e _ al posto di + e / e omette il padding. Chiunque può leggerne il contenuto, che non è cifrato.

L’header indica l’algoritmo (alg) e spesso il tipo (typ) e l’ID della chiave (kid). Il payload contiene i claim, cioè affermazioni sull’utente o sulla sessione. Lo standard ne registra sette: iss (emittente), sub (soggetto), aud (destinatario), exp (scadenza), nbf (non prima di), iat (emesso il) e jti (ID del JWT). Tutti gli altri claim sono a discrezione dell’emittente.

Gli orari in exp, nbf e iat sono secondi trascorsi dal 1º gennaio 1970 UTC. Un token non deve essere accettato a partire dall’orario exp, né prima dell’orario nbf. Il decodificatore li confronta con l’orologio del tuo dispositivo, quindi un orologio sbagliato dà uno stato sbagliato.

Decodificare non significa verificare. La firma dimostra che il token è stato emesso da chi possiede la chiave e che il contenuto non è stato modificato, ma questo si può controllare solo con la chiave. HS256, HS384 e HS512 usano un segreto condiviso (HMAC). RS e PS usano RSA, ES le curve ellittiche (ECDSA con P-256, P-384 o P-521) ed EdDSA usa Ed25519; questi si verificano con la chiave pubblica in formato PEM o JWK, che gli emittenti pubblicano spesso come JWK Set.

Un token con alg none non ha firma e non deve mai essere accettato da un server. Diverse vulnerabilità note sono nate da librerie che accettavano none, o che permettevano a un attaccante di sostituire RS256 con HS256 e firmare usando la chiave pubblica come segreto.

Un token funziona spesso come la chiave di un account. Qui tutto avviene nel tuo browser con la sua crittografia integrata (WebCrypto), e né il token, né il segreto, né la chiave vengono inviati da nessuna parte. Anche così, non incollare mai un token attivo o un segreto in un sito di cui non ti fidi, e non incollare mai una chiave privata: per la verifica basta quella pubblica.

Fonti

Come vengono verificati gli strumenti