Jak zwiększyć bezpieczeństwo tokenów JWT JSON Web Token?

JSON Web Token

Tokeny JWT ostatnimi czasy stały się bardzo popularną metodą uwierzytelniania w aplikacjach webowych. Choć jest to jeden z najbezpieczniejszych sposobów chronienia zasobów, a alternatyw na rynku brak – należy pamiętać, że każda róża ma kolce i także tutaj czyha wiele potencjalnych zagrożeń. Wynikają one głównie z błędów popełnianych przy implementacji. Aby się przed nimi ustrzec, warto trzymać się poniższych zasad:

  1. Upewnij się, że używasz odpowiednio złożonych kluczy szyfrujących o długości co najmniej 2048 bitów.
  2. Stwórz procedurę na wypadek wycieku klucza szyfrującego.
  3. Klucze powinny być przechowywane w odpowiednio bezpieczny sposób (np. nie powinny znajdować się w kodzie źródłowym).
  4. Przez serwer powinien być wymagany konkretny sposób podpisu – tak by nie była możliwa jego zmiana po stronie klienckiej.
  5. Zweryfikuj czy Twoja implementacja nie dopuszcza algorytmu podpisu „none”.
  6. Zweryfikuj czy Twoja implementacja na pewno sprawdza podpis (nie akceptuje pustego podpisu i rozróżniasz funkcje „verify()” i „decode()” ).
  7. Zweryfikuj czy tryb „debug” jest wyłączony i nie da się go wymusić po stronie klienckiej.
  8. Nie przesyłaj tokenów JWT w URL-u.
  9. Zweryfikuj czy w tokenie JWT nie ujawniasz poufnych informacji.
  10. Sprawdź, czy chronisz się przed atakiem typu „replay”.
  11. Zweryfikuj czy żywotność tokena jest odpowiednio krótka i czy rzeczywiście jest to poprawnie sprawdzane.
  12. Przemyśl czy nie potrzebujesz funkcji unieważniania pojedynczych tokenów.
Tagi , , , , , , , , .Dodaj do zakładek Link.

Podziel się swoją opinią na temat artykułu