Tehnologie · Ghid

Codurile TOTP din aplicațiile de autentificare: configurare și recuperare

Cum sunt generate codurile TOTP, de ce contează ora telefonului și ce condiții au sincronizarea, transferul și codurile de rezervă.

Distribuie WhatsApp Facebook
Prim-plan al mâinilor unei persoane care folosește un telefon mobil.
Foto: cottonbro studio. Imagine ilustrativă

Codurile afișate de o aplicație de autentificare pot funcționa chiar dacă telefonul nu este conectat la internet. În cazul TOTP, codul este calculat dintr-un secret comun și din timpul curent. Serviciul la care se face autentificarea poate calcula același rezultat și îl poate verifica. Aplicația nu trebuie să primească prin mesaj fiecare cod nou, ceea ce diferențiază această metodă de confirmarea trimisă prin SMS.

TOTP înseamnă o parolă de unică folosință bazată pe timp. Standardul RFC 6238 descrie mecanismul și recomandă un interval implicit de 30 de secunde. Această valoare nu înseamnă că orice serviciu are obligatoriu aceeași configurație. Lungimea codului, intervalul folosit și toleranța pentru diferențele de timp țin de implementare. Cerculețul sau numărătoarea afișată de aplicație indică de obicei cât mai este valabil codul curent.

Ce se întâmplă la configurare

La activarea metodei, serviciul transmite secretul care trebuie păstrat de aplicație. Configurarea se poate face prin scanarea unui cod QR ori prin introducerea manuală a unei chei, dacă serviciul oferă această opțiune. Codul QR de configurare nu este identic cu numărul temporar folosit la autentificare. El poate conține informația necesară pentru generarea codurilor viitoare și nu trebuie distribuit ca o simplă imagine fără valoare de securitate.

Serviciul cere frecvent introducerea unui prim cod pentru confirmarea configurării. Operațiunea verifică faptul că aplicația și contul folosesc informațiile corespunzătoare. În Google Authenticator, conturile pot fi adăugate prin scanarea unui cod ori prin introducerea unei chei de configurare. Denumirea intrării permite identificarea serviciului și a contului. Aceasta devine importantă când aceeași aplicație conține mai multe conturi sau mai multe adrese de utilizator pentru același serviciu.

Aplicația generează codurile folosind secretul salvat, fără să cunoască parola contului. Într-un flux cu parolă și TOTP, cele două informații au roluri diferite. Cunoașterea parolei nu oferă automat secretul din aplicație, iar un cod temporar nu reprezintă parola permanentă. Totuși, codul trebuie introdus pe pagina autentică a serviciului: faptul că există două etape de autentificare nu elimină riscul unei pagini frauduloase.

Timpul și erorile de introducere

Verificarea depinde de timpul folosit atât de dispozitiv, cât și de server. O oră incorectă pe telefon poate produce coduri care nu sunt acceptate. Documentația Google precizează că versiunile actuale ale Authenticator folosesc setarea de timp a sistemului de operare. Începând cu versiunea 7.0, aplicația nu mai oferă vechea funcție separată de corectare a timpului. Instrucțiunile pentru interfețe anterioare nu descriu neapărat meniurile disponibile acum.

Un cod introdus chiar la schimbarea intervalului poate fi verificat după ce valoarea afișată s-a modificat. Standardul permite ca un server să țină cont de o toleranță limitată, însă nu impune acceptarea oricărui cod vechi. Folosirea intrării pentru alt cont produce o eroare asemănătoare. Pentru identificarea cauzei sunt diferite verificarea contului selectat, verificarea orei dispozitivului și observarea schimbării codului; niciuna nu presupune publicarea secretului de configurare.

Funcționarea fără conexiune a generatorului nu înseamnă că serviciul online poate fi accesat fără internet. Aplicația poate calcula numărul local, dar pagina de autentificare trebuie să comunice cu serverul. NIST arată că metodele cu introducerea manuală a unui cod de unică folosință nu sunt rezistente la phishing. Un atacator poate cere codul pe o pagină falsă și îl poate folosi în perioada sa de valabilitate.

Recuperarea depinde de aplicație și de cont

Google Authenticator permite sincronizarea codurilor cu un cont Google sau utilizarea fără un astfel de cont. Când sincronizarea este activată, codurile pot fi disponibile pe un dispozitiv nou după conectarea la contul corespunzător. În modul fără sincronizare, transferul manual descris de Google implică exportul de pe dispozitivul vechi și importul pe cel nou. Prezența aplicației instalate pe noul telefon nu dovedește că intrările vechi au fost recuperate.

Transferul manual folosește alte coduri QR generate pentru export. Acestea trebuie protejate deoarece permit importarea intrărilor de autentificare. În documentația Google, dispozitivul vechi este necesar pentru acest tip de transfer. Pierderea lui, fără sincronizare sau altă metodă de recuperare pregătită, schimbă situația: recuperarea nu se mai poate baza pe simpla scanare a unui cod care exista numai în telefonul pierdut.

Microsoft Authenticator are propriile condiții pentru copie și restaurare. Documentația Microsoft precizează că restaurarea se face pe același tip de dispozitiv: o copie pentru iOS nu se restaurează pe Android și invers. Conturile de serviciu sau școală pot necesita conectare și înregistrare din nou. Recuperarea numelui unei intrări nu trebuie confundată cu recuperarea completă a tuturor funcțiilor de aprobare folosite de acel cont.

Pentru conturile terțe care folosesc coduri temporare, copia Microsoft poate restabili datele necesare acestora, în condițiile descrise de furnizor. Acest lucru nu reprezintă o regulă comună tuturor aplicațiilor. Metoda concretă se verifică în setările aplicației și în documentația serviciului protejat. O confirmare prin notificare, o cheie de acces și un cod TOTP sunt mecanisme diferite, chiar dacă pot fi prezentate în aceeași aplicație de autentificare.

Rolul codurilor de rezervă

Unele servicii oferă coduri de rezervă pentru pierderea accesului la metoda obișnuită. Google descrie pentru contul său seturi de zece coduri, fiecare utilizabil o singură dată. Generarea unui set nou invalidează setul anterior. Aceste valori nu sunt codurile care se schimbă la fiecare interval în Authenticator, iar numărul și formatul lor nu trebuie extrapolate la alte servicii care pot avea propriile mecanisme de recuperare.

Secretul inițial, codurile QR de transfer și codurile de rezervă oferă posibilități de acces și trebuie păstrate separat de imagini sau documente distribuite public. Standardul TOTP cere protejarea cheilor secrete, iar furnizorii descriu mijloacele de recuperare pentru propriile conturi. Înlocuirea telefonului se finalizează numai când noul dispozitiv generează coduri acceptate pentru conturile vizate și metodele de recuperare disponibile corespund setărilor actuale ale acestora.

Distribuie WhatsApp Facebook