C’è una vulnerabilità che affligge la maggior parte delle soluzioni software, soprattutto in ambito web: l’identificazione dell’utente e l’autorizzazione all’accesso.

Il riconoscimento dell’identità dell’utente è fondamentale sia in fase di accesso, che in ogni successiva fase del dialogo tra l’utente (applicazione) e i suoi dati (server/database).

La tecnologia Json Web Token (JWT) garantisce che questo dialogo avvenga in modo sicuro.

Cosa significa JWT?

Il JSON Web Token (JWT) è uno standard open che definisce uno schema in formato JSON per lo scambio di informazioni tra vari servizi.

Il meccanismo alla base del funzionamento del JWT prevede che il client invii una richiesta al server, il server generi un token firmato e lo restituisca al client che, da quel momento in poi, lo utilizzerà per autenticare le successive richieste.

Il token generato dal server può essere firmato, con una chiave segreta che conosce solo chi lo genera, tramite un algoritmo, oppure utilizzando una coppia di chiavi asimmetriche (pubblica/privata).

Come è fatto il JWT?

Il token è composto da 3 parti fondamentali: header, payload e signature.

  • L’header contiene informazioni sulla tipologia del token e sul tipo di algoritmo di cifratura utilizzato, che sarà a doppia chiave asimmetrica o a singola chiave, in funzione del livello di sicurezza che si vuole raggiungere.
  • Il payload, nucleo principale del token, contiene le informazioni che serviranno per identificare l’utente che ha effettuato l’accesso e altre informazioni di interscambio. Tutte queste informazioni non sono criptate, perché la sicurezza intrinseca del token è che non contiene informazioni utilizzabili da altri all’infuori dello sviluppatore.
  • La signature è, in pratica, la convalida del token e rappresenta la sicurezza oggettiva del JWT. La generazione del token avviene codificando in base 64 l’header e il payload e unendo i due risultati separandoli con un “.”. Successivamente si applica l’algoritmo di cifratura indicato nell’header alla stringa ottenuta utilizzando la chiave segreta. Solamente chi è in possesso della chiave è in grado di effettuare la decodifica di verifica dell’autenticità. Il cambiamento anche di un solo bit delle prime due parti, infatti, invaliderebbe la firma digitale. Se il token firmato lato server viene corrotto o modificato da un agente esterno, non passerà la successiva validazione.

Come si implementa il JWT?

L’utilizzo di token JWT rappresenta molto di più di un meccanismo di semplice autenticazione. L’implementazione, tuttavia, può risultare onerosa se si deve sviluppare tutto ex novo.

La piattaforma Autentica permette agli sviluppatori di sfruttare le potenzialità del dialogo basato su JWT con un impatto trascurabile sui tempi di sviluppo e sulla complessità della successiva manutenzione.

Scordavo. JWT e Autentica rispettano il GDPR..

Se vuoi sapere ancora di più su JWT puoi leggere qui