HOTP vs TOTP: Qual è la differenza?
HOTP e TOTP sono i due standard principali per la password utilizzabile una sola volta ma che cosa significano da una prospettiva di sicurezza e perché si dovrebbe scegliere l'uno o l'altro?
Sia in HOTP che in TOTP il token (cioè il generatore della OTP) genera un codice numerico, di solito a 6 o 8 cifre. La sicurezza dell'OTP si basa sul fatto che i codici cambiano in modo costante e che sono monouso, da qui il nome.
HOTP: Password utilizzabile una sola volta basata su evento
La OTP basata su evento (detta anche HOTP cioè password utilizzabile una sola volta basata su HMAC) è l'algoritmo originale della password utilizzabile una sola volta e si basa su due parti di informazioni. La prima parte è la chiave segreta, detta il "seme", che è nota solo al token e al server che convalida i codici della OTP inviati. La seconda parte di informazioni è il fattore mobile che, in caso di OTP basata su evento, è un contatore. Il contatore è memorizzato nel token e sul server. Il contatore nel token aumenta quando il pulsante sul token viene premuto, mentre il contatore sul server aumenta solo quando una OTP viene convalidata con successo.
Per calcolare una OTP, il token inserisce il contatore nell'algoritmo HMAC utilizzando il seme del token come chiave. HOTP usa la funzione hash SHA-1 nel HMAC. Questo produce un valore di 160-bit che viene quindi ridotto alle 6 (o 8) cifre decimali visualizzate dal token.
TOTP: Password utilizzabile una sola volta basata sul tempo
La OTP basata sul tempo (TOTP in breve) si basa su HOTP ma qui il fattore mobile è il tempo e non il contatore. TOTP usa il tempo in incrementi chiamati intervalli, che di solito sono di 30 o 60 secondi. Questo vuol dire che ogni OTP è valida per la durata dell'intervallo.
Confronto
Entrambi gli schemi OTP offrono codici monouso ma la differenza chiave è che in HOTP una data OTP è valida finché viene utilizzata o finché una successiva OTP viene utilizzata. In HOTP ci sono numerosi codici validi "OTP successiva". Questo perché il pulsante del token può essere premuto, incrementando così il contatore del token, senza che la OTP risultante sia inviata al server di convalida. Per questo motivo i server di convalida HOTP accettano un intervallo di OTP. Specificamente accettano una OTP che viene generata da un contatore che è entro un numero previsto di incrementi rispetto al valore precedente del contatore memorizzato sul server. Questo intervallo viene definito finestra di convalida. Se il contatore del token è al di fuori dell'intervallo consentito dal server, la convalida non riesce e il token deve essere risincronizzato.
Quindi chiaramente in HOTP c'è un trasferimento da realizzare. Maggiore sarà la finestra di convalida, minore sarà la possibilità di dover risincronizzare il token con il server, cosa scomoda per l'utente. Ma, cosa importante, maggiore sarà la finestra, maggiore sarà la possibilità di un tentativo riuscito di indovinare le OTP accettate da parte di un attacco avverso.
In contrasto, in TOTP c'è un'unica OTP valida in un dato momento - quella generata dal tempo UNIX corrente.
Scelta
La scelta tra HOTP e TOTP da una pura prospettiva di sicurezza favorisce chiaramente TOTP. Cosa importante, il server di convalida deve essere in grado di affrontare il potenziale sfasamento temporale con i token TOTP al fine di minimizzare eventuali impatti sugli utenti.
C'è anche una maggiore scelta di fattore di forma con i token TOTP. OTP portachiavi tradizionale I token diventano più piccoli e Microcosm adesso ha introdotto la scheda OTP - un token OTP della grandezza di una carta di credito con display EPD. Le schede possono rappresentare una opzione più conveniente poiché possono essere conservate con altre carte nel portafogli o in un borsellino o sul retro della custodia del telefono cellulare.
Scopri la nostra linea di OTP qui
Gli standard HOTP e TOTP sono prodotti da OATH, la Initiative for Open Authentication. Tutti i token OTP di Microcosm OTP sono conformi a OATH.