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.
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.