Algoritmi per generare One Time Password (OTP) e applicazioni pratiche in informatica

Algoritmi per generare One Time Password (OTP) e applicazioni pratiche in informatica

One Time Password

Una delle tecnologie di strong authentication di più largo e semplice utilizzo è rappresentata oggi dalla One Time Password (OTP), ovvero da un codice univoco, dinamico e valido per una sola transazione, generato da un apposito dispositivo crittografico (token) sulla base del tempo o di un contatore interno al dispositivo stesso o in risposta ad una sfida. L’autenticazione a due fattori basata su token richiede all’utente di immettere un nome utente, il PIN (l’informazione conosciuta) e il codice che appare sul display del token nel momento in cui viene richiesto l’accesso (l’elemento di appartenenza esclusiva). Se sia la password che il codice token vengono riconosciuti dal sistema, l’autenticazione ha esito positivo e l’utente può accedere alla risorsa.

Per limitare, infatti, l’efficacia di attacchi basati su un approccio di tipo esaustivo, nonché l’intercettazione delle credenziali (replay attack), è opportuno adottare password di limitata validità temporale e quindi utilizzare password OTP. Una volta verificate le credenziali il server scarta la password utilizzata rendendone impossibile il riutilizzo, sia da parte dell’utente legittimo sia da parte di un hacker. Un simile schema teorico richiede che l’utente legittimo utilizzi password sempre diverse per ogni diversa richiesta di accesso al servizio e che il server sia sempre allineato a ricevere la nuova password valida. Lo schema OTP, oltre che robusto, deve risultare semplice al punto da essere praticamente sostenibile dai sistemi che decidono di implementarlo.

Generazione delle OTP

Gli algoritmi di generazione delle OTP fanno uso di numeri casuali,  perché altrimenti sarebbe facile prevedere l’OTP futuro osservando i precedenti. Gli algoritmi OTP, che sono stati realizzati sono abbastanza diversi tra loro.

I vari approcci per la generazione delle OTP sono elencati qui di seguito:

  • Algoritmi, in cui il server di autenticazione e il client sono sincronizzati sulla base del tempo o di un contatore;
  • Algoritmi matematici, che generano una nuova password in base alla password precedente (le OTP sono una catena di password legate tra loro e devono essere utilizzate in un ordine predefinito);
  • Algoritmi matematici, dove la password è basata su una sfida (challenge, che può essere, ad esempio un numero casuale scelto dal server di autenticazione o dai dettagli della transazione).

Gli algoritmi basati sulla sincronizzazione, sono quelli utilizzati dalle banche, soprattutto per il fatto che, a differenza dei metodi matematici, i quali richiedono che client e server si parlino (per comunicare la chiave precedente o i numeri casuali), non richiedono un dialogo diretto tra il client ed il server del servizio, per la generazione della chiave.

Tutte queste modalità si basano su tecniche crittografiche di hashing a chiave segreta: il client ed il server di autenticazione hanno una chiave segreta condivisa, che viene utilizzata per criptare alcuni dati utili a generare l’OTP, la figura seguente mostra le opzioni per la generazione di una One Time Password con la crittografia a chiave segreta.

One Time Password (OTP)

Soluzioni OTP hardware e software

Ci sono diversi modi per rendere note all’utente le successive OTP da usare.

Alcuni sistemi elettronici prevedono l’uso di speciali token, che l’utente porta con sé, che generano le OTP e le mostrano utilizzando un piccolo display. Purtroppo, i token hardware, essendo di piccole dimensioni, sono particolarmente soggetti a perdite, danneggiamenti e furti.

Come alternativa ai token hardware, ci sono in commercio dei token software che girano su diversi dispositivi mobili dell’utente, come il telefono cellulare. Il vantaggio principale di un token software è la semplicità d’uso, poiché molti step del processo di autenticazione sono nascosti all’utente, anche se il fatto che l’utente non ha più un token separato, ne riduce la sicurezza. Per ovviare a questo, alcuni fornitori offrono smartcard, dotate di display, tastierino numerico, chip di prossimità e microprocessore, o chiavi USB con all’interno la chiave segreta condivisa, che lavora con il token software.

Altri sistemi generano le OTP sul lato server e le trasmettono all’utente su un canale fuori banda, ad esempio su un canale di messaggistica SMS.

Infine, in alcuni sistemi le OTP sono stampate su carta, che l’utente è tenuto a portare con sé e ne usa una ogni volta. L’elenco di password costituisce il token, ma deve essere custodito con sicurezza.

OTP hardware e software

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Una risposta a “Algoritmi per generare One Time Password (OTP) e applicazioni pratiche in informatica”

  1. Hօla! I’ve beewn foⅼloweing your weblog for a long time now and finaⅼly got the courage to go ahead and give you a shout out from
    Houston Texas! Just wanted to mention keep upp the eҳcellent work!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *