OTP (One Time Password) Cos’è e a cosa serve

Definizione OTP

Una OTP è una password casuale generata sul momento, valida una volta sola: così si potrebbe riassumere l’idea dietro questa particolare tecnologia di autenticazione, che è molto utilizzata sia per validare le firme digitali che per confermare i pagamenti online. Grazie alla OTP, ad esempio, possiamo confermare un pagamento avendo la certezza assoluta che siamo stati davvero noi ad effettuarlo.

A che serve il codice OTP

In genere il livello di protezione base di un’operazione “delicata” o riservata come l’accesso ad un sito viene protetta (almeno) da una username/email e da una password. Questo livello di protezione è limitativo ed è in qualche modo di “primo livello”, perchè si rivela inadeguato per proteggere le operazioni di banking online ed è facile aggirarlo per un truffatore se, ad esempio, username e password venissero trafugate all’esterno (ad esempio nel caso di data leak, ovvero “fughe di dati” che pubblicano ad es. sui forum di hacker username e password in massa).

Un token OTP è pertanto utile per aggiungere un secondo livello di sicurezza nelle operazioni di login tradizionali, che sono legate ad una username e password statica, e sono soggette ad attacchi informatici come quelli a dizionario (si provano più credenziali contemporaneamente, si “tira a indovinare” insomma, sfruttando script molto veloci nel generare le combinazioni di password) o anche si effettuano attacchi con replica, tipici dei casi in cui si ricicla la stessa password su più account (replay-attack, una forma di aggressione di rete che consiste nell’impossessarsi di una credenziale di autenticazione comunicata da un host ad un altro, e riproporla successivamente simulando l’identità dell’emittente).

Del resto, anche ammesso che un intruso riesca a intercettare una OTP che è stata già utilizzata per accedere a un servizio o eseguire una transazione, non sarà in grado di riutilizzarla una seconda volta. Ecco le due caratteristiche principali di un buon codice OTP: viene generato in maniera difficile o impossibile da prevedere dall’esterno, e non poter essere usato una seconda volta.

Durata del codice OTP

Una volta che generiamo un accesso via OTP, in pratica generiamo un codice univoco (ad esempio un numero casuale di 6 cifre) che è unico nel suo genere, che non può essere usato su più di un dispositivo e che in genere scade dopo qualche minuto dalla sua generazione. La generazione di codici OTP può avvenire anche mediante app di firma digitale, come avviene nel caso di Namirial ad esempio, che genera un nuovo OTP casuale ogni 30 secondi circa. In questo modo, garantendo la durata limitata di ogni codice, si garantisce una maggiore sicurezza e si limita fortemente la possibilità di abusi.

Come viene usato

Il token OTP viene usato in vari ambiti, a cominciare da quello bancario, dove spesso viene generato sia mediante l’invio di SMS sul cellulare del cliente che, ad esempio, mediante appositi dispositivi dedicati alla generazione del codice stesso. Un codice OTP può essere generato con un token hardware (quello fornito dalle banche al momento dell’apertura del proprio conto corrente) oppure, più frequentemente, con un’app specifica che effettua la generazione univoca del codice, in modo non prevedibile dall’esterno e basato su avanzati criteri crittografici.

Ci sono insomma più tecnologie e modalità per generarlo: le OTP, comunque siano implementate, sono in grado di aumentare notevolmente la sicurezza delle operazioni svolte online, soprattutto per quanto riguarda la comunicazione di dati sensibili, di operazioni certificate e naturalmente di pagamenti su internet.

Tecnologie a supporto dei codici OTP

Le OTP per i pagamenti online sono disponibili sulle carte dei circuiti VISA, Mastercard o American Express, e possono essere utilizzate come fattore di autenticazione aggiuntivo. Questi sono i mezzi principali per poterli generare, di solito.

SMS

