OTP Time-based: Come funzionano le One Time Password basate sul tempo

OTP Time-based: Come funzionano le One Time Password basate sul tempo

Definizione OTP

In sicurezza informatica e precisamente in crittografia, una one-time password (OTP) o in italiano password valida una sola volta è appunto una password che è valida solo per una singola sessione di accesso o una transazione. Per questo suo scopo l’OTP è anche detta password usa e getta.

La OTP evita una serie di carenze associate all’uso della tradizionale password statica. Il più importante problema che viene risolto da OTP è che, al contrario della password statica, essa non è vulnerabile agli attacchi con replica. Ciò significa che, se un potenziale intruso riesce a intercettare una OTP che è stata già utilizzata per accedere a un servizio o eseguire una transazione, non sarà in grado di riutilizzarla, in quanto non sarà più valida. D’altra parte, una OTP non può essere memorizzata da una persona in quanto sarebbe inutile per lo stesso motivo. Essa richiede quindi una tecnologia supplementare per poter essere utilizzata (un dispositivo fisico con la calcolatrice OTP incorporata, o un numero di cellulare specifico). Le OTP possono essere utilizzate come unico fattore di autenticazione, o in aggiunta ad un altro fattore, come può essere la password dell’utente, i dati della carta di credito o un PIN in modo da realizzare una autenticazione a due fattori.

OTP Time-based: Come funzionano le One Time Password basate sul tempo

OTP Time-based 

Il meccanismo OTP time-based (OTP basato sul tempo) è stato inventato e brevettato da Security Dynamics, successivamente acquisita da RSA. Come mostrato nello schema presente nella figura seguente, i token RSA SecurID basati sulla sincronizzazione temporale generano numeri pseudocasuali a 6 cifre ad intervalli regolari dell’ordine di poche decine di secondi (60 sec), secondo un algoritmo che, tra i vari fattori, tiene conto del trascorrere del tempo grazie ad un orologio interno.

L’altro fattore che influenza l’algoritmo è il seed, un’informazione originaria condivisa tra server e token all’atto della consegna del token al possessore. Ogni token al mondo ha un diverso seed. Lo stesso algoritmo è anche implementato su di un server di autenticazione, che è stato inizialmente sincronizzato con il token e che, quindi, genera la stessa sequenza di numeri pseudocasuali del token negli stessi momenti, pur non essendoci alcuna comunicazione tra i due oggetti. A tale numero deve essere anteposto un PIN a 4 cifre noto all’utente ed al sistema di autenticazione per generare una passcode a 10 cifre temporanea, o di sessione, che può essere usata per effettuare l’autenticazione entro la scadenza dell’intervallo temporale. La sicurezza del seed memorizzato sul token è affidata ad un sistema in grado di cancellare l’informazione qualora il dispositivo sia forzato fisicamente. Gli “ACE Server” di RSA sono difesi direttamente da RSA.

Schema di funzionamento del token RSA SecurID
Schema di funzionamento del token RSA SecurID

Autenticazione a due fattori

L’autenticazione a due fattori è data dal fatto che per generare la passcode temporanea corretta è necessario:

  • possedere lo specifico token che, in un dato istante, genera lo stesso numero pseudocasuale generato dal server di autenticazione;
  • conoscere il PIN di partenza con cui l’OTP va combinata.
Autenticazione a due fattori con token RSA SecurID
Autenticazione a due fattori con token RSA SecurID

Criticità del sistema

Teoricamente, considerato che la password temporanea scade dopo poche decine di secondi, chi volesse violare la sicurezza dovrebbe non solo essere a conoscenza di quella valida per il particolare istante, ma dovrebbe anche usarla prima che essa scada  (oltre ad essere in possesso del PIN). Per questo motivo, un token di questo tipo dovrebbe elevare notevolmente gli standard di sicurezza.

Nella realtà, però, i due clock raramente segnano lo stesso tempo: i token nel corso della loro vita sono soggetti ad una potenziale deriva temporale. Per ovviare a questo problema, si imposta sul server una finestra di tolleranza per consentire l’accettazione delle password entro i +/- 3 min. Pertanto, se il token è impostato per aggiornare le OTP ad intervalli di 60 secondi, 7 valori di password sarebbero accettate come corrette. Ciò consentirebbe ad un malintenzionato di effettuare il login con una delle altre password valide. Un altro handicap per la sicurezza è rappresentato dal fatto che i token visualizzano continuamente codici OTP validi, visibili da chiunque intorno.

Un altro svantaggio da tenere in considerazione è dato dal fatto che essendo i token time-based pre-inizializzati dal costruttore, il produttore ha una copia del seed di ogni token venduto e ciò rende il meccanismo vulnerabile ad attacchi massivi. Infatti, il 17 marzo 2011 RSA ha dichiarato di aver subito un’intrusione dei propri sistemi e, successivamente, che sono stati resi insicuri oltre 40 milioni dei propri token, poiché gli attaccanti sono riusciti a sottrarne i seed ed altre informazioni sensibili. L’unico rimedio a questo tipo di attacco è sostituire il token.

Un ulteriore svantaggio risiede nella durata di vita di questo tipo di token, che si aggira intorno ai 24-60 mesi, momento in cui il dispositivo smette di funzionare, rendendo necessaria la sua sostituzione, con relative spese a carico dell’ente erogatore, che si ripetono ogni 2-5 anni per tutti gli utenti fruitori.

Pubblicato da Vito Lavecchia

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

Lascia un commento

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