TOTP i HOTP
Jednorazowe hasła oparte na czasie
TOTP i HOTP to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Hasła jednorazowe
Hasło jednorazowe (OTP) to kod ważny podczas jednego logowania lub przez krótki czas.
Generują je dwa standardowe algorytmy: HOTP i TOTP.
Współdzielony sekret
Oba algorytmy rozpoczynają działanie od współdzielonego sekretu, znanego wyłącznie serwerowi i aplikacji uwierzytelniającej.
Zwykle jest on przekazywany w postaci kodu QR podczas konfiguracji i przechowywany po obu stronach.
HOTP: na podstawie licznika
HOTP (HMAC-based OTP) łączy współdzielony sekret z licznikiem za pomocą HMAC, a następnie skraca wynik do krótkiego kodu numerycznego.
Licznik zwiększa się o jeden przy każdym wygenerowanym kodzie.
HOTP = Truncate( HMAC-SHA1(secret, counter) )TOTP: na podstawie czasu
TOTP (Time-based OTP) to HOTP, w którym licznik jest bieżącym czasem podzielonym na stałe przedziały (zwykle 30-sekundowe).
Ponieważ czas stale płynie do przodu, obie strony pozostają zsynchronizowane bez konieczności śledzenia ręcznego licznika.
T = floor( (current_unix_time) / 30 )
TOTP = Truncate( HMAC-SHA1(secret, T) )Okno 30-sekundowe
Kod TOTP zazwyczaj zmienia się co 30 sekund. Tak krótki czas ważności ogranicza okres, w którym skradziony kod może być użyteczny.
Dlatego aplikacje uwierzytelniające wyświetlają pasek odliczania.
Tolerancja rozbieżności zegarów
Zegary urządzeń nieznacznie się rozregulowują. Aby uniknąć odrzucania prawidłowych kodów, serwery akceptują kody z jednego kroku przed bieżącym oknem i po nim.
Zbyt szerokie okno osłabia bezpieczeństwo, dlatego utrzymuje się je na niewielkim poziomie.
Synchronizacja HOTP
W przypadku HOTP może dojść do rozbieżności, jeśli wygenerowany kod nie zostanie użyty (licznik zwiększa się na urządzeniu, ale nie na serwerze).
Serwery dopuszczają niewielkie okno wyprzedzenia w celu ponownej synchronizacji, ale duże rozbieżności wymagają ręcznej synchronizacji.
Identyfikator URI otpauth
Kody QR zawierają identyfikator URI otpauth opisujący sekret i parametry.
otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example&period=30Dlaczego wybrano TOTP
TOTP jest znacznie częściej używany niż HOTP, ponieważ:
- Nie ma licznika, który mógłby się rozregulować i wymagać ponownej synchronizacji.
- Kody naturalnie wygasają.
- Działa w trybie offline — do wygenerowania kodu nie jest potrzebna sieć.
Zalety i ograniczenia
TOTP stanowi duże ulepszenie w porównaniu z samymi hasłami, ale nadal jest podatny na wyłudzenie: fałszywa strona może skłonić użytkownika do wpisania aktualnego kodu.
Klucze sprzętowe, omówione w następnej lekcji, są odporne na takie ataki.
Kopie zapasowe i odzyskiwanie dostępu
Utrata urządzenia, na którym przechowywany jest sekret, może uniemożliwić zalogowanie. Dobre praktyki:
- Należy zapisać kody odzyskiwania wydane podczas konfiguracji.
- Należy bezpiecznie wykonać kopię sekretu lub zarejestrować drugą aplikację uwierzytelniającą.
Szybkie sprawdzenie
Jaka jest kluczowa różnica między HOTP a TOTP?
Podsumowanie
Dowiedział się Pan / Dowiedziała się Pani, jak działają algorytmy OTP.
- Oba opierają się na współdzielonym sekrecie i HMAC.
- HOTP używa licznika, a TOTP — czasu.
- Kody TOTP wygasają co około 30 sekund, ale nadal są podatne na phishing.
- Należy przechowywać kody odzyskiwania.
Następnie omówimy zatwierdzenia push i klucze sprzętowe.
Ucz się Cyber Security Academy dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 76
- Lekcje
- 303
Często zadawane pytania
Czy lekcja „TOTP i HOTP” jest bezpłatna?
Tak — pełny tekst „TOTP i HOTP” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „TOTP i HOTP”?
Jednorazowe hasła oparte na czasie Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?
Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „TOTP i HOTP”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?
Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.