Codificatore di JWT (generazione e firma)
Strumento per sviluppatori che, a partire dall'intestazione e dal contenuto in JSON, genera all'istante un gettone JWT firmato con HMAC secondo gli algoritmi HS256, HS384 o HS512. Nulla di quanto inserite, chiave segreta compresa, viene trasmesso a un servente: tutto avviene nel navigatore.
Gli algoritmi di firma HMAC previsti
| Algoritmo | Funzione di sintesi | Lunghezza della firma | Descrizione |
|---|---|---|---|
| HS256 | SHA-256 | 256 bit (32 byte) | La firma HMAC predefinita e più diffusa. È adottata di serie in moltissime realizzazioni, compresi i gettoni di identità di OAuth 2.0 e OpenID Connect. |
| HS384 | SHA-384 | 384 bit (48 byte) | Scelta intermedia per chi desidera un margine di sicurezza maggiore con una firma più lunga di quella di HS256. |
| HS512 | SHA-512 | 512 bit (64 byte) | La firma più lunga, che si usa di norma insieme a una chiave segreta casuale sufficientemente estesa. |
Consigli
- Il gettone è firmato soltanto dall'interfaccia crittografica del navigatore e nulla di quanto inserite, chiave segreta compresa, giunge ai serventi di toolbase.cc.
- Cambiando algoritmo di firma, il campo
algdell'intestazione JSON si riscrive da sé. Per aggiungere altre dichiarazioni, comekid, modificate direttamente l'intestazione. - Lo strumento prevede soltanto il metodo HMAC, cioè a chiave condivisa. Se vi occorre una firma a chiave pubblica come RS256 o ES256, usate una libreria dal lato del servente.
- Dopo aver modificato intestazione o contenuto, premete di nuovo il pulsante di generazione: fino ad allora resterà visibile il gettone prodotto con il contenuto precedente.
- Per esaminare subito il gettone generato, incollatelo nello strumento affine, il decodificatore di JWT, che ne mostrerà intestazione e contenuto.
Domande frequenti
alg, la verifica del gettone in un'altra realizzazione può fallire: fate sempre in modo che i due coincidano.
A proposito — perché la firma di un JWT può avvenire soltanto nel navigatore
Gli algoritmi di firma dei JWT si dividono grosso modo in quelli a chiave condivisa, cioè HMAC nelle varianti HS256, HS384 e HS512, e in quelli a chiave pubblica, come RS256 ed ES256, in cui si firma con la chiave privata e si verifica con quella pubblica. I primi si calcolano interamente nel navigatore, senza alcuna libreria esterna, servendosi dell'interfaccia crittografica standardizzata dal consorzio del web: per questo lo strumento si limita di proposito al metodo HMAC.
La sicurezza di una firma HMAC dipende interamente dalla difficoltà di indovinare la chiave segreta, non dal contenuto dell'intestazione o del corpo. La norma sugli algoritmi dei gettoni web raccomanda per HS256 una chiave di almeno 256 bit, cioè 32 byte: usare una parola breve o una stringa presente nei dizionari espone al rischio che la firma venga contraffatta con un attacco esaustivo. In esercizio si deve usare una stringa casuale sufficientemente lunga, prodotta da un generatore di numeri casuali.
Questo strumento è un'utilità per sviluppatori, pensata per le prove durante lo sviluppo di un'interfaccia e per collaudare la logica di verifica delle firme dei richiami web. La chiave inserita resta nella memoria del navigatore e non viene trasmessa all'esterno, ma il rischio che un dispositivo condiviso o un'estensione del navigatore raccolgano gli appunti o quanto digitate non è mai nullo: si raccomanda vivamente di non inserire in strumenti di questo genere, nemmeno per prova, la chiave usata realmente in produzione.