Utilia

Generator kodów TOTP (2FA)

Generuj kody 2FA TOTP i HOTP z sekretu Base32 lub URI otpauth://, z SHA-1, SHA-256 lub SHA-512, odliczaniem na żywo i kodem QR dla aplikacji 2FA.

Sekret 2FA jest tak samo wrażliwy jak hasło. Wszystko działa tu lokalnie w twojej przeglądarce: sekret, kody i kod QR nigdy nie są nigdzie wysyłane.

Skonfiguruj aplikację uwierzytelniającą

Dodaj wystawcę i nazwę konta, a potem zeskanuj kod QR lub skopiuj link otpauth:// do aplikacji uwierzytelniającej.

Jak generować kody TOTP

  1. Wklej sekret Base32 (np. JBSWY3DPEHPK3PXP) albo cały link otpauth:// w pole Sekret (Base32) lub URI otpauth://. Spacje, myślniki, małe litery i brak dopełnienia = są akceptowane.
  2. Kody pojawiają się podczas wpisywania albo po kliknięciu Pokaż kody. Wklejony URI sam wypełnia pola Typ, Algorytm, Cyfry, Okres (sekundy), Wystawca i Konto.
  3. Odczytaj Bieżący kod pośrodku, z Poprzedni kod i Następny kod po bokach. Pasek poniżej odlicza sekundy do zmiany kodu, a Kopiuj kod kopiuje go bez spacji.
  4. Dla kodów opartych na liczniku wybierz HOTP (oparty na liczniku), ustaw Licznik i przechodź dalej przyciskiem Następny licznik.
  5. Aby utworzyć nowy sekret 2FA, kliknij Nowy losowy sekret. Wypełnij pola Wystawca i Konto, a potem zeskanuj kod QR aplikacją uwierzytelniającą, użyj Kopiuj URI albo Pobierz kod QR (PNG).

Jak działają TOTP i HOTP

HOTP (RFC 4226) oblicza HMAC 8-bajtowego licznika ze wspólnym sekretem, a następnie stosuje dynamiczne obcinanie: ostatnie cztery bity HMAC wskazują przesunięcie, od którego odczytywane są cztery bajty, najstarszy bit jest zerowany, a liczba jest brana modulo 10^cyfry. Wynikiem jest kod od 6 do 8 cyfr.

TOTP (RFC 6238) to HOTP, w którym licznikiem jest bieżący krok czasu: T = floor(czas Unix / okres), domyślnie z okresem 30 sekund. Twój telefon i serwer obliczają ten sam kod niezależnie, bo mają wspólny sekret i (mniej więcej) ten sam zegar. Dlatego pokazywane są też Poprzedni kod i Następny kod: serwery zwykle akceptują jeden krok wcześniej lub później, aby tolerować rozjechanie się zegarów.

HMAC jest liczony przez Web Crypto API twojej przeglądarki z użyciem SHA-1, SHA-256 lub SHA-512. SHA-1 z 6 cyframi i 30 sekundami to ustawienia niemal każdego serwisu; SHA-256 i SHA-512 są dozwolone przez RFC 6238, ale niektóre aplikacje je ignorują, więc zmieniaj ustawienia domyślne tylko wtedy, gdy serwis tego wymaga.

URI otpauth:// i kod QR

Aplikacje uwierzytelniające konfiguruje się za pomocą URI w rodzaju otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, zwykle pokazywanego jako kod QR. Narzędzie odczytuje takie URI (także etykiety z kodowaniem procentowym, np. ACME%20Co) i tworzy nowe. Kod QR jest rysowany lokalnie z URI widocznego w polu URI otpauth://.

Nowy losowy sekret ma 20 bajtów (160 bitów) – taką długość zaleca RFC 4226 – i pochodzi z crypto.getRandomValues.

Wskazówki bezpieczeństwa

  • Sekret to sam drugi składnik: kto go ma, może generować twoje kody. Nie wklejaj sekretów ważnych kont na współdzielonych komputerach i nigdy nie udostępniaj zrzutów ekranu z kodem QR.
  • Wszystko jest liczone lokalnie; nic nie jest wysyłane przez sieć. Po skończeniu zamknij kartę.
  • Zachowaj kody zapasowe od serwisu: utraconego sekretu nie da się odzyskać.

Najczęściej zadawane pytania

Dlaczego mój kod nie zgadza się z kodem w aplikacji?

Najpierw sprawdź zegar urządzenia: kody TOTP zmieniają się co okres, więc zegar przesunięty o więcej niż ok. 30 sekund daje inne kody. Potem sprawdź, czy algorytm, liczba cyfr i okres odpowiadają ustawieniom serwisu.

Czy narzędzie jest zgodne z Google Authenticator i podobnymi aplikacjami?

Tak. Działa zgodnie z RFC 6238 i formatem URI otpauth, którego używają te aplikacje. Zeskanuj kod QR albo wpisz sekret Base32 w aplikacji – obie strony powinny pokazać ten sam Bieżący kod.

Czym różni się TOTP od HOTP?

TOTP przesuwa się wraz z czasem, więc kod wygasa po upływie okresu. HOTP przesuwa się wraz z licznikiem zwiększanym przy każdym użyciu kodu, więc kod jest ważny, dopóki nie zostanie użyty lub zastąpiony.

Czy mogę używać tego narzędzia jako codziennej aplikacji uwierzytelniającej?

Jest przeznaczone do testów, prac programistycznych i odzyskiwania dostępu. Do codziennego użytku bezpieczniejsza jest aplikacja na telefonie lub klucz sprzętowy, bo sekretu nie trzeba za każdym razem wklejać na stronę internetową.

Czy obliczenia sprawdzono pod kątem standardów?

Tak. Narzędzie jest testowane wartościami HOTP z RFC 4226, dodatek D, oraz wartościami TOTP z RFC 6238, dodatek B, dla SHA-1, SHA-256 i SHA-512.