Glossary
OTP
Password monouso
By Buğra SözeriPublished Updated
OTP (One-Time Password, password monouso) è un codice di autenticazione a uso singolo, tipicamente 6 cifre, valido per una breve finestra. Combinato con una password normale forma l’autenticazione a due fattori (2FA).
Tre canali di consegna comuni:
- OTP via SMS — codice inviato per messaggio al telefono dell’utente. Il piú comune, anche il meno sicuro (attacchi di SIM-swap).
- TOTP (basato sul tempo, RFC 6238) — generato da un’app di autenticazione da un segreto condiviso + ora corrente. Non richiede rete. Comune in Google Authenticator, Authy, 1Password.
- HOTP (basato sul contatore, RFC 4226) — incrementa un contatore per ogni utilizzo. Ora raro tranne che per token hardware come la modalità OTP di YubiKey.
Gli OTP vanificano gli attacchi di riutilizzo delle password (la password rubata da sola è inutile) ma non vanificano il phishing moderno — un attaccante che esegue il phishing dell’OTP può riproporlo entro la finestra di validità. L’autenticazione basata su chiave hardware (FIDO2 / WebAuthn) vanifica il phishing perché la chiave prova di trovarsi sul sito legittimo.
Il problema del downgrade dell’OTP via SMS: la revisione SP 800-63B del NIST del 2017 ha deprecato gli SMS come autenticatore fuori banda a causa di tre schemi di attacco documentati — frode di SIM-swap (l’attaccante convince un operatore mobile a trasferire il numero della vittima su un nuovo SIM), exploit del protocollo SS7 (la rete di segnalazione delle telecomunicazioni globali ha un’autenticazione debole e può essere interrogata per reindirizzare i messaggi) e frode di portabilità del numero di area fisica. Le banche e le piattaforme di trading che fanno ricadere sugli SMS come metodo di recupero riducono efficacemente la sicurezza dell’account a qualunque script di assistenza clienti applichi l’operatore mobile. Le app che consentono di optare per il solo TOTP o il solo WebAuthn sono significativamente piú sicure.
Meccanica del TOTP — perché la finestra di 30 secondi: il TOTP è HMAC-SHA1 di (segreto condiviso, timestamp corrente di 30 secondi), troncato a 6 cifre. La granularità di 30 secondi è un compromesso: abbastanza breve da limitare le finestre di replay, abbastanza lunga da perdonare un piccolo sfasamento dell’orologio tra server e client. La maggior parte dei verificatori TOTP accetta i valori del passo temporale precedente, corrente e successivo per gestire sfasamenti di ±30s, motivo per cui il codice appena scaduto nella tua app di autenticazione spesso funziona ancora per qualche secondo. Il provisioning avviene tramite un codice QR che codifica otpauth://totp/Issuer:user?secret=...&period=30&digits=6. Correlati: TOTP, JWT. Riferimento: RFC 6238 — TOTP.
Esempio pratico
Ti iscrivi al TOTP. Il server genera un segreto a 160 bit (ad es. JBSWY3DPEHPK3PXP in base32), ti mostra un codice QR e la tua app di autenticazione memorizza il segreto. Per generare un codice al tempo Unix corrente 1716393600: calcola il passo temporale T = floor(1716393600 / 30) = 57213120, poi HMAC-SHA1(secret, T) produce un hash di 20 byte. Troncamento dinamico secondo RFC 4226: prendi l’ultimo nibble dell’hash come offset, estrai 4 byte a quell’offset, maschera il bit piú significativo e calcola il modulo 10⁶ per ottenere un codice a 6 cifre — diciamo 492039. Il server esegue lo stesso calcolo; se i codici corrispondono (consentendo un passo su entrambi i lati per lo sfasamento dell’orologio), l’autenticazione riesce. L’intero protocollo è deterministico e offline una volta eseguito il provisioning del segreto.
Quando e perché è importante
L’OTP è la differenza tra “il dump delle credenziali nel dark web compromette il tuo account” e “il dump delle credenziali è inutile senza il tuo telefono”. Empiricamente, lo studio del 2019 di Google con NYU e UCSD ha dimostrato che l’aggiunta di qualsiasi secondo fattore bloccava il 99% degli attacchi di credential stuffing massicci; l’OTP via SMS da solo bloccava il 96% del phishing mirato e i prompt sul dispositivo bloccavano il 99%. Il divario rimanente — kit di phishing che inoltrano OTP in tempo reale (Evilginx, Modlishka) — viene colmato solo da fattori resistenti al phishing (WebAuthn/passkey, chiavi hardware FIDO2). La scala pragmatica per qualsiasi account: solo password → OTP via SMS → app di autenticazione TOTP → chiave di sicurezza hardware. Ogni passo aumenta materialmente il costo per l’attaccante. Riferimento: NIST SP 800-63B — Linee guida sull’identità digitale.
Frequently asked questions
- Cos'è un OTP?
- Un OTP (One-Time Password, password monouso) è un codice a uso singolo, tipicamente 6 cifre, che scade dopo un utilizzo o entro una breve finestra temporale. Fornisce un secondo fattore di autenticazione oltre alla password statica.
- Come si differenzia un OTP da una password normale?
- Una password normale è statica e riutilizzabile; un OTP è valido per un solo tentativo di autenticazione o una breve finestra (30 secondi per il TOTP). Catturare un OTP non fornisce all'attaccante accesso continuativo se è già stato utilizzato o scaduto.
- Qual è la differenza tra OTP via SMS e OTP via app di autenticazione?
- Gli OTP via SMS vengono inviati sulla rete telefonica e sono vulnerabili ad attacchi di SIM-swap e intercettazione SS7. Gli OTP via app di autenticazione (TOTP) sono generati localmente da un segreto condiviso e non vengono trasmessi finché non vengono inseriti, rendendoli significativamente più sicuri.
Related
Published May 15, 2026 · Last reviewed May 31, 2026