Utilia

Generator de coduri TOTP și HOTP

Generează coduri 2FA TOTP și HOTP dintr-un secret Base32 sau URI otpauth://, cu SHA-1, SHA-256 sau SHA-512, numărătoare inversă și cod QR pentru aplicații 2FA.

Un secret 2FA este la fel de sensibil ca o parolă. Totul rulează local în browserul tău: secretul, codurile și codul QR nu sunt trimise nicăieri.

Configurează o aplicație de autentificare

Adaugă un emitent și un nume de cont, apoi scanează codul QR sau copiază linkul otpauth:// în aplicația ta de autentificare.

Cum generezi coduri TOTP

  1. Lipește un secret Base32 (de exemplu JBSWY3DPEHPK3PXP) sau un link otpauth:// complet în Secret (Base32) sau URI otpauth://. Se acceptă spații, cratime, litere mici și lipsa completării =.
  2. Codurile apar pe măsură ce scrii sau când apeși Arată codurile. Un URI lipit completează pentru tine câmpurile Tip, Algoritm, Cifre, Perioadă (secunde), Emitent și Cont.
  3. Citește Codul curent din mijloc, cu Codul anterior și Codul următor de o parte și de alta. Bara de dedesubt numără invers secundele rămase până la schimbarea codului, iar Copiază codul îl copiază fără spațiu.
  4. Pentru coduri bazate pe contor, alege HOTP (bazat pe contor), setează Contor și folosește Contorul următor ca să avansezi.
  5. Ca să creezi un secret 2FA nou, apasă Secret aleatoriu nou. Completează Emitent și Cont, apoi scanează codul QR cu o aplicație de autentificare, apasă Copiază URI-ul sau Descarcă codul QR (PNG).

Cum funcționează TOTP și HOTP

HOTP (RFC 4226) calculează un HMAC al unui contor de 8 octeți cu secretul comun, apoi aplică o trunchiere dinamică: ultimii patru biți ai HMAC-ului aleg o deplasare, de acolo se citesc patru octeți, bitul superior este șters, iar numărul este redus modulo 10^cifre. Rezultatul este un cod de 6 până la 8 cifre.

TOTP (RFC 6238) este HOTP în care contorul este pasul de timp curent: T = floor(timp Unix / perioadă), cu o perioadă de 30 de secunde implicit. Telefonul tău și serverul calculează același cod independent, pentru că împart secretul și (aproximativ) același ceas. De aceea sunt afișate Codul anterior și Codul următor: serverele acceptă de obicei un pas înainte sau înapoi, ca să tolereze devierea ceasului.

HMAC-ul rulează cu API-ul Web Crypto al browserului tău, folosind SHA-1, SHA-256 sau SHA-512. SHA-1 cu 6 cifre și 30 de secunde este ce folosește aproape orice serviciu; SHA-256 și SHA-512 sunt permise de RFC 6238, dar unele aplicații le ignoră, deci schimbă valorile implicite doar dacă serviciul o cere.

URI-ul otpauth:// și codul QR

Aplicațiile de autentificare se configurează cu un URI precum otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, afișat de obicei ca cod QR. Instrumentul citește astfel de URI-uri (inclusiv etichete codificate procentual, precum ACME%20Co) și construiește altele noi. Codul QR este desenat local din URI-ul afișat sub URI otpauth://.

Un secret aleatoriu nou are 20 de octeți (160 de biți), lungimea recomandată de RFC 4226, luată din crypto.getRandomValues.

Sfaturi de securitate

  • Secretul este chiar al doilea factor: oricine îl are îți poate produce codurile. Nu lipi secretele conturilor importante pe calculatoare partajate și nu trimite niciodată capturi de ecran ale codului QR.
  • Totul este calculat local; nimic nu este trimis prin rețea. Închide fila când ai terminat.
  • Păstrează codurile de rezervă de la serviciu: un secret pierdut nu poate fi recuperat.

Întrebări frecvente

De ce nu se potrivește codul meu cu cel din aplicație?

Verifică mai întâi ceasul dispozitivului: codurile TOTP se schimbă la fiecare perioadă, deci un ceas care diferă cu mai mult de aproximativ 30 de secunde dă coduri diferite. Apoi verifică dacă algoritmul, cifrele și perioada corespund cu ce a folosit serviciul.

Este instrumentul compatibil cu Google Authenticator și aplicații similare?

Da. Urmează RFC 6238 și formatul URI otpauth folosit de acele aplicații. Scanează codul QR sau scrie secretul Base32 în aplicație, iar amândouă ar trebui să arate același Codul curent.

Care este diferența dintre TOTP și HOTP?

TOTP avansează odată cu timpul, deci un cod expiră după perioadă. HOTP avansează cu un contor care crește de fiecare dată când un cod este folosit, deci un cod rămâne valabil până este folosit sau înlocuit.

Pot folosi acest instrument ca autentificator zilnic?

Este făcut pentru testare, dezvoltare și recuperare. O aplicație de telefon sau o cheie hardware este mai sigură pentru uz zilnic, deoarece secretul nu trebuie lipit de fiecare dată într-o pagină web.

Au fost calculele verificate față de standarde?

Da. Instrumentul este testat cu valorile HOTP din RFC 4226, Anexa D, și cu valorile TOTP din RFC 6238, Anexa B, pentru SHA-1, SHA-256 și SHA-512.