In un’epoca in cui la digitalizzazione ci permette di accedere a una moltitudine di servizi in remoto, i processi di autenticazione e registrazione richiedono un’elevato grado di sicurezza che può essere raggiunto anche grazie i codici OTP.

Qual è il significato di OTP e cos’è un codice OTP?

OTP è l’acronimo di One Time Password

Tecnicamente, un codice OTP è una stringa di caratteri alfanumerici casuale che viene generata da un sistema di autenticazione per garantire l’accesso a un servizio in modo sicuro. Come suggerisce il nome, è una password usa e getta, che può essere utilizzata soltanto una volta e, in genere, ha una validità limitata nel tempo (TOTP, Time-based One-Time Password). 

Quando si usano i codici OTP?

I codici OTP sono parte dei sistemi di autenticazione a più fattori e sono utilizzati in diversi ambiti. Per esempio:

  • accesso a servizi della pubblica amministrazione,
  • operazioni tramite home banking,
  • accesso ai social network,
  • registrazione di un nuovi account,
  • modifica di impostazioni di sicurezza dei propri account,
  • verifica dell’identità,
  • e-commerce e acquisti online.

In molti casi, all’utente è richiesto un codice OTP in aggiunta all’inserimento delle proprie credenziali di accesso (username e password). 

Come si generano le password usa e getta?

I codici OTP vengono generati utilizzando degli algoritmi di crittografia a chiave condivisa. La chiave condivisa è una stringa di caratteri in uso a entrambe le parti (client e server) per criptare e decriptare i dati. 

Nel caso dell’One Time Password, la chiave è generata in maniera casuale al momento dell’azione dell’utente e viene memorizzata sul server. 

L’algoritmo di crittografia a chiave condivisa permette di generare un codice OTP in base alla chiave condivisa e alla data corrente. In questo modo, può essere utilizzato solo per l’accesso in quel preciso momento: una volta scaduto il tempo di validità, non è più utilizzabile.  

Al di là degli aspetti tecnici, esistono diversi metodi con cui un utente può ottenere un OTP. Alcuni di essi sono: 

app per smartphone: esistono diverse applicazioni, sia per Android che per iOS, che consentono di generare codici; 

token: si tratta di piccoli dispositivi portatili, solitamente in formato chiavetta USB o smart card, capaci di generare password casuali; 

SMS o email: in alcuni casi, il codice può essere inviato via SMS o via email;

servizi online: alcune aziende forniscono dei servizi online per la generazione degli OTP. 

Qualsiasi sia la modalità, è importante che l’utente utilizzi il codice OTP entro un breve lasso di tempo e poi lo cancelli subito, in modo da invalidarlo. In genere, lo stesso sistema di generazione considera la password usa e getta non più valida dopo alcuni secondi.  

Quali sono i vantaggi del codice OTP?

Gli OTP nascono con lo scopo di garantire la sicurezza dei processi di autenticazione: essendo password dinamiche, gli hacker non possono né memorizzarle né prevederle. Inoltre, la loro durata limitata lascia ai cybercriminali un margine di tempo troppo ridotto per portare a termine il furto delle credenziali. Nel caso in cui, poi, riuscissero davvero a recuperare l’OTP, non ne trarrebbero alcun vantaggio. Infatti, essendo già stato usato per un accesso o una transazione, il sistema di autenticazione lo riconoscerebbe come non più valido.

Dunque, l’utilizzo di un OTP per l’accesso a servizi sensibili assicura un maggiore livello di sicurezza rispetto alla semplice autenticazione a due fattori, in cui l’utente deve fornire soltanto username e password. 

In più, come abbiamo visto, può essere utilizzato per diversi scopi, dall’accesso a servizi online alla verifica dell’identità.

Tutti questi benefici superano di gran lunga i pochi svantaggi dei codici OTP, legati principalmente alla loro gestione. Infatti, la durata limitata di validità può essere un problema in alcuni casi: se si dimentica di salvare il codice OTP o se si ha un’interruzione di connessione durante la digitazione, si rischia di dover generare un nuovo codice.

Cos’è l’autenticazione a più fattori? 

Vale la pena terminare questo articolo spendendo due parole sull’autenticazione a più fattori.

Detta anche Multi-Factor Authentication, MFA, è un metodo di autenticazione che richiede all’utente di fornire non solo le proprie credenziali d’accesso ma anche un ulteriore elemento, che può essere un codice OTP o una chiave biometrica (es.: impronta digitale).  

In altre parole, l’MFA è un sistema di autenticazione basato su più livelli di sicurezza, che rende più difficile ai cybercriminali ottenere l’accesso a servizi e dati sensibili. Infatti, anche se un hacker dovesse riuscire a ottenere le credenziali d’accesso, non sarebbe in grado di superare l’ulteriore livello di sicurezza rappresentato, per esempio, dall’OTP.

L’utilizzo di una One Time Password, quindi, è un ottimo modo per implementare l’MFA nei propri processi di autenticazione. E qualsiasi sia il metodo scelto per generare i codici, la cosa più importante è prestare sempre massima attenzione alla sicurezza del proprio dispositivo e dei propri dati personali