Jestem autorem biblioteki węzłów, która obsługuje uwierzytelnianie na dość głębokiej ścieżce ekspresowej , więc wrzucę tu trochę informacji.
Po pierwsze, JWT zazwyczaj NIE są szyfrowane. Chociaż istnieje sposób na szyfrowanie JWT (patrz: JWE ), nie jest to bardzo powszechne w praktyce z wielu powodów.
Następnie każda forma uwierzytelnienia (przy użyciu JWT lub nie) podlega atakom MitM (man-in-the-middle). Ataki te zdarzają się, gdy osoba atakująca może ZOBACZYĆ RUCH SIECI podczas wysyłania żądań przez Internet. Oto, co widzi Twój dostawca usług internetowych, NSA itp.
Właśnie temu SSL zapobiega: poprzez szyfrowanie ruchu sieciowego w twoim komputerze -> jakiś serwer podczas uwierzytelniania, osoba trzecia, która monitoruje twój ruch sieciowy NIE może zobaczyć twoich tokenów, haseł itp., Chyba że w jakiś sposób jest w stanie aby uzyskać kopię prywatnego klucza SSL serwera (mało prawdopodobne). To jest powód, dla którego SSL jest OBOWIĄZKOWY dla wszystkich form uwierzytelnienia.
Powiedzmy jednak, że ktoś może wykorzystać Twój SSL i może wyświetlić Twój token: odpowiedź na twoje pytanie brzmi: TAK , osoba atakująca będzie mogła użyć tego tokena do podszywania się pod Ciebie i wysyłania żądań do Twojego serwera.
Teraz tu przychodzą protokoły.
JWT są tylko jednym standardem dla tokena uwierzytelniającego. Mogą być używane do prawie wszystkiego. Powodem, dla którego JWT są fajne, jest to, że możesz osadzić w nich dodatkowe informacje i sprawdzić, czy nikt się z nimi nie pomylił (podpisywanie).
JEDNASTY JWT nie mają jednak nic wspólnego z „bezpieczeństwem”. Pod każdym względem JWT są mniej więcej tym samym kluczem API: po prostu losowymi ciągami, których używasz do uwierzytelnienia na jakimś serwerze.
Co sprawia, że twoje pytanie jest bardziej interesujące, to używany protokół (najprawdopodobniej OAuth2).
OAuth2 działa w ten sposób, że został zaprojektowany, aby dać klientom TYMCZASOWE tokeny (takie jak JWT!) Do uwierzytelnienia TYLKO KRÓTKIM OKRESIE!
Chodzi o to, że jeśli twój token zostanie skradziony, atakujący może go użyć tylko przez krótki czas.
Dzięki OAuth2 musisz co jakiś czas ponownie uwierzytelniać się na serwerze, podając swoją nazwę użytkownika / hasło LUB poświadczenia API, a następnie odzyskując token w zamian.
Ponieważ ten proces zdarza się od czasu do czasu, twoje tokeny często się zmieniają, co utrudnia atakującym ciągłe podszywanie się pod ciebie bez kłopotów.
Mam nadzieję, że to pomaga ^ ^