Czym jest uwierzytelnianie oparte na tokenie?
- Słownik IAM
- Czym jest uwierzytelnianie oparte na tokenie?
Uwierzytelnianie oparte na tokenach to protokół bezpieczeństwa, który weryfikuje tożsamość użytkownika za pomocą zaszyfrowanych tokenów. W przypadku uwierzytelniania opartego na tokenach wymagane jest potwierdzenie tożsamości użytkowników za pomocą ważnego tokena w celu uzyskania dostępu do serwerów, aplikacji, stron internetowych lub interfejsu programowania aplikacji (API). Uwierzytelnianie oparte na tokenach to popularny protokół uwierzytelniania dwuskładnikowego (2FA) lub uwierzytelniania wieloskładnikowego (MFA), który dodaje kolejną warstwę bezpieczeństwa do tradycyjnej nazwy użytkownika i hasła.
Co to jest token?
Token to klucz uwierzytelniający użytkowników podczas procesu logowania. Tokeny mogą mieć postać cyfrową lub fizyczną w formie karty inteligentnej albo klucza USB. Tokeny internetowe, cyfrowe i przechowywane na urządzeniu użytkownika, są najczęściej wybierane przez organizacje ze względu na wygodę użycia oraz elastyczność. Tokeny internetowe eliminują konieczność noszenia fizycznych tokenów przez użytkowników oraz umożliwiają łatwą integrację z różnymi systemami oprogramowania, zapewniając bezproblemowe uwierzytelnianie.
Na czym polega uwierzytelnianie oparte na tokenach
Przyjrzymy się czterem podstawowym etapom uwierzytelniania opartego na tokenach.
Początkowe żądanie: Użytkownik żąda dostępu do określonej aplikacji poprzez podanie nazwy użytkownika i hasła.
Weryfikacja użytkownika: Dane uwierzytelniające logowania użytkownika są wysyłane do systemu uwierzytelniania w celu sprawdzenia, czy są prawidłowe. Po potwierdzeniu następuje sprawdzenie określonych uprawnień użytkownika do systemu.
Weryfikacja tokena: System generuje i wydaje użytkownikowi token internetowy, który może być używany przez ograniczony czas.
Przechowywanie tokena: Token jest przechowywany na urządzeniu użytkownika do momentu wylogowania użytkownika, zakończenia sesji lub wygaśnięcia tokena.
Rodzaje tokenów uwierzytelniania
Tokeny cyfrowe mają różne rodzaje, a każdy z nich odgrywa kluczową rolę w zapewnieniu bezpiecznego i prawidłowego procesu uwierzytelniania. Przyjrzyjmy się pięciu popularnym rodzajom tokenów cyfrowych oraz ich roli w uwierzytelnianiu.
Token internetowy JSON (JWT)
Token internetowy JSON to otwarty standard (RFC 7519) używany do bezpiecznej wymiany informacji pomiędzy dwoma podmiotami – serwerem i klientem. Token JWT zawiera informacje o tożsamości użytkownika oraz jest podpisany cyfrowo w celu potwierdzenia prawidłowości zawartych danych. Token internetowy JSON składa się z trzech części: nagłówka, ładunku i podpisu cyfrowego.
Nagłówek: Nagłówek zawiera informacje o JWT. Informuje o rodzaju tokena i algorytmie użytym do podpisania tokena.
Ładunek: Ładunek zawiera oświadczenia dotyczące użytkownika. Oświadczenia to informacje identyfikujące określony podmiot, zazwyczaj użytkownika. Ładunki mogą zawierać dodatkowe informacje, takie jak termin wygaśnięcia tokena i uprawnienia użytkownika.
Podpis cyfrowy: Podpis cyfrowy to klucz kryptograficzny, który weryfikuje nagłówek i ładunek w celu zagwarantowania, że wiadomość nie została zmieniona podczas transmisji oraz potwierdza tożsamość użytkownika.
Tokeny dostępu
Tokeny dostępu to najpopularniejszy rodzaj tokenów internetowych JSON. Tokeny te są przeznaczone do autoryzacji dostępu użytkownika do określonej usługi. Po udanym zalogowaniu użytkownik otrzymuje token dostępu z datą wygaśnięcia. Token dostępu zapewnia użytkownikowi dostęp do przypisanych zasobów i usług przez ograniczony czas.
Tokeny identyfikacyjne
W przeciwieństwie do tokenów dostępu tokeny ID nie są zwykle wykorzystywane na potrzeby przyznawania dostępu do zasobów sieciowych i aplikacji. Tokeny identyfikacyjne to tokeny internetowe JSON, które zawierają informacje o użytkowniku, takie jak unikatowy identyfikator, imię i adres e-mail oraz status uwierzytelnienia. Tokeny identyfikacyjne są dostarczane do aplikacji klienta w celu potwierdzenia tożsamości użytkownika.
Tokeny odświeżania
Tokeny odświeżania to specjalne rodzaje tokenów internetowych JSON wykorzystywane do uzyskania dodatkowych tokenów dostępu bez konieczności ponownego wprowadzania danych logowania przez użytkownika. Mają na celu wydłużenie okresu ważności tokena dostępu dla użytkownika poprzez jego automatyczne odnawianie.
Tokeny API
Token API to ciąg kodów odpowiadający żądaniu uwierzytelnienia przez użytkownika na potrzeby interfejsu API. Potwierdza tożsamość użytkownika i zapewnia dostęp do punktów końcowych API, umożliwiając autoryzowanym użytkownikom bezpieczną interakcję z zasobami API.
Zalety stosowania uwierzytelniania opartego na tokenach
Oto trzy korzyści wynikające z zastosowania uwierzytelniania opartego na tokenach.
Bezpieczeństwo: Tokeny co do zasady mają krótki okres ważności, co ogranicza ryzyko potencjalnego nieautoryzowanego dostępu. Po zakończeniu sesji użytkownika z aplikacją wydany token wygasa. Ogranicza to czas dostępny dla atakujących na przechwycenie tokena i naruszenie konta.
Elastyczność: Uwierzytelnianie oparte na tokenach może być stosowane na wielu platformach, takich jak aplikacje internetowe, aplikacje mobilne oraz interfejsy API. Zapewnia to łatwe uwierzytelnianie przy jednoczesnym zwiększeniu dostępności dla użytkowników.
Skalowalność: Ponieważ tokeny muszą być przechowywane na urządzeniu użytkownika, nie ma potrzeby utrzymywania sesji użytkownika na serwerze. Umożliwia to wydajne zarządzanie wieloma żądaniami na serwerze oraz generowanie tokenów w razie potrzeby.
Wady stosowania uwierzytelniania opartego na tokenach
Oto trzy główne wady stosowania uwierzytelniania opartego na tokenach.
Ryzyko naruszenia klucza: Powszechnym zagrożeniem związanym z uwierzytelnianiem opartym na tokenach jest możliwość naruszenia kluczy tokenów. Klucze mogą stać się celem cyberataków, takich jak wyłudzanie informacji, złośliwe oprogramowanie, atak siłowy lub atak typu man-in-the-middle (MITM). Większość systemów tokenów internetowych opiera się na jednym kluczu, co naraża na zagrożenie cały system po naruszeniu przez cyberprzestępcę tylko jednego klucza.
Krótki okres ważności: Ze względu na krótki okres ważności tokenów konieczne jest ciągłe zarządzanie. Obejmuje to zapewnienie daty ważności tokenów oraz odnawianie ich danych uwierzytelniających w razie potrzeby.
Rozmiar tokena: Tokeny mogą mieć duże rozmiary, zwłaszcza jeśli zawierają znaczną ilość informacji lub metadanych użytkownika. Ze względu na złożoność i rozmiar tokena może on zwiększyć obciążenie sieciowe w środowiskach o ograniczonej przepustowości połączenia z Internetem.