Co to jest OTP?
Hasło jednorazowe (OTP) oferuje sprytny i elegancki sposób uwierzytelnienia użytkownika. Uwierzytelnianie odbywa się poprzez weryfikację, czy użytkownik jest w posiadaniu współdzielonego sekretu, bez konieczności podawania przez użytkownika samego sekretu. W celu uwierzytelnienia użytkownik uzyskuje jednorazowe hasło ze swojej kopii współdzielonego hasła. Następnie przekazuje je do serwera uwierzytelniającego wraz ze swoją nazwą użytkownika. Serwer używa nazwy użytkownika do wyszukiwania współdzielonego hasła powiązanego z kontem tego użytkownika i niezależnie uzyskuje jednorazowe hasło z jego kopii współdzielonego hasła. Jeśli jednorazowe hasło wygenerowane przez użytkownika jest zgodne z wygenerowanym przez serwer, to serwer wie, że użytkownik jest w posiadaniu wspólnego hasła i użytkownik jest pomyślnie uwierzytelniony.
Aby wygenerować jednorazowe hasło ze współdzielonego sekretu – zwanego również ziarnem – używana jest specjalna jednokierunkowa funkcja. Zapewnia ona, że hasło jednorazowe nie ujawni niczego na temat współdzielonego sekretu, z którego pochodzi. Jeśli więc atakujący przechwyci hasło jednorazowe, nie może się z niego dowiedzieć niczego o wspólnym sekrecie użytym do jego utworzenia.
Ponadto, jak sama nazwa wskazuje, hasła jednorazowe są dobre do jednorazowego użytku. Gdy są raz użyte do uwierzytelnienia użytkownika, nie można ich ponownie użyć. Następne uwierzytelnienie będzie wymagało wyprowadzenia nowego, innego OTP.
Różnice między HOTP a TOTP
OTP można zaimplementować przy użyciu różnych algorytmów i wdrożyć na różnym sprzęcie komputerowym. Dwa wiodące algorytmy to HOTP i TOTP. Oba oferują porównywalne bezpieczeństwo.
HOTP
Algorytm hasła jednorazowego oparty na HMAC (HOTP) to algorytm hasła jednorazowego. Używa on kodów uwierzytelniania wiadomości opartych na wartości skrótu (HMAC). HOTP to ogólnodostępny otwarty standard. Został opracowany przez Initiative for Open Authentication (OATH) i opublikowany jako informacyjny IETF RFC 4226 w grudniu 2005 roku. OATH opracowała i opublikowała algorytm, aby przezwyciężyć wpływ RSA Security na rynek uwierzytelniania OTP dzięki opatentowanej technologii TOTP.
Krótko mówiąc, aby wygenerować HOTP, tajny klucz i zmieniający się licznik (liczący liczbę wygenerowanych OTP) są wprowadzane jako dane wejściowe do jednokierunkowej kryptograficznej funkcji skrótu (np. SHA-256), która wyprowadza kod skrótu, który jest OTP. Zarówno użytkownik, jak i serwer zwiększają swój licznik, aby zachować synchronizację. Ponieważ kryptograficzne funkcje skrótu są funkcjami jednokierunkowymi, nie ma praktycznego sposobu na wycofanie tajnego klucza z kodu skrótu.
TOTP
Algorytm hasła jednorazowego opartego na czasie (TOTP) generuje hasło jednorazowe (OTP), przyjmując jako drugie wejście bieżący czas zamiast bieżącego licznika. Tajny klucz i aktualny czas są podawane jako dane wejściowe do kryptograficznej funkcji skrótu, która wyprowadza OTP. Pierwszy system uwierzytelniania TOTP został opracowany i wprowadzony na rynek przez RSA Security. TOTP został opatentowany przez RSA Security, więc była to jedyna firmą, która go oferowała. Później, Initiative for Open Authentication (OATH) opracowała własny wariant TOTP, który udostępniła bezpłatnie.
Ponieważ TOTP wykorzystuje czas zegarowy jako jedno z jego danych wejściowych do algorytmu generowania OTP, różnice między czasem generowania OTP przez użytkownika a czasem, w którym serwer niezależnie generuje OTP, mogą powodować problemy z synchronizacją. Dlatego, aby zweryfikować TOTP, serwer musi przetestować zakres TOTP wygenerowany przez zdefiniowane okno czasu zegara (np. 30 sekund). Jeśli znajdzie dopasowanie w tym zakresie TOTP, użytkownik zostanie pomyślnie uwierzytelniony.
Wdrożenie OTP
OTP można wdrożyć na dedykowanym tokenie sprzętowym lub na urządzeniu komputerowym ogólnego przeznaczenia, takim jak telefon komórkowy lub laptop. Wdrożenie na urządzeniach ogólnego przeznaczenia wymaga szczególnej ostrożności podczas przechowywania i używania tajnego klucza. Szczegóły implementacji mają znaczenie, ponieważ miejsce przechowywania tajnego klucza i sposób jego ochrony podczas użytkowania może znacząco wpłynąć na bezpieczeństwo i integralność rozwiązania do uwierzytelniania. Innym krytycznym zagadnieniem projektowym przy wdrażaniu na urządzeniach komputerowych ogólnego przeznaczenia jest wstępna rejestracja/rejestracja i protokoły odzyskiwania utraconych tokenów.
Podczas wdrażania OTP na dedykowanym urządzeniu z tokenem sprzętowym przechowywanie tajnych kluczy musi zapewniać, że nie będzie łatwo wyodrębnić je z urządzenia, jeśli wpadnie ono w niepowołane ręce. Należy również zabezpieczyć repozytorium kluczy tajnych w fabryce produkującej tokeny. W 2011 r. w firmie RSA Security miał miejsce poważny incydent bezpieczeństwa. Doprowadzono do ujawnienia tajnych kluczy, które standardowo trafiają do tokenów TOTP.
Na serwerze uwierzytelniania OTP tajne klucze muszą być dobrze chronione, gdy są przechowywane i używane. Często sprzętowy moduł bezpieczeństwa (HSM) – dedykowany, wysoce zabezpieczony i często certyfikowany serwer – jest używany do przechowywania wrażliwych tajnych kluczy i wykonywania operacji generowania OTP. HSM są również powszechnie stosowane w produkcji tokenów OTP.
Wady OTP
Technologia OTP jest ogólnie nielubiana przez użytkowników. Wymaga od nich noszenia przy sobie fizycznego tokena i wykonania dodatkowej czynności podczas logowania. A jeśli token zostanie utracony, opcje awaryjne mogą być wymagające dla użytkowników.
Dedykowane tokeny sprzętowe są również uważane za drogie z punktu widzenia całkowitego kosztu posiadania (TCO). Ich zakup może być kosztowny i wymagać kosztownej logistyki.
Po wdrożeniu na urządzeniu mobilnym tokeny OTP są znacznie tańsze w obsłudze. Mogą być wdrażane bezprzewodowo i nie wymagają dedykowanego sprzętu.
Technologia uwierzytelniania OTP jest zwykle używana razem z hasłami. Wzmacnia uwierzytelnianie oparte na hasłach (coś, co użytkownik wie) z drugim czynnikiem uwierzytelniania (coś, co użytkownik posiada). Używanie OTP bez haseł jest ryzykowne z punktu widzenia bezpieczeństwa, ponieważ jeśli token OTP wpadnie w ręce atakującego, nic nie stoi na przeszkodzie do nieautoryzowanego dostępu – atakujący ma wszystkie potrzebne mu dane uwierzytelniające.
Uwierzytelnianie za pomocą haseł jednorazowych generalnie staje się coraz mniej popularne i jest zastępowane prostszymi i tańszymi w użyciu rozwiązaniami uwierzytelniania biometrycznego i bezhasłowymi, szeroko dostępnymi na urządzeniach mobilnych.