Auth0 Authentication API: jak w banalny sposób można było oszukać JWT? Poznajcie algorytm: nonE

20 kwietnia 2020, 12:11 | W biegu | 0 komentarzy
Tagi: ,
: oglądaj sekurakowe live-streamy o bezpieczeństwie IT.

Jeśli chcecie zapoznać się z bezpieczeństwem JWT – zerknijcie tutaj. W dużym skrócie tokeny JWT stosowane są niekiedy jako pewnego rodzaju klucze API. Nie masz dobrego klucza – nie skorzystasz z API. Proste.

Żeby użytkownik nie mógł podrobić (czy wręcz stworzyć) takiego tokenu – (standardowo) używane są podpisy:

Jeśli nie mamy podpisu, serwer nie przyjmie tokenu. Ale czy na pewno? Kiedyś masa bibliotek umożliwiała (zgodnie ze specyfikacją) podanie w nagłówku algorytmu podpisu none. Wtedy każdy token był przyjmowany jako zaufany :) Obecnie zdecydowana większość bibliotek na to nie pozwala, ale… i tu dochodzimy do sedna sprawy: jedno z API projektu Auth0 blokowało skutecznie algorytm none, ale dajmy na to: nonE był już akceptowany. W skrócie taki nagłówek:

{„typ”:”JWT”,”alg”:”nonE”,”kid”:””}

umożliwiał wysłanie tokenu do API zupełnie bez uwierzytelnienia. Jakie były negatywne skutki wykorzystania API? To już zobaczcie sami na oryginalny research. U siebie pamiętajcie o nieakceptowaniu none, NonE czy innych wariantów tego niezbyt skutecznego algorytmu podpisu JWT ;)

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz