Utilia

Generátor kódov TOTP a HOTP

Generuj kódy 2FA TOTP a HOTP z tajomstva Base32 alebo URI otpauth:// s SHA-1, SHA-256 či SHA-512, živým odpočtom a QR kódom pre aplikácie 2FA.

Tajomstvo 2FA je rovnako citlivé ako heslo. Všetko tu beží lokálne v tvojom prehliadači: tajomstvo, kódy ani QR kód sa nikam neodosielajú.

Nastaviť aplikáciu na overovanie

Pridaj vydavateľa a názov účtu, potom naskenuj QR kód alebo skopíruj odkaz otpauth:// do svojej aplikácie na overovanie.

Ako vygenerovať kódy TOTP

  1. Vlož tajomstvo Base32 (napríklad JBSWY3DPEHPK3PXP) alebo úplný odkaz otpauth:// do poľa Tajomstvo (Base32) alebo URI otpauth://. Medzery, pomlčky, malé písmená aj chýbajúce zarovnanie = sa prijímajú.
  2. Kódy sa zobrazia počas písania alebo po kliknutí na Zobraziť kódy. Vložené URI ti samo vyplní polia Typ, Algoritmus, Počet číslic, Perióda (sekundy), Vydavateľ a Účet.
  3. Aktuálny kód nájdeš v strede, s Predchádzajúcim kódom a Nasledujúcim kódom po stranách. Lišta pod nimi odpočítava sekundy do zmeny kódu a Kopírovať kód ho skopíruje bez medzery.
  4. Pri kódoch podľa počítadla vyber HOTP (podľa počítadla), nastav Počítadlo a tlačidlom Ďalšie počítadlo sa posuň dopredu.
  5. Nové tajomstvo 2FA vytvoríš kliknutím na Nové náhodné tajomstvo. Vyplň Vydavateľa a Účet a potom naskenuj QR kód v aplikácii na overovanie, použi Kopírovať URI alebo Stiahnuť QR kód (PNG).

Funguje v tvojom prehliadači. Nič, čo zadáš, sa neodosiela na server.

Ako fungujú TOTP a HOTP

HOTP (RFC 4226) vypočíta HMAC 8-bajtového počítadla so zdieľaným tajomstvom a potom použije dynamické skrátenie: posledné štyri bity HMAC vyberú posun, od neho sa prečítajú štyri bajty, najvyšší bit sa vynuluje a číslo sa zredukuje modulo 10^počet číslic. Výsledkom je 6- až 8-miestny kód.

TOTP (RFC 6238) je HOTP, kde počítadlom je aktuálny časový krok: T = floor(čas Unix / perióda), pričom predvolená perióda je 30 sekúnd. Tvoj telefón a server vypočítajú rovnaký kód nezávisle, pretože zdieľajú tajomstvo a (približne) rovnaké hodiny. Preto sa zobrazuje Predchádzajúci kód a Nasledujúci kód: servery zvyčajne prijímajú jeden krok pred alebo po, aby tolerovali nepresnosť hodín.

HMAC beží cez rozhranie Web Crypto prehliadača so SHA-1, SHA-256 alebo SHA-512. SHA-1 so 6 číslicami a 30 sekundami používa takmer každá služba; SHA-256 a SHA-512 RFC 6238 povoľuje, no niektoré aplikácie ich ignorujú, preto predvolené hodnoty meň, len ak to služba vyžaduje.

URI otpauth:// a QR kód

Aplikácie na overovanie sa nastavujú pomocou URI, napríklad otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, ktoré sa zvyčajne zobrazuje ako QR kód. Tento nástroj také URI číta (aj s percentovo kódovanými menovkami ako ACME%20Co) a vytvára nové. QR kód sa kreslí lokálne z URI zobrazeného v poli URI otpauth://.

Nové náhodné tajomstvo má 20 bajtov (160 bitov), čo je dĺžka odporúčaná v RFC 4226, a pochádza z crypto.getRandomValues.

Bezpečnostné tipy

  • Tajomstvo je samotný druhý faktor: kto ho má, môže vytvárať tvoje kódy. Tajomstvá dôležitých účtov nevkladaj na zdieľaných počítačoch a nikdy nezdieľaj snímky obrazovky s QR kódom.
  • Všetko sa počíta lokálne; nič sa neposiela po sieti. Keď skončíš, zatvor kartu.
  • Uchovaj si záložné kódy od služby: stratené tajomstvo sa nedá obnoviť.

Často kladené otázky

Prečo sa môj kód nezhoduje s kódom v aplikácii?

Najprv skontroluj hodiny zariadenia: kódy TOTP sa menia každú periódu, takže hodiny, ktoré idú o viac než približne 30 sekúnd inak, dávajú iné kódy. Potom skontroluj, či algoritmus, počet číslic a perióda zodpovedajú tomu, čo použila služba.

Je tento nástroj kompatibilný s Google Authenticator a podobnými aplikáciami?

Áno. Sleduje RFC 6238 a formát URI otpauth, ktorý tieto aplikácie používajú. Naskenuj QR kód alebo napíš tajomstvo Base32 v aplikácii a obe by mali ukazovať rovnaký Aktuálny kód.

Aký je rozdiel medzi TOTP a HOTP?

TOTP sa posúva s časom, takže kód po perióde expiruje. HOTP sa posúva s počítadlom, ktoré sa zvýši pri každom použití kódu, takže kód zostáva platný, kým sa nepoužije alebo nenahradí.

Môžem tento nástroj používať ako svoju bežnú autentifikačnú aplikáciu?

Je určený na testovanie, vývoj a obnovu. Pre každodenné používanie je bezpečnejšia aplikácia v telefóne alebo hardvérový kľúč, pretože tajomstvo sa nemusí zakaždým vkladať do webovej stránky.

Boli výpočty overené voči štandardom?

Áno. Nástroj je testovaný hodnotami HOTP z RFC 4226, príloha D, a hodnotami TOTP z RFC 6238, príloha B, pre SHA-1, SHA-256 a SHA-512.