Utilia

JWT ģenerators un pārbaudītājs

Izveidojiet un pārbaudiet JSON Web Token ar HS256, RS256, PS256, ES256 vai EdDSA. Rediģējiet apgalvojumus, iestatiet exp un iat, pārbaudiet parakstu lokāli.

Atslēgas un žetoni ir noslēpumi. Viss tiek parakstīts un pārbaudīts lokāli ar jūsu pārlūkprogrammas Web Crypto API: nekas netiek augšupielādēts.

Izveidot parakstītu JWT

Laika apgalvojumi:

Pārbaudīt JWT

Kā izveidot parakstītu JWT

  1. Izvēlieties Algoritms: HS256/384/512 (kopīgs noslēpums), RS256/384/512 vai PS256/384/512 (RSA), ES256/384/512 (ECDSA uz P-256, P-384 vai P-521) vai EdDSA (Ed25519, ja jūsu pārlūkprogramma to atbalsta).
  2. Rediģējiet Galvene (JSON) un Dati (JSON apgalvojumi). Lauks alg vienmēr atbilst izvēlētajam algoritmam, un typ pēc noklusējuma ir JWT.
  3. Datumu pievienošanai izmantojiet laika apgalvojumu pogas: iat = tagad, nbf = tagad, vai izvēlieties ilgumu, piemēram, „pēc 1 stundas“, un noklikšķiniet uz Iestatīt exp. Vērtības ir NumericDate: sekundes kopš 1970. gada 1. janvāra UTC.
  4. Ievadiet Noslēpums (HS algoritmiem kā tekstu vai Base64/Base64url sadaļā Noslēpuma formāts) vai Privātā atslēga (PEM vai JWK). Vēl nav atslēgas? Noklikšķiniet uz Ģenerēt testa atslēgu.
  5. Noklikšķiniet uz Parakstīt žetonu, pēc tam Kopēt rezultātu vai noklikšķiniet uz Pārbaudīt šo žetonu, lai to uzreiz pārbaudītu.

Kā pārbaudīt JWT

  1. Ielīmējiet žetonu laukā Pārbaudāmais žetons.
  2. Izvēlieties Paredzamais algoritms. Ja atstājat „No žetona galvenes (nekad none)“, tiek pieņemts viss, ko norāda galvene, izņemot none; izvēloties konkrētu algoritmu, rīks noraida jebkuru citādi parakstītu žetonu, kā tam jādara īstam serverim.
  3. Ievadiet noslēpumu vai Publiskā atslēga (PEM vai JWK): PEM bloku PUBLIC KEY, RSA PUBLIC KEY vai CERTIFICATE, JWK vai JWK kopu (tiek izmantota atslēga, kuras kid atbilst galvenei).
  4. Pēc izvēles iestatiet Pulksteņa pielaide (sekundes), lai pieļautu nelielas pulksteņu atšķirības, un noklikšķiniet uz Pārbaudīt žetonu.

Rezultāts norāda, vai paraksts ir derīgs, un pēc tam pārbauda exp (derīguma termiņš) un nbf (nav derīgs pirms) pret jūsu datora pašreizējo laiku. Žetons ar pareizu parakstu, bet pagātnē esošu derīguma termiņu tiek uzskatīts par beigušos, nevis derīgu.

Atslēgas un formāti

Parakstīšanai rīks pieņem PKCS#8 blokus PRIVATE KEY, PKCS#1 RSA PRIVATE KEY un SEC1 EC PRIVATE KEY (iekšēji pārvērsti PKCS#8) un privātos JWK. Ar paroli aizsargātas atslēgas vispirms jāeksportē bez paroles. Ģenerēt testa atslēgu izveido nejaušu noslēpumu jaucējkoda garumā HS algoritmiem, 2048 bitu RSA atslēgu pāri RS un PS, atbilstošo līkni ES vai Ed25519 pāri. Atslēgas tiek sniegtas kā PEM un JWK, un tās tiek ievietotas abās pusēs, lai pilns cikls darbotos uzreiz.

Paraksti atbilst RFC 7515 un RFC 7518: RSA-PSS izmanto sāli jaucējkoda garumā, bet ECDSA paraksti ir neapstrādāta r||s savienošana. Īstenojums atveido RFC 7515 A.1 pielikuma HS256 piemēru.

Drošības piezīmes

  • Viss darbojas jūsu pārlūkprogrammā ar Web Crypto API. Ne žetoni, ne atslēgas netiek nekur sūtīti, taču tāpat dodiet priekšroku testa atslēgām, nevis ražošanas noslēpumiem.
  • alg: none nekad netiek parakstīts un nekad netiek pieņemts.
  • HMAC noslēpumiem jābūt vismaz tikpat gariem kā jaucējkodam (32 baiti HS256 gadījumā). Īsāks noslēpums izraisa brīdinājumu.
  • Paraksts apliecina integritāti un izcelsmi, nevis to, ka apgalvojumi ir piemēroti: serveriem jāpārbauda arī iss, aud un darbības jomas.

Biežāk uzdotie jautājumi

Kāda ir atšķirība starp HS256 un RS256?

HS256 izmanto vienu kopīgu noslēpumu gan parakstīšanai, gan pārbaudei, tāpēc ikviens pārbaudītājs varētu arī viltot žetonus. RS256 (un PS256, ES256, EdDSA) paraksta ar privāto atslēgu un pārbauda ar publisko atslēgu, ko var droši publicēt.

Kāpēc derīgs paraksts tomēr rāda kļūdu?

Tāpēc, ka žetons ir ārpus sava derīguma perioda: exp ir pagātnē vai nbf ir nākotnē. Paraksta pārbaude un laika pārbaude tiek ziņotas atsevišķi.

Kāpēc alg „none“ tiek noraidīts?

Nepārakstītu žetonu var izveidot ikviens. Tā pieņemšana bija klasiska JWT bibliotēku ievainojamība, tāpēc šis rīks to noraida gan parakstot, gan pārbaudot.

Vai varu izmantot savu RSA vai EC atslēgu?

Jā. Parakstīšanai ielīmējiet privāto atslēgu kā PEM vai JWK, bet pārbaudei publisko atslēgu. Rīks pārbauda, vai atslēgas veids un līkne atbilst izvēlētajam algoritmam.

Kāpēc EdDSA ir atspējots?

Jūsu pārlūkprogramma vēl neatbalsta Ed25519 Web Crypto saskarnē. Jaunākās Chrome, Edge, Firefox un Safari versijas to atbalsta.