the Best Public and Private Keygen Algorithm-and Why
Gravitational sponsored this post.
mikä on pahempaa kuin jättää yksityiset avaimet lojumaan vartioimatta? Julkisia avaimia, jotka voidaan raa ‘ asti pakottaa.
” secure shell “in” secure ” tulee tiivisteen, symmetrisen salauksen ja epäsymmetrisen salauksen yhdistelmästä. Yhdessä SSH käyttää kryptografisia primitiivejä yhdistämään turvallisesti asiakkaita ja palvelimia. Mooren lain mukainen laskentateho ja-nopeudet ovat 25 vuoden aikana vaatineet yhä monimutkaisempia matalan tason algoritmeja.
vuodesta 2020 lähtien PKI-maailman laajimmin käyttöön otetut epäsymmetriset salausalgoritmit ovat RSA, DSA, ECDSA ja EdDSA. Kumpi on paras?
Joten mitä käyttää?
oikean algoritmin valinta riippuu muutamasta kriteeristä:
- toteutus: osaavatko asiantuntijat hoitaa sen vai pitääkö se rullata?
- Yhteensopivuus: onko SSH-asiakkaita, jotka eivät tue menetelmää?
- suorituskyky: kuinka kauan kestää luoda riittävän turvallinen avain?
- turvallisuus: Voiko julkinen avain johtaa yksityisestä avaimesta? (Kvanttilaskennan käyttöä salauksen murtamiseen ei käsitellä tässä artikkelissa.)
RSA
toteutus | RSA-kirjastoja löytyy kaikille pääkielille, myös syvällisille kirjastoille
(JS, Python, Go, Rust, C). |
Yhteensopivuus | SHA-1: n (OpenSSH) tai 2048-bittisten julkisten avainten käyttö voi olla tukematonta. |
suorituskyky | suuremmat näppäimet vaativat enemmän aikaa generointiin. |
turvallisuus | erikoistuneet algoritmit, kuten Neliöseula ja yleinen Lukukenttäeula, ovat olemassa tietynlaisten kokonaislukujen tekijäksi. |
aika on ollut RSA: n suurin liittolainen ja suurin vihollinen. Ensimmäinen julkaistu vuonna 1977, RSA on laajin tuki kaikilla SSH asiakkaita ja kieliä ja on todella kesti testin ajan luotettavana avain sukupolven menetelmä. Sittemmin se on ollut myös Mooren lain alainen vuosikymmeniä ja key bitin pituus on kasvanut kooltaan. NIST-standardien mukaan 128-bittisen tietoturvan saavuttaminen vaatii avaimen, jonka pituus on 3072 bittiä, kun taas muut algoritmit käyttävät pienempiä avaimia. Bit security mittaa useita kokeita tarvitaan brute-force avain. 128-bittinen tietoturva tarkoittaa 2128: aa murtuvaa koetta.
DSA
toteutus | DSA hyväksyttiin FIPS-184: ssä vuonna 1994. Sillä on RSA: n tapaan runsaasti edustusta suurissa salauskirjastoissa. |
Yhteensopivuus | vaikka DSA: lla on tuki kitti-pohjaisille asiakkaille, OpenSSH 7.0 poistaa DSA: n oletusarvoisesti käytöstä. |
suorituskyky | merkittävä parannus avaintuotantoajoissa vertailukelpoisten tietoturvavahvuuksien saavuttamiseksi, vaikka suositeltu bittipituus on sama kuin RSA. |
turvallisuus | DSA edellyttää satunnaisesti luotua arvaamatonta ja salaista arvoa, joka löydettäessä voi paljastaa yksityisen avaimen. |
mikä tekee DSA eroaa RSA on, että DSA käyttää eri algoritmi. Se ratkaisee täysin erilaisen ongelman, joka tunnetaan diskreettinä logaritmiongelmana, käyttäen erilaisia yhtälöitä, elementtejä ja vaiheita.
tässä algoritmissa käytetään satunnaisesti luotua lukua m, jota käytetään viestin allekirjoittamisen yhteydessä yksityisen avaimen k kanssa. tämä luku m on säilytettävä yksityisesti. Arvo mis tarkoittaa noncea, joka on uniikki arvo, joka sisältyy moniin salausprotokolliin. Arvaamattomuuden ja salailun lisäedellytykset tekevät kuitenkin noncesta enemmän avaintekijän ja siten äärimmäisen tärkeän.
todellisen satunnaisuuden varmistaminen koneen sisällä on vaikeaa, mutta virheellinen toteutus voi murtaa salauksen. Esimerkiksi:
- Androidin Java SecureRandom-luokan tiedettiin luovan törmääviä R-arvoja. Toisin sanoen Luokka käytti uudelleen joitakin satunnaisesti luotuja numeroita. Tämä paljasti useita erilaisia Android-pohjaisia Bitcoin-lompakoita, joiden yksityiset avaimet varastettiin. Nonce m: n vaatimukset tarkoittavat, että mikä tahansa kaksi tapausta, joilla on sama nonce-arvo, voidaan kääntää ja paljastaa transaktioiden allekirjoittamiseen käytetty yksityinen avain.
- tämän jälkeen fail0verflow löysi yksityisen avaimen, jota käytettiin Sony Playstation 3: n laiteohjelmistopäivitysten allekirjoittamiseen. Toisin sanoen ohjelmoijat voisivat kirjoittaa oman koodinsa, allekirjoittaa sen paljastetulla yksityisellä avaimella ja ajaa sitä PS3: lla. Kävi ilmi, että Sony käytti samaa satunnaisnumeroa allekirjoittaakseen jokaisen viestin.
ECDSA ja EdDSA
edellä mainitut kaksi esimerkkiä eivät ole täysin vilpittömiä. Sekä Sony että Bitcoin-protokolla työllistävät ECDSA: ta, eivät DSA: ta. ECDSA on DSA: n elliptinen käyrätoteutus. Toiminnallisesti, jossa RSA ja DSA vaativat avainten pituudet 3072 bittiä tarjotakseen 128 bittiä tietoturvaa, ECDSA voi saavuttaa saman vain 256-bittisillä näppäimillä. ECDSA luottaa kuitenkin samaan satunnaisuustasoon kuin DSA, joten ainoa hyöty on nopeus ja pituus, ei turvallisuus.
elliptisten käyrien toivottujen nopeuksien ja ei-toivottujen turvallisuusriskien vuoksi toinen käyräluokka on saanut jonkin verran mainetta. EdDSA ratkaisee saman diskreetin lokiongelman kuin DSA / ECDSA, mutta käyttää eri elliptisten käyrien perhettä, joka tunnetaan Edwardsin käyränä (EdDSA käyttää kieroutunutta Edwardsin käyrää). Vaikka se tarjoaa hieman etuja nopeudessa ECDSA: han verrattuna, sen suosio tulee turvallisuuden parantumisesta. Sen sijaan, että eddsa luottaisi satunnaislukuun nonce-arvolle, se muodostaa nonce: n deterministisesti hash: na, joka tekee siitä törmäyskestävän.
kun otetaan askel taaksepäin, elliptisten käyrien käyttö ei automaattisesti takaa jonkinasteista tietoturvaa. Kaikki käyrät eivät ole samanlaisia. Vain muutama käyrä on selvinnyt tiukasta testauksesta. Onneksi PKI-teollisuus on hitaasti tullut ottamaan Curve25519-erityisesti EdDSA. Se tekee julkisen avaimen allekirjoitusalgoritmin Ed25519.
toteutus | EdDSA on melko uusi. Crypto++ ja cryptlib eivät tällä hetkellä tue EdDSA: ta. |
Yhteensopivuus | yhteensopiva uudempien asiakkaiden kanssa, Ed25519 on nähnyt suurimman hyväksymisen Edward-käyrien joukossa; vaikka NIST myös ehdotti Ed448: aa heidän tuoreessa SP 800-186-luonnoksessaan. |
suorituskyky | Ed25519 on nopeimmin suoriutuva algoritmi kaikilla mittareilla. Kuten ECDSA: ssa, julkiset näppäimet ovat kaksi kertaa halutun bittisuojan pituisia. |
tietoturva | EdDSA tarjoaa korkeimman turvallisuustason avaimen pituuteen verrattuna. Se parantaa myös ECDSA: ssa esiintyviä epävarmuuksia. |
periaatteessa RSA tai EdDSA
, kun se tulee alas sitä, valinta on RSA 2048/4096 ja Ed25519 ja kompromissi on suorituskyvyn ja yhteensopivuuden välillä. RSA: ta tuetaan yleisesti SSH-asiakkaiden keskuudessa, kun taas EdDSA toimii paljon nopeammin ja tarjoaa saman turvallisuustason huomattavasti pienemmillä avaimilla. Peter Ruppel muotoilee vastauksen ytimekkäästi:
” lyhyt vastaus tähän on: niin kauan kuin avainvahvuus on riittävän hyvä lähitulevaisuudessa, sillä ei ole oikeastaan väliä. Koska tässä harkitsemme allekirjoitusta tunnistautumiseen SSH-istunnossa. Allekirjoituksen kryptografisen vahvuuden tarvitsee vain kestää nykyiset, huipputekniset hyökkäykset.”- Ed25519 for SSH
Just don ‘ t use ECDSA / DSA!
Feature image via .
Uusi pino on Insight Partnersin kokonaan omistama tytäryhtiö, joka on sijoittaja seuraavissa tässä artikkelissa mainituissa yhtiöissä: Bit.
Leave a Reply