Blog

w poprzednim poście Zix | AppRiver omówił, w jaki sposób osoby odpowiedzialne za atak SolarWinds nadużywały tokenów i certyfikatów w ramach swojego łańcucha infekcji. Złośliwi aktorzy wykorzystywali te same rodzaje aktywów w dodatkowych kampaniach skierowanych do innych podmiotów. Skutkowało to potwierdzonym incydentem bezpieczeństwa certyfikatu u dostawcy zabezpieczeń poczty e-mail.

uznając te złośliwe działania, Zix | AppRiver uznał za konieczne dostarczenie swoim klientom serii artykułów, które omawiają typy metod uwierzytelniania, których to dotyczy, i ich działanie. Zaczniemy od uwierzytelniania opartego na tokenie.

uwierzytelnianie oparte na tokenach: przegląd

uwierzytelnianie oparte na tokenach rozwiązuje niektóre ograniczenia uwierzytelniania opartego na sesjach. W tym drugim przypadku serwer tworzy sesję dla użytkownika po zalogowaniu się. Przechowuje identyfikator sesji w pliku cookie, który towarzyszy wszystkim kolejnym żądaniom, jeśli użytkownik pozostaje zalogowany. Następnie serwer weryfikuje tożsamość użytkownika, porównując plik cookie z danymi sesji zapisanymi w pamięci.

ilustracja uwierzytelniania opartego na sesji. (Źródło: Sherry Hsu)
ilustracja uwierzytelniania opartego na sesji. (Źródło: Sherry Hsu)

problem polega na tym, że uwierzytelnianie oparte na sesji ma pewne wady. Po pierwsze, wymaga, aby serwer przechowywał sesje w swojej pamięci. Istnieje również problem plików cookie działających na wielu urządzeniach różnych mediów (takich jak internet i urządzenia mobilne).

to jest, gdzie uwierzytelnianie oparte na tokenie przychodzi. Ta forma uwierzytelniania obejmuje aplikację dostarczającą klientowi podpisany token po sprawdzeniu zestawu poświadczeń użytkownika. Klient przechowuje ten token i wysyła go z każdym żądaniem, po czym serwer weryfikuje token i wysyła informacje.

ilustracja uwierzytelniania opartego na tokenie przy użyciu Tokena internetowego JSON (JWT). (Źródło: Sherry Hsu)
ilustracja uwierzytelniania opartego na tokenie przy użyciu Tokena internetowego JSON (JWT). (Źródło: Sherry Hsu)

w tym sensie uwierzytelnianie oparte na tokenie różni się od uwierzytelniania opartego na sesji tym, że jest bezstanowe. Nie wymaga przechowywania informacji o użytkowniku na serwerze lub w trakcie sesji. Przechowuje te dane w tokenie po stronie klienta.

korzyści i wyzwania związane z uwierzytelnianiem opartym na tokenach

uwierzytelnianie oparte na tokenach wiąże się z wieloma korzyściami. Chop-Chop zauważa, że tokeny działają również na różnych stronach internetowych i mediach, co stwarza szansę na większą różnorodność użytkowników-zwłaszcza tych korzystających z urządzeń mobilnych. Co więcej, tokeny zastępują poświadczenia użytkownika w procesie przyznawania dostępu do danych; ktoś, kto naruszył token, nie uzyska automatycznie dostępu do poświadczeń konta użytkownika, którego to dotyczy.

biorąc to pod uwagę, uwierzytelnianie oparte na tokenach nie jest pozbawione wyzwań. Devbridge Group zauważa, że niektóre tokeny sesji nie są generowane w bezpieczny sposób, na przykład. Dzięki temu atakujący z wystarczająco dużą próbką identyfikatorów sesji może znaleźć wzór i odgadnąć tokeny dla większej puli użytkowników. Istnieje również problem z wykorzystywaniem przez atakujących niezabezpieczonych magazynów tokenów, wielokrotnych logowań i / lub długich czasów weryfikacji tokenów w celu kradzieży tajemnic uwierzytelniania.

jak bezpiecznie korzystać z uwierzytelniania opartego na tokenach

biorąc pod uwagę zagrożenia omówione powyżej, oto kilka najlepszych praktyk bezpiecznego korzystania z uwierzytelniania opartego na tokenach:

  1. Generuj silne tokeny. W szczególności Devbridge zaleca, aby tokeny posiadały duży zestaw możliwych wartości, zawierały pewien stopień pseudorandomności i składały się z co najmniej 16 bajtów długości.
  2. daj tokenom wygaśnięcie. Ważne jest, aby ustawić warunki dotyczące tego, jak długo token pozostaje ważny, zauważa Auth0. Oczywiście, jeśli użytkownik jest nadal aktywny, token może automatycznie odnowić. Ale jest też mądrość w zezwalaniu token wygasa, gdy użytkownik wyloguje się i kończy token bez względu na to, co po pewnym czasie upłynął.
  3. nie Zezwalaj na wiele logowań. Jak zauważył Devbridge, możliwe jest użycie kluczowych atrybutów, aby zapobiec równoległym uwierzytelnieniom, gdy więcej niż jedna osoba wchodzi w interakcję z tym samym kontem użytkownika jednocześnie.
  4. bezpiecznie przechowuj tokeny. Lokalne magazynowanie nie jest tu dobrym rozwiązaniem. Społeczność programistów zaleca stosowanie polityki plików cookie o nazwie SameSite w celu określenia warunków, na jakich plik cookie może być przekazywany w żądaniu międzynarowym. Ścisła Polityka strony internetowej wraz z wymogiem, że ludzie muszą wersję przeglądarki, która obsługuje tę funkcję, pomoże utrzymać tokeny sesji bezpieczne.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.