Cum functioneaza Google Authenticator?

Configurare noua (How To)

Situatie

Ai telefonul pe mod avion. Nu ai net, nu ai semnal la cartela. Cu toate astea, deschizi Google Authenticator si aplicatia iti da un cod de 6 cifre perfect valid. Logarea functioneaza. Cum stie serverul ce cod ai tu pe ecran, daca dispozitivul tau e complet izolat de lume?

Solutie

Secretul initial Totul porneste in momentul in care activezi 2FA si scanezi acel cod QR. Patratelul ala alb-negru nu ascunde un simplu link. El contine o cheie criptografica secreta (un seed). Serverul genereaza acest sir de caractere si il afiseaza vizual. Cand il scanezi, aplicatia salveaza cheia local pe telefon. Din secunda aceea, atat telefonul cat si serverul stiu exact acelasi secret.

Timpul ca variabila O cheie statica poate fi furata usor. Asa ca algoritmul are nevoie de un al doilea ingredient care sa se schimbe constant: timpul. Sistemul masoara secundele scurse de la 1 ianuarie 1970 (celebrul Unix Epoch). Daca ai compilat vreodata un mini-proiect in C sau ai scris ceva logica in Python, sigur te-ai lovit de timestamp-ul asta prin cod.

Mecanismul TOTP (Time-Based One-Time Password) Aici se intampla toata actiunea. Algoritmul face urmatorii pasi complet offline:

  • Ia cheia secreta.

  • Ia ora exacta de pe dispozitiv si o imparte in bucati de cate 30 de secunde.

  • Amesteca secretul cu blocul de timp folosind o functie de hashing (in general HMAC-SHA1).

  • Din sirul urias si imposibil de citit care rezulta, extrage dinamic doar 6 cifre.

In timp ce tu te uiti la telefon, serverul face fix acelasi calcul, folosind aceeasi cheie si acelasi timp curent. Tu tastezi codul. Serverul compara ce ai scris tu cu ce tocmai a calculat el. Daca se potrivesc, ai intrat in cont.

De asta aplicatia uneori iti respinge codul desi l-ai scris corect. Fie ceasul telefonului tau are o intarziere de cateva secunde fata de cel global, fie ai apasat Enter fix in secunda 31 si rezultatul ecuatiei s-a schimbat deja. Pana la urma, nu e decat o iluzie de sincronizare online. Sunt doar doua calculatoare la mii de kilometri distanta care rezolva aceeasi ecuatie in acelasi timp.

Tip solutie

Permanent

Voteaza

(10 din 19 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?