Utilia

Generátor kódů TOTP a HOTP

Generuj kódy 2FA TOTP a HOTP z tajemství v Base32 nebo z URI otpauth:// s SHA-1, SHA-256 či SHA-512, živým odpočtem a QR kódem pro aplikace 2FA.

Tajemství 2FA je stejně citlivé jako heslo. Všechno zde běží lokálně ve tvém prohlížeči: tajemství, kódy ani QR kód se nikam neposílají.

Nastavit aplikaci pro ověřování

Přidej vydavatele a název účtu, pak naskenuj QR kód nebo zkopíruj odkaz otpauth:// do své ověřovací aplikace.

Jak vygenerovat kódy TOTP

  1. Vlož tajemství v Base32 (například JBSWY3DPEHPK3PXP) nebo celý odkaz otpauth:// do pole Tajemství (Base32) nebo URI otpauth://. Přijímají se mezery, spojovníky, malá písmena i chybějící doplnění =.
  2. Kódy se zobrazí během psaní nebo po kliknutí na Zobrazit kódy. Vložené URI za tebe vyplní pole Typ, Algoritmus, Počet číslic, Perioda (sekundy), Vydavatel a Účet.
  3. Aktuální kód najdeš uprostřed, Předchozí kód a Další kód po jeho stranách. Lišta pod nimi odpočítává sekundy do změny kódu a Kopírovat kód ho zkopíruje bez mezery.
  4. Pro kódy podle čítače zvol HOTP (podle čítače), nastav Čítač a tlačítkem Další čítač pokračuj dál.
  5. Nové tajemství 2FA vytvoříš tlačítkem Nové náhodné tajemství. Vyplň Vydavatele a Účet, pak naskenuj QR kód ověřovací aplikací, použij Kopírovat URI nebo Stáhnout QR kód (PNG).

Jak TOTP a HOTP fungují

HOTP (RFC 4226) vypočítá HMAC 8bajtového čítače se sdíleným tajemstvím a poté použije dynamické zkrácení: poslední čtyři bity HMAC určí posun, od něj se přečtou čtyři bajty, nejvyšší bit se vynuluje a číslo se zredukuje modulo 10^počet číslic. Výsledkem je 6 až 8místný kód.

TOTP (RFC 6238) je HOTP, kde čítač je aktuální časový krok: T = floor(čas Unix / perioda), s výchozí periodou 30 sekund. Tvůj telefon a server vypočítají stejný kód nezávisle, protože sdílejí tajemství a (zhruba) stejné hodiny. Proto se zobrazují Předchozí kód a Další kód: servery obvykle přijímají jeden krok před nebo po, aby tolerovaly odchylku hodin.

HMAC běží přes Web Crypto API tvého prohlížeče s algoritmem SHA-1, SHA-256 nebo SHA-512. SHA-1 se 6 číslicemi a 30 sekundami používá téměř každá služba; SHA-256 a SHA-512 RFC 6238 povoluje, ale některé aplikace je ignorují, takže výchozí hodnoty měň, jen když to služba vyžaduje.

URI otpauth:// a QR kód

Ověřovací aplikace se nastavují pomocí URI jako otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, obvykle zobrazeného jako QR kód. Tento nástroj takové URI čte (včetně popisků kódovaných procenty, jako ACME%20Co) a vytváří nová. QR kód se kreslí lokálně z URI zobrazeného pod nadpisem URI otpauth://.

Nové náhodné tajemství má 20 bajtů (160 bitů), tedy délku doporučenou v RFC 4226, a pochází z crypto.getRandomValues.

Bezpečnostní tipy

  • Tajemství je samotný druhý faktor: kdo ho má, může vytvářet tvoje kódy. Nevkládej tajemství důležitých účtů na sdílených počítačích a nikdy nesdílej snímky obrazovky s QR kódem.
  • Všechno se počítá lokálně; po síti se nic neposílá. Až skončíš, zavři kartu.
  • Uschovej si záložní kódy od služby: ztracené tajemství nelze obnovit.

Časté dotazy

Proč se můj kód neshoduje s kódem v aplikaci?

Nejdřív zkontroluj hodiny svého zařízení: kódy TOTP se mění každou periodu, takže hodiny, které se liší o více než zhruba 30 sekund, dávají jiné kódy. Pak zkontroluj, zda algoritmus, počet číslic a perioda odpovídají tomu, co služba použila.

Je nástroj kompatibilní s Google Authenticator a podobnými aplikacemi?

Ano. Řídí se RFC 6238 a formátem URI otpauth, který tyto aplikace používají. Naskenuj QR kód nebo zadej tajemství v Base32 do aplikace a obě by měly ukazovat stejný Aktuální kód.

V čem se liší TOTP a HOTP?

TOTP postupuje s časem, takže kód po uplynutí periody vyprší. HOTP postupuje s čítačem, který se zvýší při každém použití kódu, takže kód zůstává platný, dokud se nepoužije nebo nenahradí.

Mohu tento nástroj používat jako svůj každodenní autentikátor?

Je určen k testování, vývoji a obnově. Pro každodenní použití je bezpečnější aplikace v telefonu nebo hardwarový klíč, protože tajemství se nemusí pokaždé vkládat do webové stránky.

Byly výpočty ověřeny podle norem?

Ano. Nástroj je otestován hodnotami HOTP z přílohy D RFC 4226 a hodnotami TOTP z přílohy B RFC 6238 pro SHA-1, SHA-256 a SHA-512.