Johdanto EC- ja RSA-allekirjoitusalgoritmeihin JWT:ssä
Opi epäsymmetrisen salauksen perusteet ja ymmärrä kahden suositun JWT-allekirjoitusavainalgoritmin - EC:n ja RSA:n - hyvät ja huonot puolet.
Tausta
Digitaalisessa maailmassa pyrkimys parempaan datan siirtoturvallisuuteen on pysynyt jatkuvana ja kehittyvänä. Nykyään JSON Verkkotunnistetietoja (JWT) on laajalti otettu käyttöön, ja ne ovat olennainen osa OAuth 2.0:aa ja OIDC:tä. Mutta miten valtuutuspalvelin vahvistaa ja luottaa asiakasohjelmasta lähetettyyn JWT-tokeniin? Miten tunniste myönnetään ja allekirjoitetaan myöntäjän toimesta? Tässä blogikirjoituksessa puhumme epäsymmetrisestä salauksesta ja perehdymme eri allekirjoitusalgoritmien, joita Logto käyttää JWT-tunnisteissaan, hyviin ja huonoihin puoliin.
Epäsymmetrisen salauksen ymmärtäminen
Epäsymmetrinen salaus, tunnetaan myös nimellä julkisen avaimen salaus, on tietoturvan ja kryptografian peruskäsite, ja se sisältää käytön ainutlaatuisen parillisen avaimen: julkisen avaimen ja yksityisen avaimen. Näiden avainten roolit saattavat ensi alkuun tuntua epäloogisilta, mutta ne ovat olennaisia tietoturvallisuuden kannalta.
- Julkinen avain: Kuten nimestä voi päätellä, julkinen avain on suunniteltu avoimeen jakamiseen. JWT:n ja vastaavien järjestelmien yhteydessä julkista avainta käytetään allekirjoituksen vahvistamiseen, ei salaukseen. Kun data on allekirjoitettu yksityisellä avaimella ja vastaanottajalla on vastaava julkinen avain, he voivat varmistaa, että tiedot on todella allekirjoitettu yksityisen avaimen haltijan toimesta ja että sitä ei ole peukaloitu siirron aikana. Kuitenkin perinteisessä epäsymmetrisessä salauksen käytössä, kuten HTTPS:ssä, julkista avainta käytetään salaukseen, ja salattuja tietoja voi purkaa vain kohdepalvelin, joka hallitsee yhdistettyä yksityistä avainta.
- Yksityinen avain: Vastakohtana yksityinen avain on tarkoin varjeltu salaisuus, joka tulisi olla tiedossa vain sen oikeutetulla omistajalla. JWT:n yhteydessä yksityistä avainta käytetään digitaalisten allekirjoitusten luomiseen, jotka kuka tahansa voi vahvistaa, jos hänellä on pääsy vastaavaan julkiseen avaimeen. Lisäksi perinteisemmän epäsymmetrisen salauksen yhteydessä yksityistä avainta käytetään tiedon purkuun, jolloin pääsee käsiksi tietoihin, jotka on turvallisesti salattu julkisella avaimella.
Tämä avainten ainutlaatuinen järjestely, jossa julkinen avain vahvistaa tai salaa tiedot ja yksityinen avain allekirjoittaa tai purkaa ne, muodostaa turvallisen tiedonvälityksen ja käyttäjätunnistuksen perustan digitaalisessa maailmassa. Katso tämä blogikirjoitus saadaksesi lisätietoja.
Epäsymmetriset salausalgoritmit: RSA vs EC
RSA (Rivest-Shamir-Adleman) ja EC (Elliptinen käyrä) algoritmit ovat kaksi yleisimmin käytettyä ”matemaattista toimintoa” epäsymmetrisessä salauksessa. Kehittäjinä joudumme usein tekemään valinnan näiden algoritmien välillä käsitellessämme todennuskehystä ja sen JWT:tä. Mutta mikä olisi sinun valintasi? Perehdytään kunkin algoritmin hyviin ja huonoihin puoliin.
RSA-allekirjoitusalgoritmi
- Plussat:
- Laaja tuki: RSA:ta tuetaan laajalti eri alustoilla ja kirjastoissa, mikä takaa yhteensopivuuden monenlaisiin ympäristöihin.
- Pitkä historia: RSA:lla on pitkä historia luotettavasta tietoturvasta, ja sen algoritmit ovat kryptografisen yhteisön hyvin ymmärtämiä.
- Miinukset:
- Avainten koot: RSA-avaimet ovat pidempiä saavuttaakseen saman turvatason kuin EC, mikä johtaa suurempiin tunnistekokoihin ja lisää laskennallista kuormitusta.
- Suorituskyky: RSA:operaatiot ovat yleensä hitaampia kuin EC, mikä voi olla haitta vilkkaissa sovelluksissa.
EC-allekirjoitusalgoritmi
- Plussat:
- Tehokkuus: EC tarjoaa ylivoimaisen suorituskyvyn verrattuna RSA:han, mikä tekee siitä ihanteellisen sovelluksiin, joissa on resurssirajoituksia tai korkea liikennekuorma.
- Kompaktit avainkoot: EC:n avaimet ovat huomattavasti lyhyempiä kuin RSA-verrokkinsa, tarjoamalla samantasoista turvaa. Tämä johtaa vähennettyihin tallennus- ja verkkovaatimuksiin sekä nopeutuneisiin kryptografisiin operaatioihin.
- Turvallisuus: EC:tä pidetään erittäin turvallisena, jota vahvistavat elliptisten käyrien monimutkaiset matematiikat, jotka tekevät siitä kestävän bruteforce-hyökkäyksiä vastaan.
- Miinukset:
- Rajoitettu tuki: Jotkut vanhemmat järjestelmät ja kirjastot saattavat puuttua kattavasta EC-tuesta, mikä voi aiheuttaa yhteensopivuusongelmia. Esim. Cloudflare Zero Trust ei tue EC-allekirjoitettuja tunnisteita.
- Monimutkaisuus: EC:n toteuttaminen voi olla monimutkaisempaa matemaattisten hienouksien vuoksi.
Logton valinta JWT-allekirjoitusalgoritmeista
Logto on aina sitoutunut korkeimpiin turvallisuuden ja joustavuuden standardeihin, ja pyrkii käyttämään kaikkein moderneimpia ja suorituskykyisimpiä ratkaisuja ytimessään. EC tarjoaa voittavan yhdistelmän vankkaa tietoturvaa ja laskennallista tehokkuutta, joten se sopii erinomaisesti moderneihin todennus- ja valtuutustarpeisiin. Siksi EC on ollut oletusarvoinen allekirjoitusavainalgoritmimme tuotteemme alkuvaiheista lähtien.
Kuitenkin olemme saaneet runsaasti palautetta käyttäjiltämme siitä, että EC-allekirjoitetut tunnisteet eivät ole yhteensopivia joidenkin kolmannen osapuolen järjestelmien ja kehysten kanssa, erityisesti perinteisempien. Siksi olemme työskennelleet tarjotaksemme tukea myös RSA-algoritmille, varmistaen, että Logto pysyy mukautuvana ja monipuolisena kaikkiin todennustarpeisiisi.
Seuraavassa päivityksessä Logto Cloud esittelee “Yksityisen avaimen kierrätys” -ominaisuuden, jonka avulla voit luoda uuden OIDC-yksityisavaimen ja evästeavaimen vuokraajaasi. (Yksityistä avainta käytetään allekirjoittamaan JWT-tunnisteesi ja evästeavainta allekirjoittamaan evästeesi.)
Tämä ominaisuus auttaa vähentämään pitkäkestoisen avainaltistumisen tai kompromissin riskejä. Yksityisten avainten säännöllinen kierrätys pitäisi olla perustavanlaatuinen käytäntö minkä tahansa organisaation tietoturvastrategiassa, ja Logto suosittelee sitä lämpimästi.
Lisäksi, kun kierrätät JWT-allekirjoitusavainasi, tarjoamme myös mahdollisuuden valita allekirjoitusavainalgoritmi EC:n ja RSA:n välillä. Joten jos sinulla on ongelmia liittymisessä kolmannen osapuolen alustaan ei-tuetun JWT-allekirjoitusalgoritmin vuoksi, nyt on aika kierrättää ja valita RSA-algoritmi uudelle yksityisavaimellesi.
Koska tämä asetus on vuokraajakohtaisten asetusten sivulla, UI ei ole saatavilla OSS-käyttäjille. Mutta ei huolta, voit edelleen saavuttaa tämän päivittämällä tuoreimpaan julkaisuun ja suorittamalla seuraavat CLI-komennot Logton pääkansiossa.
Pähkinänkuoressa
Epäsymmetrinen salaus auttaa suojaamaan JWT-tunnisteesi todennusjärjestelmässäsi. Sekä EC että RSA algoritmit ovat olennaisia ja suosittuja algoritmeja kryptografiassa. Ymmärtämällä näiden algoritmien hyviä ja huonoja puolia ja matemaattisia periaatteita niiden taustalla, voit tehdä parempia päätöksiä sovelluksellesi työskennellessäsi todennus- ja valtuutuskehyksen kanssa.
Logto jatkaa tutkiskelua ja tarjoaa sinulle turvallisemman ja vahvemman käyttökokemuksen.