Losowe hasła złożone z liter, cyfr i znaków specjalnych generowane za pomocą funkcji crypto.getRandomValues.
Generator kodów TOTP/HOTP
Samo narzędzie jest w języku angielskim; na tej stronie znajdziesz wyjaśnienia w Twoim języku.
Użyj Generator kodów TOTP/HOTP
Jak to działa
Generuj hasła jednorazowe oparte na czasie (TOTP) lub na liczniku (HOTP) dla klucza Base32, tak jak robią to aplikacje uwierzytelniające, i sprawdzaj, czy kod jest poprawny. Przydatne do testowania własnej konfiguracji uwierzytelniania dwuskładnikowego (2FA).
Działa całkowicie w przeglądarce: żadne wprowadzone dane nie są przesyłane.
Jak korzystać z Generator kodów TOTP/HOTP
- Wpisz hasło. Wklej klucz tajny w formacie Base32 swojego konta testowego w polu „Klucz tajny (Base32)” lub naciśnij przycisk „Losowy”, aby wygenerować nowy 32-znakowy klucz tajny.
- Dostosuj ustawienia swojej aplikacji. Wybierz typ kodu (TOTP oparty na czasie lub HOTP oparty na liczniku), algorytm oraz liczbę cyfr. Większość aplikacji uwierzytelniających korzysta z algorytmów TOTP i HMAC-SHA-1 oraz 6 cyfr.
- Pokaż kod. W przypadku TOTP naciśnij przycisk „Start TOTP”: kod pojawi się wraz z odliczaniem i jest przeliczany co sekundę. W przypadku HOTP ustaw licznik i naciśnij przycisk „Pokaż kod HOTP”; przycisk „Dalej” powoduje przejście do następnego licznika.
- Sprawdź kod. Wpisz kod z aplikacji lub serwera w polu „Sprawdź kod” i naciśnij przycisk „Sprawdź”. Wynik wskazuje, czy kod jest zgodny oraz dla którego kroku czasowego lub licznika.
- Zatrzymaj się i wyczyść. Po zakończeniu naciśnij przycisk „Stop”; ostatni kod pozostanie na ekranie. Samodzielnie wyczyść pole tajne.
Przykład
Sekret testowy RFC 6238
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ412568Oto opublikowany w RFC 6238 klucz testowy 12345678901234567890 w formacie Base32. Strona pokazuje jego aktualny sześciocyfrowy kod oraz liczbę sekund do pojawienia się następnego – ten sam kod, jaki aplikacja uwierzytelniająca wyświetla dla tego klucza; po przełączeniu na tryb HOTP z licznikiem ustawionym na 0 wyświetla 755224, czyli pierwszą wartość testową zgodną z RFC 4226.
Co jest sprawdzane
| Sygnał | Co to oznacza |
|---|---|
| Kod | HMAC oparty na kroku czasowym (TOTP) lub liczniku (HOTP), skrócony do 6 lub 8 cyfr zgodnie z RFC 4226 i RFC 6238. Jest on zgodny z aplikacją tylko wtedy, gdy typ, algorytm i liczba cyfr są takie same. |
| Odświeżanie w nanosekundach · krok czasowy N | Liczba sekund pozostałych w bieżącym 30-sekundowym przedziale oraz numer kroku, pobrany z zegara urządzenia. Jeśli zegar jest niedokładny, wyświetlany jest poprzedni lub następny kod. |
| Licznik N · naciśnij „Dalej” | W trybie HOTP kod jest przypisany do danego licznika. Każdy kod jest używany tylko raz; serwery oczekują następnie kolejnego licznika. |
| Nie w formacie Base32: ... | Hasło zawiera znaki spoza zakresu A–Z i 2–7, takie jak 0, 1, 8 lub 9. Spacje, łączniki i znak „=” są ignorowane, a małe litery są akceptowane. |
| Sekret ma tylko N bitów | Klucz jest krótszy niż 128 bitów (26 znaków w formacie Base32) wymaganych przez RFC 4226. Kody są nadal wyświetlane, ale taki klucz łatwiej odgadnąć. |
| Prawidłowe: pasuje do ... | Sprawdź, czy w polu znajduje się kod odpowiadający bieżącemu krokowi czasowemu lub licznikowi HOTP. |
| Dotyczy poprzedniego lub następnego kroku | Kod odnosi się do jednego 30-sekundowego przedziału czasowego przed lub po chwili obecnej (zaznaczonego na pomarańczowo). Zazwyczaj występuje niewielka różnica w czasie między tymi dwoma urządzeniami. |
| Brak wyników | Ani sprawdzone kroki czasowe, ani liczniki nie pasują. Sprawdź sekret, zegar, algorytm i liczbę cyfr. |
Więcej przykładów
Klucz testowy RFC 4226, HOTP
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQW przypadku typu kodu HOTP, algorytmu HMAC-SHA-1, 6 cyfr i licznika 0 kod wynosi 755224; polecenie „Next” zwraca wartość 287082 dla licznika 1, co odpowiada opublikowanym wartościom testowym z dokumentu RFC 4226.
Sprawdź kod o jeden licznik dalej
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQW trybie HOTP przy liczniku 0 wpisanie liczby 287082 w polu „Sprawdź kod” powoduje wyświetlenie komunikatu: „Prawidłowy dla licznika 1”, czyli o 1 więcej niż wskazuje licznik.
Nie jest to klucz tajny w formacie Base32
0189BŁĄD z komunikatem „Nie jest to format Base32: »0«, »1«, »8«, »9«, ponieważ w formacie Base32 używa się wyłącznie liter A–Z oraz cyfr 2–7”.
Najczęściej zadawane pytania
Co dokładnie oblicza?
Kody TOTP generowane na podstawie bieżącej godziny w odstępach co 30 sekund (RFC 6238) lub kody HOTP dla ustawionego przez użytkownika licznika (RFC 4226), z wykorzystaniem algorytmów HMAC-SHA-1, SHA-256 lub SHA-512 oraz składające się z 6 lub 8 cyfr; większość aplikacji uwierzytelniających korzysta z algorytmu SHA-1 i 6 cyfr. Aplikacja weryfikująca kod sprawdza aktualny przedział czasowy oraz po jednym przedziale w każdą stronę, albo licznik HOTP i kolejne 9 wartości; kod zawierający znaki spoza zakresu A–Z i 2–7 jest odrzucany wraz z komunikatem.
Czy kod TOTP chroni mnie przed phishingiem?
Nie do końca. Zestawy phishingowe typu „adversary-in-the-middle” przekazują kod do prawdziwej witryny w trakcie wpisywania, więc jest on przechwytywany wraz z hasłem; klucze dostępu i klucze bezpieczeństwa FIDO2 są odporne na to zagrożenie, ponieważ są powiązane z prawdziwą domeną.
Czy ten sekret jest gdzieś przesyłany lub przechowywany?
Nie. Kody są generowane w przeglądarce za pomocą interfejsu API Web Crypto, a klucz tajny nigdy nie jest przesyłany ani zapisywany. Metoda TOTP opiera się na zegarze urządzenia, więc zegar, który się nie zgadza, generuje inne kody.
Jak mogę porównać te kody z dokumentami RFC?
Użyj klucza testowego 12345678901234567890, w formacie Base32: GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. W trybie HOTP licznik 0 daje wartość 755224, a licznik 1 – 287082 (RFC 4226). Norma RFC 6238 podaje wartość 94287082 dla 8 cyfr po upływie 59 sekund od 1 stycznia 1970 r. czasu UTC; tryb TOTP zawsze wykorzystuje aktualny czas.
Jaka jest różnica między TOTP a HOTP?
HOTP (RFC 4226) zlicza użycia: każdy kod jest powiązany z licznikiem, którego wartość zwiększa się o jeden. TOTP (RFC 6238) to HOTP, w którym licznik jest ustawiony na bieżący 30-sekundowy przedział czasowy, więc kod zmienia się wraz z upływem czasu.
Dlaczego moja aplikacja wyświetla inny kod?
Najpierw sprawdź zegary, ponieważ różnica 30 sekund powoduje zmianę kodu. Następnie sprawdź, czy w sekrecie nie ma literówek oraz czy konto korzysta z algorytmów SHA-256, SHA-512, 8 cyfr lub licznika zamiast czasu, i ustaw tutaj te same opcje.
Czy powinienem wkleić tutaj prawdziwy kod do uwierzytelniania dwuskładnikowego?
Należy tego unikać. Hasło pozostaje w przeglądarce, ale każdy, kto je zobaczy lub skopiuje, będzie mógł generować kody, dopóki nie zresetujesz uwierzytelniania dwuskładnikowego na tym koncie. Aby przenieść uwierzytelnianie dwuskładnikowe na nowy telefon, skorzystaj z opcji przeniesienia lub resetowania dostępnej na samym koncie.