Una OTP, acronimo di One Time Password, è un codice valido una sola volta e per un tempo limitato. Serve come secondo elemento di verifica accanto alla password: qualcosa che sapete, la password, si somma a qualcosa che avete, il dispositivo che genera o riceve il codice.
È la misura che ha fatto più di ogni altra per rendere inutili le credenziali rubate. Ma il modo in cui viene raccontata, come se rendesse l’accesso impossibile a chiunque non abbia il vostro telefono, non regge alla prova dei fatti. Alcune implementazioni si aggirano, e vale la pena sapere quali.

Come funziona una password monouso
Il meccanismo si regge su un segreto condiviso, stabilito una volta sola durante la configurazione. Quando inquadrate un codice QR con un’app di autenticazione, state copiando quel segreto dal server al vostro telefono.
Da quel momento le due parti possono generare lo stesso codice indipendentemente, senza scambiarsi nulla. Il server calcola il codice che si aspetta, voi digitate quello che leggete sul dispositivo, e se coincidono l’accesso è concesso. Nessun codice viaggia in rete, e questo è il motivo per cui un’app di autenticazione funziona anche senza connessione dati.
Il codice ha una validità breve, tipicamente trenta secondi, e non si riusa. Un codice intercettato dopo l’uso non vale nulla, il che elimina in un colpo solo la famiglia di attacchi che riutilizzano credenziali catturate in precedenza. È anche il motivo per cui un attacco a forza bruta contro un account protetto da OTP non ha praticamente possibilità: la finestra utile è troppo stretta.
HOTP e TOTP: due modi di generare il codice
Gli algoritmi standardizzati sono due, entrambi definiti dall’iniziativa OATH e implementati in modo interoperabile da tutti i fornitori seri.
HOTP lega il codice a un contatore che avanza a ogni utilizzo. Il codice non scade con il tempo: resta valido finché non viene usato. È comodo per chi ha difficoltà a inserire un codice in pochi secondi, ma ha uno svantaggio pratico: se il contatore del dispositivo e quello del server si disallineano, per esempio perché qualcuno ha premuto il pulsante più volte a vuoto, serve una risincronizzazione.
TOTP usa invece l’orario corrente come variabile. Il codice cambia ogni trenta secondi e scade da solo. È lo standard di fatto delle applicazioni di autenticazione, e la finestra ristretta riduce il tempo in cui un codice sottratto è ancora spendibile.
Fra i due, TOTP è la scelta corretta nella quasi totalità dei casi aziendali.

