Overovač JWT
Overte, či je webový token JSON pravý a stále platný. Vložte token spolu s tajným kľúčom HMAC, verejným kľúčom PEM, certifikátom, kľúčom JWK alebo celým JWKS. Overovač skontroluje podpis pomocou knižnice jose, porovná exp a nbf s aktuálnym časom a prípadnou toleranciou odchýlky hodín a zobrazí jasný výsledok vedľa dekódovanej hlavičky a nárokov. Tokeny s alg none sa odmietajú.
Často kladené otázky
Čo overovač kontroluje?
Skontroluje podpis pomocou zadaného kľúča a potom porovná nároky exp a nbf s aktuálnym časom. Výsledok je platný iba vtedy, keď sa podpis zhoduje a ani jedna časová kontrola zlyhá. Nároky ako iss, aud alebo sub sa zobrazia v obsahu, ale neporovnávajú sa s očakávanými hodnotami.
Ktoré kľúče môžem vložiť?
Pri algoritmoch HS256, HS384 a HS512 vložte zdieľané tajomstvo ako text alebo ako oct JWK. Pri tokenoch RSA, EC a EdDSA vložte verejný kľúč PEM (SPKI alebo PKCS #1), certifikát X.509, verejný alebo súkromný JWK, JWKS s najviac 50 kľúčmi alebo súkromný kľúč PEM, z ktorého sa použije iba verejná časť.
Ako sa z JWKS vyberie správny kľúč?
Ak hlavička tokenu obsahuje kid, použije sa kľúč s rovnakým kid v množine. Ak sa žiadny nezhoduje, chyba uvedie kid. Ak kid chýba, množina musí obsahovať presne jeden kľúč. Takto vyberá kľúče z dokumentu jwks_uri väčšina serverov.
Na čo slúži možnosť algoritmu?
Pri možnosti Use the token's alg sa algoritmus prevezme z hlavičky tokenu, kľúč mu však stále musí zodpovedať, takže verejný kľúč RSA nikdy nemožno použiť ako tajomstvo HMAC. Výberom konkrétneho algoritmu zároveň vyžadujete, aby ho token používal; takto by mal server nastaviť očakávaný algoritmus. Token s iným alg sa potom odmietne a zobrazia sa oba názvy.
Prečo sa odmieta token s alg none?
Token s alg none nemá podpis, takže nie je čo overovať a mohol ho vytvoriť ktokoľvek. Prijímanie takýchto tokenov je známa zraniteľnosť v knižniciach JWT. Overovač ho nahlási ako chybu, nie ako platný výsledok.
Ako fungujú exp, nbf a tolerancia hodín?
Token sa považuje za expirovaný, keď je exp menšie alebo rovné aktuálnemu času, a za zatiaľ neplatný, keď je nbf neskoršie než aktuálny čas. Tolerancia hodín v rozsahu od 0 do 3600 sekúnd rozširuje obe kontroly, aby zohľadnila rozdiely medzi hodinami serverov. Ak sú prítomné nároky, ktoré nemajú číselnú hodnotu, token je neplatný.
Čo znamená neplatný podpis?
Token nebol podpísaný zadaným kľúčom alebo sa po podpísaní zmenila jeho hlavička či obsah. Skontrolujte, či ste vložili zodpovedajúci verejný kľúč alebo tajomstvo vrátane všetkých presných znakov a či ste skopírovali celý token. Dekódovaná hlavička a obsah sa stále zobrazujú, takže ich môžete porovnať.
Ktoré algoritmy sú podporované?
HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512 a EdDSA s kľúčmi Ed25519. Kľúče RSA musia mať aspoň 2048 bitov. Šifrované tokeny (JWE) sa nedekódujú.
Ukladá sa token alebo kľúč?
Nie. Token a kľúč sa používajú iba pri tomto overovaní v pamäti a nikdy sa nezaznamenávajú ani neukladajú. Verejný kľúč možno bezpečne zdieľať, s tajomstvami HMAC však zaobchádzajte opatrne a každé tajomstvo, o ktorom si myslíte, že uniklo, vymeňte.
Aká môže byť maximálna veľkosť tokenu a kľúča?
Token môže mať až 65,536 znakov a pole kľúča až 262,144 znakov, čo stačí aj pre veľké dokumenty JWKS. Token musí mať tri časti base64url oddelené bodkami, hlavičku JSON s členom alg a objekt JSON ako svoj obsah.