Si tratta di una delle OTP più diffuse a larga scala: in pratica dopo aver fatto un login, o pre-autorizzato un pagamento, il gateway invia un messaggio di testo con un codice OTP sul telefono del proprietario, in modo che mediante la OTP generata sul momento si possa certificare l’autenticità dell’operazione. Al tempo stesso, pero’, c’è da specificare che il NIST (National Institute of Standards and Technology americano) ha pubblicato da tempo un draft di documento che sconsiglia l’utilizzo di SMS per l’autenticazione a due fattori, o che comunque non lo considera il miglior metodo possibile, visto che teoricamente gli SMS possono essere intercettati da terzi. Per quanto i dettagli tecnici siano di difficile comprensione e, a parere di chi scrive, legati ad un insieme di circostanze (perchè si possa aggirare una OTP via SMS è necessario che vi venga infettato il PC con un trojan e, al tempo stesso, vi venga sottratto il numero di telefono, anche senza necessità di clonare la scheda SIM), rimane il fatto che un caso del genere è avvenuto in Germania tempo fa, come raccontato sul blog di Kaspersky.

Chiavi di accesso

Molti servizi di banking online mettono a disposizione la possibilità di generare la OTP mediante una chiave crittografata, in pratica un piccolo dispositivo associato univocamente al nostro conto, in grado di far comparire un codice numerico unico che poi si possa inserire per confermare le operazioni. Per i pagamenti online, ad ogni modo, questa tecnica non sembra essere molto diffusa, almeno per il momento, ma rimane essenziale per tutti gli altri tipi di pagamento.

Google Autenthicator

La tecnologia offerta da Google è in parte sottovalutata o ignota al grande pubblico, ma permette di accedere in modo molto sicuro ai servizi di pagamento online, ed è quindi da preferirsi. Ovviamente devono essere gli sviluppatori dei servizi di pagamento ad implementarla, cosa che in parte per alcuni servizi di pagamento (es. bitcoin) inizia ad essere popolare.

Vediamo ora alcuni esempi pratici di uso dei codici OTP.

Esempio d’uso di codice OTP (via smartphone)

L’uso del proprio smartphone come generatore di codici OTP è il più diffuso, senza dubbio, ed il più semplice da mettere a disposizione. Il servizio di protezione del denaro su carta prepagata PostePay, ad esempio, è attualmente sfruttato in questi termini.

Un esempio di accesso con codice OTP e cellulare potrebbe essere:

    1. andiamo nel sito della nostra banca, e digitiamo username e password del nostro conto
    2. una volta entrati il sito ci invia un SMS con un codice OTP sullo smartphone che abbiamo registrato
    3. ricopiamo il codice numerico generato all’interno del sito di home banking della nostra banca, dove indicato;
    4. confermiamo l’accesso ad avremo ora accesso al conto.
    5. La stessa procedura può valere anche per effettuare pagamenti online e bonifici, ad esempio, in modo da avere massima probabilità che l’operazione sia stata davvero autorizzata da noi.

Quanto sono sicuri i codici OTP?

Esiste anche una variante di OTP che sfrutta un indirizzo mail per ricevere il messaggio di conferma, è un sistema di protezione meno efficace (per quanto utilizzato) perchè la mail potrebbe essere intercettata. Anche un SMS, del resto, potrebbe essere letto dall’esterno e la rete GSM non è neanche lui considerato il massimo della sicurezza dagli esperti, in questo ambito. Il modo più sicuro per generare un codice OTP sembra essere legato all’uso di app specifiche come Google Authenticator.

Esempio d’uso di token OTP (via token hardware)

Un token è un dispositivo hardware con un display sopra, del tutto simile come design ad un “pennino” USB, ma con funzionalità diversa: serve infatti a generare il codice OTP per il nostro accesso personalizzato. Ognuno di questi dispositivi, quando vengono consegnati, sono univocamente assegnati ad un utente e sono unici nel loro genere, in modo tale che non sia possibile clonarli e che garantiscano l’accesso all’account bancario solo al legittimo proprietario.

Questo è anche il modo più sicuro per utilizzare OTP per la sicurezza dei nostri account, ma ovviamente la modalità deve essere prevista dal servizio che stiamo utilizzando.

Un esempio di accesso con codice OTP potrebbe essere:

  1. andiamo nel sito della nostra banca, e digitiamo username e password del nostro conto
  2. su richiesta, generiamo un codice OTP con il dispositivo di cui sopra
  3. ricopiamo il codice numerico generato all’interno del sito di home banking della nostra banca, dove indicato;
  4. confermiamo l’accesso ad avremo ora accesso al conto.
  5. La stessa procedura può valere anche per effettuare pagamenti online e bonifici, ad esempio, in modo da avere massima probabilità che l’operazione sia stata davvero autorizzata da noi.

 

1/5 (2)

Che ne pensi?