Prezentare generală
Autentificarea în doi pași (cunoscută și ca 2FA) este un mecanism care combină două metode diferite de autentificare pentru a autentifica utilizatorii. În martie 2011, Google a anunțat utilizarea autentificării în doi pași online, urmată de MSN și Yahoo.
Pe lângă verificarea numelui de utilizator și a parolei, autentificarea în doi pași necesită și combinarea unui alt dispozitiv fizic, cum ar fi un token RSA sau un telefon mobil. Produsele certificate în doi factori pot fi împărțite în linii mari în două categorii:
Dispozitive hardware care pot genera tokenuri Aplicația pentru smartphone
OTP
Parola folosită în verificarea în doi pași este o parolă unică (OTP), cunoscută și sub denumirea de parolă dinamică. Este o tehnologie puternică de autentificare care folosește criptografia pentru a partaja chei între clienți și servere, fiind un mijloc tehnic foarte convenabil de a îmbunătăți autentificarea statică actuală a parolelor, fiind o tehnologie importantă de autentificare prin verificare în doi pași.
OTP este prescurtarea de la One-Time Password, care înseamnă parolă unică. Este împărțit în următoarele două tipuri:
HOTP (Algoritm de parolă unică bazat pe HMAC)
HOTP este o parolă unică generată pe baza algoritmului HMAC, cunoscută și ca parolă dinamică pentru sincronizarea evenimentelor, care este o specificație a algoritmului publicată de ITEF, iar pseudocodul este următorul:
Clientul și serverul negociază o cheie K în avans pentru generarea unei parole de unică folosire. Clientul și serverul au fiecare un contor de evenimente C și sincronizează valorile de numărare în prealabil. Trunchierea este un algoritm care transformă un șir de 20 de octeți generat de HMAC-SHA-1 în mai multe cifre zecimale.
TOTP (Algoritmul Parolei Bazate pe Timp)
TOTP este o versiune îmbunătățită a HOTP care folosește timpul pentru a înlocui contorul de evenimente C al HOTP, cunoscut și sub numele de cifrul dinamic pentru sincronizarea timpului. Pseudocod:
T0 este timpul inițial de testare, care devine implicit 0 X este pasul de timp, care implicit este de 30 de secunde Documentația oficială oferă o variantă generală, presupunând ora unix curentă = 59, T0 = 0, X = 30, apoi T=1 Presupunând timpul unix curent=60, T0=0, X=30, apoi T=2 Adică, valoarea lui T este rotunjită în jos, iar zecimalul este aruncat
Din figura de mai sus, putem vedea că există două elemente principale ale algoritmului de intrare: unul este cheia partajată (cunoscută și ca seed), iar celălalt este numărarea (sau factorul de timp), care este calculat de un algoritm specific. Dacă ambele elemente sunt consistente, partea de server și partea de client vor calcula același rezultat, permițând funcționalitatea de autentificare.
|