Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Auth0 Authentication API: jak w banalny sposób można było oszukać JWT? Poznajcie algorytm: nonE
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:
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