PK Systems PK Systems
Encoder e decoder

Signer e Verifier di JWT

Firma e verifica JSON Web Token client-side con HS256/HS384/HS512, RS256 e ES256. Genera chiavi RSA ed ECDSA nel browser.

Signer e Verifier di JWT

HS* usa un segreto condiviso; RS256 ed ES256 usano una coppia di chiavi asimmetrica.

Il campo alg si sincronizza automaticamente con il selettore qui sopra.

Claim standard: sub, iss, aud, iat, exp, nbf, jti.

Per la produzione, usa 256+ bit di entropia casuale. Non riusare password.

JWT firmato


            
        

Cos'è un JWT?

Un JSON Web Token (JWT) è un modo compatto e URL-safe di trasportare claim tra due parti. È composto da tre parti codificate in Base64URL e unite da punti: un header che indica l'algoritmo, un payload con claim JSON arbitrarie e una firma calcolata su header.payload con una chiave. Il ricevente ricalcola la firma e rifiuta il token se non corrisponde. I JWT sono popolari per l'autenticazione stateless perché i server non devono ricordarsi le sessioni — ogni richiesta porta la propria prova. Il rovescio della medaglia è che non puoi revocare un token una volta emesso senza una lista di revoca extra, e qualsiasi segreto o chiave rubati compromette tutti i token firmati con essi. Questo strumento gira interamente sul tuo dispositivo — i tuoi segreti, le chiavi di firma e i token non lasciano mai la pagina, non viaggiano mai sui nostri server e non vengono memorizzati, indicizzati, registrati o condivisi. Questa garanzia di privacy conta perché un singolo leak di un segreto di firma JWT può compromettere ogni account utente per cui emette token.

Come usare il signer/verifier

Scegli l'algoritmo che corrisponde al tuo ambiente, incolla header e payload (o usa i default come template), poi clicca su Firma. Per RS256 ed ES256 puoi generare una coppia di chiavi nuova nella pagina; per HS256 fornisci un segreto condiviso. Per verificare, passa alla modalità verify, incolla il token e il segreto o chiave pubblica corrispondente, poi clicca su Verifica. Il payload decodificato appare nella casella del verdetto in caso di successo.

Consigli pratici e trabocchetti

Imposta sempre exp (scadenza) sui token di produzione. Non accettare mai l'algoritmo dichiarato nell'header senza una lista di permessi — il classico attacco alg=none sfrutta server che si fidano dell'header. Ruota periodicamente le chiavi di firma, conserva le chiavi private in un HSM o in un secrets manager, e tratta i segreti HMAC come password. Per browser e app mobile, preferisci JWT a vita breve abbinati a refresh token salvati in cookie HttpOnly.

Algoritmi supportati

Alg Famiglia Caso d'uso
HS256HMAC + SHA-256Servizi interni che condividono un singolo segreto. Veloce e semplice.
HS384HMAC + SHA-384Servizi interni che condividono un singolo segreto. Veloce e semplice.
HS512HMAC + SHA-512Servizi interni che condividono un singolo segreto. Veloce e semplice.
RS256RSA + SHA-256API pubbliche che distribuiscono la chiave pubblica per la verifica.
ES256ECDSA P-256 + SHA-256Come RS256 ma con firme più corte e curve ellittiche moderne.

Domande frequenti

Qualcosa viene inviato al vostro server?
No. Firma e verifica avvengono interamente sul tuo dispositivo tramite la crittografia integrata del browser. I tuoi segreti, chiavi e token non lasciano mai la pagina, non viaggiano mai sui nostri server e non vengono memorizzati, indicizzati, registrati o condivisi.
Qual è la differenza tra HS256 e RS256?
HS256 usa un singolo segreto condiviso sia per firmare che per verificare — chiunque può verificare può anche firmare. RS256 usa una coppia di chiavi RSA: la chiave privata firma, quella pubblica verifica, così il verificatore non ha bisogno del materiale di firma.
Posso usarlo per chiavi di produzione?
Puoi generare chiavi di sviluppo qui, ma le chiavi private di produzione dovrebbero stare nel tuo KMS o HSM. Incollare una chiave di produzione reale in qualsiasi pagina web è un evento di sicurezza significativo.
Perché il mio token non si verifica?
Cause comuni: algoritmo sbagliato nel menu rispetto all'header del token, segreto/chiave pubblica non corrispondente, token scaduto (exp) o non ancora valido (nbf), payload manomesso, o un copia-incolla che ha introdotto spazi.
Quale codifica usa il payload?
JWT serializza il payload JSON in UTF-8, poi lo codifica in Base64URL. Le chiavi JSON sono case-sensitive. Le stringhe nel payload dovrebbero essere UTF-8.
I JWT sono cifrati?
I JWT standard sono firmati ma non cifrati — chiunque può decodificare il payload. Usa JWE se ti serve la confidenzialità, oppure trasporta i dati sensibili fuori dal token.