• turvallisuus
  • salaus
  • jws
  • epäsymmetrinen
  • ec
  • rsa
  • julkinen avain
  • yksityinen avain
  • tunnus
  • jwt-allekirjoitus

JWT-allekirjoitusalgoritmien yleiskatsaus

Tutustu JSON Web Token (JWT) -allekirjoitusalgoritmeihin, erityisesti kahteen suosituimpaan epäsymmetriseen salausmenetelmään: RSA ja EC. Opi kunkin algoritmin plussat ja miinukset ja kuinka Logto käyttää niitä JWT-tunnuksiesi suojaamiseen.

Charles
Charles
Developer

Mikä on JWT?

JSON Web Token (JWT) on kompakti, URL-turvallinen tapa esitellä vaatimuksia turvallisesti. Rakenne sisältää otsikon, hyötykuorman ja allekirjoituksen.

Nykyään JWT:t on otettu laajasti käyttöön ja ne ovat keskeisessä roolissa OAuth 2.0:ssa ja OIDC:ssä. Mutta kuinka valtuutuspalvelin tarkistaa ja luottaa asiakkaalta lähetettyyn JWT:hen? Kuinka tunnus myönnetään ja allekirjoitetaan liikkeellelaskijan toimesta? Tässä blogikirjoituksessa puhumme epäsymmetrisestä salauksesta ja tarkastelemme Logton käyttämien erilaisten allekirjoitusalgoritmien plussia ja miinuksia sen JWT-tunnuksissa.

JWT:n rakenne

Logto allekirjoittaa kaikki JWT-tunnukset, mukaan lukien sekä ID-tunnukset että pääsytunnukset. Allekirjoitettu JWT tunnetaan myös nimellä JWS (JSON Web Signature). Allekirjoitettu JWT-rakenne koostuu kolmesta osasta: otsikosta, hyötykuormasta ja allekirjoituksesta, jotka on erotettu pisteillä (.).

JOSE (JSON Object Signing and Encryption) -otsikko

Otsikko koostuu yleensä seuraavista osista:

  • typ: Tunnuksen tyyppi, joka on JWT.
  • alg: Käytettävä allekirjoitusalgoritmi, kuten RS256 tai ES384.
  • kid: Vihje siitä, mikä avain on käytetty JWT:n suojaamiseen.

Hyötykuorma

Hyötykuorma sisältää vaatimukset, jotka ovat lausuntoja jostain toimijasta (yleensä käyttäjästä) ja lisätietoja. Esimerkiksi ID-tunnus saattaa sisältää seuraavat vaatimukset:

Allekirjoitus

Allekirjoitusta käytetään varmistamaan, että JWT:n lähettäjä ei ole huijari ja että viestiä ei ole peukaloitu. Kun käytät allekirjoitettua JWT:tä, sinun on tarkistettava tunnuksen allekirjoitus varmistaaksesi tunnuksen eheyden. Tarkista tämä opas kuinka validoida JWT-tunnukset suojataksesi API:si.

Mikä on epäsymmetrinen salaus?

Epäsymmetrinen salaus, joka tunnetaan myös nimellä julkisen avaimen kryptografia, on tietoturva- ja kryptografian perustekniikka, jossa käytetään ainutlaatuista paria toisiinsa liittyviä avaimia: julkinen avain ja yksityinen avain.

Julkisten ja yksityisten avainten määritelmät

  • Julkinen avain: Julkinen avain, kuten nimestä käy ilmi, on suunniteltu avoimeen jakamiseen. JWT:n ja vastaavien järjestelmien yhteydessä julkista avainta käytetään allekirjoituksen tarkistamiseen, ei salaamiseen. Kun tiedot on allekirjoitettu yksityisellä avaimella ja vastaanottajalla on vastaava julkinen avain, he voivat varmistaa, että tiedot on todellakin allekirjoittanut yksityisen avaimen haltija eikä tietoja ole muutettu lähetyksen aikana.
  • Yksityinen avain: Toisaalta yksityinen avain on huolellisesti vartioitu salaisuus, jonka pitäisi olla vain sen oikeutetun omistajan tiedossa. JWT:n yhteydessä yksityistä avainta käytetään digitaalisten allekirjoitusten luomiseen, jotka kaikki pääsevät käsiksi vastaavaan julkiseen avaimeen.

Tämä ainutlaatuinen avainten järjestely muodostaa perustan turvalliselle tietojen lähetykselle ja käyttäjien todennusmekanismeille digitaalisessa maailmassa. Katso tämä blogikirjoitus saadaksesi lisätietoja.

Suosittuja JWT-allekirjoitusavainalgoritmeja: RSA vs EC

RSA (Rivest-Shamir-Adelman) ja EC (Elliptic Curve) algoritmit ovat yleisimmin käytettyjä "matemaattisia funktioita" epäsymmetrisessä salauksessa.

Kehittäjinä meillä on usein valinnanmahdollisuus näiden algoritmien välillä, kun käsittelemme todentamiskehystä ja sen JWT:itä. Mutta mikä olisi sinun valintasi? Tutkitaanpa kunkin plussat ja miinukset.