Il canale di consegna cambia tutto
Qui sta la distinzione che manca in quasi tutte le spiegazioni sull’argomento. Due sistemi che vi mostrano entrambi sei cifre possono offrire livelli di protezione molto diversi, e la differenza sta in come quelle cifre arrivano fino a voi.
L’SMS è il canale più diffuso e il più debole. Il codice attraversa la rete telefonica, che non è stata progettata per trasportare segreti, e soprattutto è legato a un numero che può essere trasferito su un’altra SIM. Un attaccante che riesce a farsi intestare il vostro numero riceve i codici al posto vostro. L’istituto statunitense per gli standard tecnologici ha raccomandato di abbandonare l’SMS come canale di autenticazione già da diversi anni, e alcuni regolatori bancari si stanno muovendo nella stessa direzione.
L’e-mail è peggio ancora, e per una ragione logica prima che tecnica: se qualcuno ha le vostre credenziali di posta, ha anche il secondo fattore. Non state aggiungendo un elemento indipendente, state chiedendo due volte la stessa cosa.
L’app di autenticazione è il punto di equilibrio ragionevole. Il segreto resta sul dispositivo, il codice non transita da nessuna parte, e non c’è un operatore telefonico da convincere. Google Authenticator e Microsoft Authenticator sono le più diffuse, ma qualsiasi applicazione conforme a TOTP funziona con qualsiasi servizio conforme.
Il token hardware è il livello superiore. Un dispositivo dedicato che genera codici, o meglio ancora una chiave di sicurezza fisica, sottrae il segreto a un telefono che può essere compromesso da un infostealer o smarrito.
Su quali dei vostri accessi il secondo fattore è davvero attivo?
Un vulnerability assessment verifica i servizi esposti su internet e le loro configurazioni di autenticazione, e mostra dove l’accesso dipende ancora dalla sola password.
Gli attacchi che aggirano l’OTP
Va detto con chiarezza, perché la letteratura commerciale sull’argomento tende a ometterlo: esistono tecniche che superano l’autenticazione a due fattori, e sono in uso.
La prima è il proxy di phishing in tempo reale. La vittima arriva su una pagina che imita il servizio legittimo, ma quella pagina non si limita a registrare quello che viene digitato: lo inoltra al servizio vero nello stesso istante. Voi inserite password e codice, il proxy li usa immediatamente, il servizio autentica e restituisce la sessione. L’attaccante non ha bisogno di rubare il codice, gli basta essere in mezzo alla comunicazione nel momento giusto.
La seconda riguarda le notifiche push, che sono la forma più comoda di secondo fattore e proprio per questo la più esposta a un difetto umano. Un attaccante che possiede la password può tentare l’accesso ripetutamente, generando decine di richieste di conferma sul telefono della vittima. Prima o poi qualcuno tocca “approva”, per sbaglio o per far cessare le notifiche.
La terza è lo scambio di SIM, di cui abbiamo già detto: colpisce esclusivamente chi riceve i codici via SMS.
Nessuna di queste rende inutile l’OTP. Rendono inutile l’idea che l’OTP basti. La differenza fra un attacco automatizzato che prova milioni di credenziali rubate e uno di questi tre è enorme in termini di impegno richiesto, e il secondo fattore continua a fermare il primo integralmente.
Che cosa c’è oltre la password monouso
La risposta tecnica ai proxy di phishing esiste da qualche anno e si chiama autenticazione resistente al phishing, basata sugli standard FIDO2 e WebAuthn.
Il principio è che il dispositivo non produce un codice da digitare, ma firma crittograficamente una richiesta legata al dominio del sito che l’ha generata. Se la richiesta arriva da un dominio diverso da quello registrato, la firma non viene prodotta. Un proxy che si finge il vostro gestionale non ottiene nulla, perché il dominio non coincide e la verifica fallisce prima ancora che l’utente possa sbagliare.
È il motivo per cui le chiavi di sicurezza fisiche e le passkey stanno sostituendo l’OTP sugli accessi più critici. Non perché la password monouso non funzioni, ma perché sposta l’ultimo controllo su una persona sotto pressione, mentre questo lo sposta sul dispositivo.
Per la maggior parte delle aziende italiane, però, il salto da fare è un altro e viene prima: passare dalla sola password a un secondo fattore qualsiasi. Chi è ancora lì ha molto più da guadagnare attivando TOTP ovunque che discutendo di passkey.
Come impostarlo in azienda
Le decisioni che contano sono poche, e nessuna è tecnicamente complessa.
- Attivare il secondo fattore su tutti gli accessi remoti, senza eccezioni per dirigenti o fornitori: le eccezioni sono esattamente gli account che vengono cercati
- Sostituire l’SMS con un’app di autenticazione ovunque il servizio lo consenta
- Riservare le chiavi hardware agli account con privilegi amministrativi e ai sistemi che custodiscono i dati sensibili
- Stabilire come si riconosce un’identità quando qualcuno chiama dicendo di aver perso il telefono, perché quella procedura è il punto più debole dell’intero impianto
- Verificare che i codici di recupero generati alla configurazione non siano conservati in chiaro in un documento condiviso
L’ultimo punto è quello che salta fuori più spesso nelle verifiche, e vanifica tutto il resto: un file di codici di emergenza accessibile a chiunque entri nella rete rende il secondo fattore una formalità.
Resta una considerazione di fondo. L’OTP protegge l’ingresso, non quello che c’è dentro. Se un accesso remoto consegna l’intera rete interna, come accade quando la VPN aziendale non è affiancata da alcuna segmentazione, l’autenticazione forte è una porta blindata su una casa senza muri interni.
Fin dove arriva chi supera l’autenticazione?
Un penetration test parte da un punto di ingresso realistico e verifica quali sistemi risultano effettivamente raggiungibili. Il risultato dice che cosa va segmentato per primo.
