
TOTP vs HOTP: Qual è la differenza (e qual è migliore)?
La guida semplice per comprendere TOTP e HOTP

Zoé Valette
Consulente Marketing
Riepilogo
TOTP e HOTP sono entrambi algoritmi OTP basati su HMAC, ma differiscono nel modo in cui vengono generati i codici: TOTP utilizza l'ora corrente (i codici scadono automaticamente), mentre HOTP utilizza un contatore (i codici rimangono validi finché non vengono utilizzati). TOTP è la scelta più comune per via della sua scadenza prevedibile, ma HOTP si adatta meglio a scenari offline in cui la sincronizzazione dell'ora tra il dispositivo e il server non è affidabile.
Nel mondo digitale di oggi, la sicurezza è una priorità assoluta. Abbiamo tutti sentito parlare delle password tradizionali e di come non siano così sicure come pensavamo un tempo. È qui che entrano in gioco le password monouso (OTP). Offrono un modo più sicuro e dinamico di autenticare gli utenti.
Oggi approfondiremo due metodi OTP molto diffusi: Time-Based One-Time Password (TOTP) e HMAC-Based One-Time Password (HOTP). Quali sono le differenze tra loro? E come decidere quale si adatta meglio alle proprie esigenze? Scopriamolo insieme.
Comprendere gli OTP
Innanzitutto, che cos'è esattamente un OTP?
Un OTP è una password univoca che può essere utilizzata una sola volta per una singola sessione di accesso o transazione. Queste password sono solitamente lunghe sei cifre e vengono utilizzate nei sistemi di autenticazione a due fattori (2FA) e di autenticazione a più fattori (MFA).
Il vantaggio principale degli OTP è che sono dinamici e di breve durata, il che li rende molto più sicuri delle password statiche. Per ulteriori informazioni, potete consultare la nostra guida completa sugli SMS OTP.
Ora, analizziamo i due tipi principali di OTP.
Time-Based One-Time Password (TOTP)
Come funziona il TOTP?
Il TOTP utilizza un algoritmo basato sul tempo in cui il fattore variabile è l'ora Unix corrente divisa per un valore di intervallo temporale (timestep), in genere impostato a 30 o 60 secondi. Ciò significa che l'OTP è valido solo per un breve periodo, migliorando la sicurezza.
L'algoritmo TOTP funziona tipicamente come segue:
Viene stabilito un segreto condiviso tra il server e il client.
Viene determinata l'ora corrente e divisa per il timestep.
Questo valore viene combinato con il segreto condiviso utilizzando una funzione di hash crittografica.
L'hash risultante viene troncato per creare un OTP leggibile dall'utente.
Vantaggi e svantaggi del TOTP
✅ Vantaggi:
Maggiore sicurezza grazie al breve periodo di validità
Riduce la finestra temporale per potenziali attacchi
Autosincronizzante (basato sull'ora corrente)
🚩 Svantaggi:
Richiede la sincronizzazione dell'ora tra il dispositivo dell'utente e il server
L'OTP può scadere prima dell'inserimento, il che potrebbe risultare scomodo
Sensibile alla discrepanza oraria (time drift) sui dispositivi
HMAC-Based One-Time Password (HOTP)
Come funziona l'HOTP?
L'HOTP si basa su un algoritmo guidato dagli eventi. Quando l'utente richiede un OTP, un contatore si incrementa sia sul lato client che sul lato server. Questo contatore, insieme a una chiave segreta condivisa (nota come "seed"), genera un OTP unico. Questo processo utilizza la funzione di hashing HMAC-SHA-1.
L'algoritmo HOTP funziona tipicamente come segue:
Vengono stabiliti un segreto condiviso e un valore iniziale del contatore tra il server e il client.
Quando viene richiesto un OTP, il valore corrente del contatore viene combinato con il segreto condiviso utilizzando HMAC-SHA-1.
L'hash risultante viene troncato per creare un OTP leggibile dall'utente.
Il contatore viene incrementato su entrambi i lati dopo l'uso.
Vantaggi e svantaggi dell'HOTP
✅ Vantaggi:
Flessibile, poiché l'OTP non scade finché non viene utilizzato
Nessuna sincronizzazione oraria richiesta
Può essere implementato offline
🚩 Svantaggi:
Potenzialmente meno sicuro a causa del periodo di validità più lungo
Rischio di desincronizzazione se vengono generati più OTP senza essere utilizzati
Richiede una gestione sicura del contatore sia sul lato client che sul lato server
Differenze chiave tra HOTP e TOTP
⏳ Scadenza dell'OTP
Una delle differenze principali è la durata di validità dell'OTP. I token HOTP non scadono finché non vengono utilizzati, offrendo una maggiore flessibilità. Al contrario, i token TOTP scadono dopo un periodo prestabilito, solitamente 30-60 secondi, il che aumenta la sicurezza ma richiede un inserimento tempestivo.
🔐 Comodità vs. Sicurezza
L'HOTP offre un'esperienza più user-friendly senza vincoli di tempo, ma è meno sicuro a causa della vulnerabilità della finestra di convalida. Il TOTP, pur richiedendo l'inserimento tempestivo dell'OTP, è più sicuro proprio grazie alla sua scadenza basata sul tempo.
🪢 Complessità di implementazione
L'HOTP è generalmente più semplice da implementare perché non richiede la sincronizzazione dell'ora. Il TOTP, invece, necessita di una sincronizzazione oraria accurata, il che aggiunge un livello di complessità ma aumenta anche la sicurezza.

Scegliere tra HOTP e TOTP
La scelta tra HOTP e TOTP dipende dalle vostre esigenze specifiche e dalle circostanze:
Requisiti di sicurezza: se un sistema OTP sicuro è la vostra massima priorità, il TOTP è generalmente la scelta migliore.
Esperienza utente: se volete evitare vincoli di tempo per gli utenti, l'HOTP potrebbe essere più adatto.
Sincronizzazione oraria: se mantenere i dispositivi sincronizzati rappresenta una sfida, l'HOTP può essere un'opzione più pratica.
Risorse e implementazione: se cercate qualcosa di rapido e facile da implementare con meno risorse, l'HOTP è la strada da seguire.
Uso online vs. offline: per le applicazioni offline, l'HOTP potrebbe essere più indicato, poiché non richiede una comunicazione in tempo reale con il server.
Sia l'HOTP che il TOTP migliorano significativamente la sicurezza rispetto alle password tradizionali, offrendo metodi di autenticazione dinamici e monouso.
La natura temporale del TOTP lo rende generalmente più sicuro, rendendolo la scelta preferita per la maggior parte delle moderne applicazioni online.
Quando scegliete tra HOTP e TOTP, valutate i vostri requisiti di sicurezza specifici, gli obiettivi di esperienza utente e i vincoli di implementazione. Qualunque metodo scegliate, l'implementazione di robusti sistemi OTP può migliorare significativamente il vostro livello di sicurezza, proteggendo le vostre risorse digitali da accessi non autorizzati e garantendo un'esperienza utente più sicura.
Volete implementare soluzioni OTP sicure per la vostra applicazione?
Su Prelude.so, siamo specializzati nel fornire infrastrutture avanzate di verifica SMS TOTP e onboarding mobile attraverso un set di API unificate.
La nostra soluzione consente alle aziende di:
Verificare i propri utenti a livello globale su più canali: SMS, WhatsApp, Viber o RCS
Prevenire le frodi da SMS pumping per proteggere i propri utenti (e il proprio budget)
Iniziare con la verifica degli utenti in meno di un giorno, grazie ad API intuitive e a una documentazione completa
Ridurre il budget di verifica grazie a prezzi competitivi e a una fatturazione trasparente
Abbiamo anche creato una guida in cui confrontiamo i primi 10 provider di API SMS sul mercato.
Che operiate nei settori dei social media, del dating, del fintech, dell'e-commerce o in qualsiasi altro settore che richieda la verifica degli utenti, Prelude.so può aiutarvi a snellire i processi di autenticazione e a migliorare la sicurezza.
Inizia a ottimizzare il tuo flusso di Auth
Invia SMS di verifica in tutto il mondo al miglior prezzo, con la massima recapitabilità e senza spam.
Prezzi
Risorse


