Panoramica
L'autenticazione a due fattori (nota anche come 2FA) è un meccanismo che combina due diversi metodi di autenticazione per autenticare gli utenti. Nel marzo 2011, Google annunciò l'uso dell'autenticazione a due fattori online, seguita da MSN e Yahoo.
Oltre a verificare nome utente e password, l'autenticazione a due fattori richiede anche la combinazione di un altro dispositivo fisico, come un token RSA o un telefono cellulare. I prodotti certificati a due fattori possono essere ampiamente suddivisi in due categorie:
Dispositivi hardware in grado di generare token App per smartphone
OTP
La password utilizzata nella verifica in due fasi è una password monouso (OTP), nota anche come password dinamica. Si tratta di una tecnologia di autenticazione potente che utilizza la crittografia per condividere le chiavi tra client e server, ed è un mezzo tecnico molto comodo per migliorare l'attuale autenticazione statica con password, ed è una tecnologia di autenticazione per verifica in due fasi importante.
OTP è l'abbreviazione di One-Time Password, che significa one-use password. È suddiviso nei seguenti due tipi:
HOTP (Algoritmo di Password Uni-Uso Basato su HMAC)
HOTP è una password monouso generata basandosi sull'algoritmo HMAC, noto anche come password dinamica per la sincronizzazione degli eventi, che è una specifica dell'algoritmo pubblicata da ITEF, e il pseudocodice è il seguente:
Il client e il server negoziano in anticipo una chiave K per la generazione di una password monouso. Il client e il server hanno ciascuno un contatore eventi C e sincronizzano i valori del conteggio in anticipo. Troncare è un algoritmo che converte una stringa di 20 byte generata da HMAC-SHA-1 in diverse cifre decimali.
TOTP (Algoritmo di Password Uni-Uso Basato sul Tempo)
TOTP è una versione migliorata di HOTP che utilizza il tempo per sostituire il contatore eventi C di HOTP, noto anche come cifrario dinamico per la sincronizzazione temporale. Pseudocodice:
T0 è il tempo iniziale del test, che di default è 0 X è il passo temporale, che di default è di 30 secondi La documentazione ufficiale fornisce una nota in testa, assumendo l'ora unix attuale = 59, T0 = 0, X = 30, poi T=1 Assumendo l'attuale tempo unix = 60, T0 = 0, X = 30, poi T=2 Cioè, il valore di T viene arrotondato verso il basso e il decimale viene scartato
Dalla figura sopra, possiamo vedere che ci sono due elementi principali dell'algoritmo di input: uno è la chiave condivisa (nota anche come seed), e l'altro è il conteggio (o fattore tempo), calcolato da un algoritmo specifico. Se entrambi gli elementi sono coerenti, il lato server e il lato client calcoleranno lo stesso risultato, abilitando la funzionalità di autenticazione.
|