Decodificare JWT

Legge un token, verifica la firma o firma un token di prova nel browser. HMAC, RSA ed ECDSA. Il token non viene inviato. Un indirizzo JWKS si legge solo se lo chiedi.

Token

Intestazione Payload Firma

Indirizzo JWKS

Verifica con JWKS legge quell’indirizzo in questo browser e scarica solo le chiavi. Il token resta sulla pagina. L’indirizzo deve accettare la richiesta del browser.

Controllo

    Firma

    Leggere un token, verificarlo o firmare una prova

    Un JWT ha tre parti in Base64url: intestazione, payload e firma. Intestazione e payload sono JSON, non sono cifrati. Chi ha il token li legge. La firma mostra che il payload non è stato modificato, se hai il segreto HMAC o la chiave pubblica. Questa pagina legge, verifica e genera nel browser. Segnala alg none, un exp assente o già scaduto, un orario in millisecondi e un segreto HMAC sotto i 32 byte. Il token non viene inviato. Un checksum nella pagina hash non è una firma JWT. exp è tempo Unix in secondi; gli altri fusi sono su timestamp Unix.

    Come si usa

    1. Il token sta a sinistra. A destra, Intestazione e Payload sono due schede. Con Aggiorna mentre scrivi, i due riquadri si riempiono. Gli orari sotto il payload sono l’ora locale di questo computer. Non c’è tolleranza: se exp è adesso o prima, è scaduto.
    2. Mostra esempio mette un token HS256 con payload {"sub":"user-1"} e il segreto HMAC secret. Il segreto è in Base64 resta spento. Verifica dice che la firma coincide. Controllo dice che il segreto è di 6 byte e che non c’è exp. L’esempio è corto apposta.
    3. Verifica legge il riquadro del token, non le modifiche non ancora generate in Intestazione o Payload. HS256, HS384 e HS512 usano il segreto HMAC. RS, PS ed ES usano la coppia sotto Algoritmo: la chiave pubblica verifica e la privata firma. Genera chiave compila entrambe. Genera costruisce un token nuovo da quei due riquadri. Il menu Algoritmo conta più dell’alg scritto nell’intestazione.
    4. Scadenza parte da Tieni i campi, quindi Genera non tocca iat né exp. Scegli 1 ora e Genera scrive entrambi in secondi da adesso. Il modello Utente compila sub 1234567890, name John Doe e email [email protected]. Accesso compila sub user-1 e scope read.
    5. Copia sotto il token copia il token. Copia su Intestazione o Payload copia quel riquadro. Verifica con JWKS legge l’indirizzo JWKS in questo browser e scarica solo le chiavi. Il token non viene inviato. Cancella tutto svuota il token, i due JSON, il segreto, la chiave e l’indirizzo.

    Che cosa si controlla

    HS256, HS384 e HS512 usano il segreto. Sotto i 32 byte firma lo stesso, e Controllo avvisa. Spunta Il segreto è in Base64 solo se il segreto è Base64. RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 e ES512 usano un PEM o un JWK. Una chiave pubblica verifica. Una chiave privata PKCS#8 genera. Una chiave privata RSA può anche verificare, perché contiene la metà pubblica. Puoi incollare SPKI (BEGIN PUBLIC KEY), PKCS#8 (BEGIN PRIVATE KEY) o RSA PKCS#1. Un certificato viene rifiutato. Una chiave EC BEGIN EC PRIVATE KEY anche; esportala come PKCS#8. alg none non è mai valido. Verifica segue l’alg dell’intestazione. Il segreto HMAC non serve a verificare RSA. exp, nbf e iat sono secondi. Un valore di 13 cifre viene segnalato, non convertito. Un JWKS è un insieme di chiavi, o un solo JWK. Più chiavi senza kid è un errore. Un array in Intestazione o Payload blocca Genera.

    Quando serve

    • Leggere sub e exp di un token che hai già.
    • Firmare un HS256 locale per un server di cui hai scelto tu il segreto.
    • Verificare un RS256 con il PEM pubblico, o con un indirizzo JWKS che accetta il browser.
    • Vedere che un segreto di prova è corto prima di copiarlo in una config.

    Domande

    Il payload è cifrato?

    No. È Base64url. Non metterci una password, un documento o una carta.

    Perché Verifica fallisce?

    Il token deve avere due punti e due parti JSON. L’alg dell’intestazione deve essere uno che questa pagina conosce. HS vuole lo stesso segreto usato per firmare, e Il segreto è in Base64 deve corrispondere a come è conservato. RSA ed EC vogliono la chiave pubblica, non un certificato. Un exp passato è un avviso in Controllo, non una firma che non coincide.

    HS256 o RS256?

    HS256 è un segreto condiviso. RS256 firma con la chiave privata e si verifica con la pubblica. Non dare il segreto HMAC a un altro servizio. Dai la chiave pubblica.

    Che cos’è alg none?

    L’intestazione dice che non c’è firma. Questa pagina non considera valido quel token.

    Questa pagina può revocare un token trapelato?

    No. Accorcia exp sul server che emette i token, o tieni lì un elenco di revoche.

    Si può incollare un token qui?

    La verifica resta nel browser. Verifica con JWKS è l’unica richiesta, e scarica chiavi, non il tuo token. Non incollare comunque un token di produzione ancora valido su un computer condiviso. Se l’ora sembra spostata di qualche ora, il numero è UTC e la riga sotto il payload è l’orologio di questo computer.