RSA-allekirjoitusalgoritmi (esim. RSASHA256)

  • Plussat:
    1. Laaja tuki: RSA on laajasti tuettu eri alustoilla ja kirjastoissa, mikä varmistaa yhteensopivuuden monenlaisissa ympäristöissä.
    2. Pitkä historia: RSA:lla on pitkä historia luotettavaa turvallisuutta, ja sen algoritmit ovat hyvin ymmärrettyjä kryptografiseksi yhteisöksi.
  • Miinukset:
    1. Avainten koot: RSA-avaimet ovat pidempiä saavuttamaan saman tason turvallisuuden kuin EC, mikä johtaa suurempiin tunnuskokoihin ja lisääntyneeseen laskentakuormaan.
    2. Suorituskyky: RSA-toiminnot ovat yleensä hitaampia kuin EC, mikä voi olla haitta korkean liikenteen sovelluksissa.

EC-allekirjoitusalgoritmi (esim. ECDSASHA384)

  • Plussat:
    1. Tehokkuus: EC ylpeilee paremmalla suorituskyvyllä verrattuna RSA:han, mikä tekee siitä ihanteellisen sovelluksille, joilla on rajalliset resurssit tai korkea liikennekuorma.
    2. Kompaktit avainkoot: EC-avaimet ovat huomattavasti lyhyempiä kuin niiden RSA-vastineet samalla turvallisuustasolla, mikä johtaa pienempiin tallennus- ja verkostovaatimuksiin sekä nopeutettuihin kryptografisiin toimintoihin.
    3. Turvallisuus: EC arvostetaan korkeasti sen vankan turvallisuuden vuoksi, jota tukevat monimutkaiset elliptisten käyrien matematiikka, mikä tekee siitä kestävän raakaan voimaan perustuvia hyökkäyksiä vastaan.
  • Miinukset:
    1. Rajoitettu tuki: Jotkin vanhemmat järjestelmät ja kirjastot saattavat puuttua kattavasta EC-tuesta, mikä voi aiheuttaa yhteensopivuusongelmia. Esim. Cloudflare Zero Trust ei tue EC-allekirjoitettuja tunnuksia.
    2. Monimutkaisuus: EC:n toteuttaminen voi olla monimutkaisempaa siihen liittyvien matemaattisten monimutkaisuuksien vuoksi.

Logton valinta JWT-allekirjoitusalgoritmeista

Logto on aina sitoutunut korkeimpiin turvallisuuden ja joustavuuden standardeihin ja pyrkii käyttämään moderneimpia ja suorituskykyisimpiä ratkaisuja ytimessään. EC tarjoaa voittavan yhdistelmän vankkaa turvallisuutta ja laskennallista tehokkuutta, mikä tekee siitä ihanteellisen nykyaikaisiin todennus- ja valtuutustarpeisiin. Siksi EC on ollut oletusallekirjoitusavainalgoritmimme tuotteen alkuvaiheista lähtien.

Olemme kuitenkin myös tunnustaneet, että EC-allekirjoitetut tunnukset eivät ole yhteensopivia joidenkin kolmansien osapuolten järjestelmien ja kehysten kanssa, erityisesti vanhojen. Siksi olemme myös ottaneet käyttöön ominaisuuden, jonka avulla voit muuttaa JWT-allekirjoitusavainalgoritmisi kierrättämällä yksityiset avaimesi.

Logto Console UI -kuvakaappaus yksityisten avaimesi kierrättämisestä

Joten jos kohtaat ongelman, ettet pysty yhdistämään kolmannen osapuolen alustaan tukemattoman JWT-allekirjoitusalgoritmin vuoksi, nyt on aika kierrättää ja valita RSA-algoritmi uutta yksityistä avaintasi varten.

Tämä ominaisuus auttaa myös vähentämään pitkän aikavälin avaimen altistamiseen tai vaarantumiseen liittyviä riskejä. Yksityisten avainten säännöllinen kierrättäminen olisi oltava keskeinen käytäntö minkä tahansa organisaation tietoturvastrategiassa ja on erittäin suositeltavaa Logton mukaan.

Yhteenveto: Yleisesti käytettyjä JWT-allekirjoitusalgoritmeja: RSA ja EC

JWT-tunnusten allekirjoittaminen varmistaa lähetettävien tietojen eheyden ja aitouden. Allekirjoitusalgoritmin valinnalla voi olla merkittävä vaikutus sovelluksesi turvallisuuteen, suorituskykyyn ja yhteensopivuuteen.

Sekä RSA- että EC-algoritmit ovat olennaisia ja suosittuja algoritmeja kryptografiassa. Ymmärtämällä näiden algoritmien plussat ja miinukset sekä niiden takana olevat matemaattiset periaatteet auttaa tekemään parempia päätöksiä sovelluksesi toimimiseksi todennus- ja valtuutustekehyksen kanssa.

Logto jatkaa tutkimista ja tarjoaa sinulle turvallisemman ja vankemman käyttäjäkokemuksen.