a legjobb nyilvános és privát Keygen algoritmus – és miért

gravitációs szponzorált ezt a bejegyzést.

Virag Mody
Virag 2020 januárjában csatlakozott a Gravitation-hez, miután társalapítója volt egy szoftverkód-ellenőrző cégnek az Ethereum alkalmazásokhoz. Folyamatosan tanul a trendi technológiákról, és kiváló minőségű írott és videó tartalmat állít elő.

mi rosszabb, mint a magánkulcsok felügyelet nélkül hagyása? Olyan nyilvános kulcsokkal rendelkezik, amelyek brutálisan kényszeríthetők.

a “secure Shellben” a “secure” a hash, a szimmetrikus titkosítás és az aszimmetrikus titkosítás kombinációjából származik. Az SSH kriptográfiai primitíveket használ az ügyfelek és szerverek biztonságos összekapcsolására. Az alapítás óta eltelt 25 évben a Moore-törvénynek megfelelő számítási teljesítmény és sebesség egyre bonyolultabb, alacsony szintű algoritmusokat tett szükségessé.

2020-tól a PKI világ legszélesebb körben elfogadott aszimmetrikus kriptográfiai algoritmusai az RSA, a DSA, az ECDSA és az EdDSA. Tehát melyik a legjobb?

tehát melyiket kell használni?

a megfelelő algoritmus kiválasztása néhány kritériumtól függ:

  • megvalósítás: kezelhetik-e a szakértők, vagy hengerelni kell?
  • Kompatibilitás: vannak olyan SSH kliensek, amelyek nem támogatják a módszert?
  • teljesítmény: mennyi ideig tart egy kellően biztonságos kulcs létrehozása?
  • biztonság: származtatható-e a nyilvános kulcs a privát kulcsból? (A kvantumszámítás használatát a titkosítás megtörésére ebben a cikkben nem tárgyaljuk.)

RSA

megvalósítás az RSA könyvtárak megtalálhatók az összes főbb nyelvhez, beleértve a

részletes könyvtárakat is(JS, Python, Go, Rust, C).

Kompatibilitás az SHA-1 (OpenSSH) vagy a 2048 bites alatti nyilvános kulcsok használata nem támogatott.
teljesítmény a nagyobb kulcsok generálásához több idő szükséges.
biztonság speciális algoritmusok, mint például a másodfokú Szita és az Általános Számmező Szita léteznek a specifikus tulajdonságokkal rendelkező egész számok faktorozására.

az idő az RSA legnagyobb szövetségese és legnagyobb ellensége. Először 1977-ben jelent meg, az RSA az SSH kliensek és nyelvek legszélesebb körű támogatásával rendelkezik, és megbízható kulcsgenerálási módszerként valóban kiállta az idő próbáját. Ezt követően, azt is alá Moore-törvény évtizedek óta kulcs bit hosszúságú nőtt a mérete. A NIST szabványok szerint a 128 bites biztonság eléréséhez 3072 bites kulcsra van szükség, míg más algoritmusok kisebb kulcsokat használnak. A Bit security a kulcs brutális kényszerítéséhez szükséges próbák számát méri. A 128 bites biztonság 2128 próbaverziót jelent.

DSA

végrehajtás a DSA-t a FIPS-184 1994-ben fogadta el. Bőséges képviselettel rendelkezik a nagyobb kriptográfiai könyvtárakban, hasonlóan az RSA-hoz.
Kompatibilitás míg a DSA támogatja a PuTTY-alapú klienseket, az OpenSSH 7.0 alapértelmezés szerint letiltja a DSA-t.
teljesítmény jelentős javulás a kulcsgenerálási időkben az összehasonlítható biztonsági erősségek elérése érdekében, bár az ajánlott bithossz megegyezik az RSA-val.
biztonság a DSA egy véletlenszerűen generált, kiszámíthatatlan és titkos értéket igényel, amely felfedheti a privát kulcsot.

a DSA különbözik az RSA – tól, hogy a DSA más algoritmust használ. Egy teljesen más problémát old meg, az úgynevezett diszkrét logaritmus problémát, különböző egyenletek, elemek és lépések segítségével.

ez az algoritmus egy véletlenszerűen generált szám használatát foglalja magában, m, amelyet egy üzenet aláírásával használnak egy privát kulccsal együtt, k. ezt az m számot magántulajdonban kell tartani. Az érték mis azt jelentette, hogy egy nonce, amely egy egyedi érték szerepel számos kriptográfiai protokollok. A kiszámíthatatlanság és a titoktartás további feltételei azonban a nonce-t inkább kulcshoz hasonlítják, ezért rendkívül fontosak.

szponzori Megjegyzés

szponzori logó

a gravity az OSS-t kínálja, hogy minimális erőfeszítéssel szállítson, hozzáférjen és kezeljen felhőalapú alkalmazásokat bármilyen infrastruktúrán keresztül. Teleport a mi biztonsági átjáró kezelésére privilegizált hozzáférést szerver infrastruktúra SSH és Kubernetes. Próbálja ki őket gravitational.com.

nem csak nehéz biztosítani a valódi véletlenszerűséget egy gépen belül, de a nem megfelelő végrehajtás megszakíthatja a titkosítást. Például:

  1. az Android Java SecureRandom osztályáról ismert volt, hogy ütköző R értékeket hoz létre. Más szavakkal, az osztály újrafelhasznált néhány véletlenszerűen generált számot. Ez számos különböző Android-alapú Bitcoin pénztárcát tett ki arra, hogy ellopják a privát kulcsaikat. A nonce m követelményei azt jelentik, hogy bármely két azonos nonce értékű példány visszafejthető, és felfedheti a tranzakciók aláírására használt privát kulcsot.
  2. ezt egy lépéssel tovább lépve a fail0verflow felfedezte a Sony Playstation 3 firmware-frissítéseinek aláírására használt privát kulcsot. Más szavakkal, a programozók saját kódot írhatnak, aláírhatják a feltárt privát kulccsal, és futtathatják a PS3-on. Mint kiderült, a Sony ugyanazt a véletlen számot használta az egyes üzenetek aláírására.

ECDSA és EdDSA

a fenti két példa nem teljesen őszinte. Mind a Sony, mind a Bitcoin protokoll ECDSA-t alkalmaz, nem pedig a DSA-t. Az ECDSA a DSA elliptikus görbe megvalósítása. Funkcionálisan, ahol az RSA és a DSA 3072 bites kulcshosszúságot igényel a 128 bites biztonság biztosításához, az ECDSA ugyanezt csak 256 bites kulcsokkal tudja elérni. Azonban az ECDSA ugyanolyan szintű véletlenszerűségre támaszkodik, mint a DSA, így az egyetlen nyereség a sebesség és a hosszúság, nem pedig a biztonság.

az elliptikus görbék kívánt sebességére és a nem kívánt biztonsági kockázatokra reagálva a görbék egy másik osztálya ismertségre tett szert. Az EdDSA ugyanazt a diszkrét naplóproblémát oldja meg, mint a DSA/ECDSA, de az elliptikus görbék egy másik családját használja, amelyet Edwards-görbének hívnak (az EdDSA csavart Edwards-görbét használ). Miközben enyhe előnyöket kínál a sebességben az ECDSA-val szemben, népszerűsége a biztonság javításából származik. Ahelyett, hogy egy véletlen számra támaszkodna a nonce értéknél, az EdDSA egy nonce determinisztikusan generál hash-t, ami ütközésállóvá teszi.

visszalépve az elliptikus görbék használata nem garantálja automatikusan a biztonság bizonyos szintjét. Nem minden görbe azonos. Csak néhány görbe tette túl a szigorú tesztelésen. Szerencsére a PKI ipar lassan elfogadta a Curve25519-et-különösen az EdDSA esetében. Összerakni, ami a nyilvános kulcsú aláírás algoritmus, Ed25519.

megvalósítás az EdDSA meglehetősen új. A Crypto++ és a cryptlib jelenleg nem támogatja az EdDSA-t.
Kompatibilitás kompatibilis az újabb ügyfelekkel, az Ed25519 látta a legnagyobb elfogadást az Edward görbék között; bár a NIST az Ed448-at is javasolta az SP 800-186 legújabb tervezetében.
Performance az Ed25519 a leggyorsabban teljesítő algoritmus az összes mutatóban. Az ECDSA – hoz hasonlóan a nyilvános kulcsok kétszer olyan hosszúak, mint a kívánt bitbiztonság.
biztonság az EdDSA biztosítja a legmagasabb biztonsági szintet a kulcs hosszához képest. Javítja az ECDSA-ban található bizonytalanságokat is.

alapvetően az RSA vagy az EdDSA

mikor jön le, a választás az RSA 2048/4096 és az Ed25519 között van, és a kompromisszum a teljesítmény és a kompatibilitás között van. Az RSA általánosan támogatott az SSH kliensek körében, míg az EdDSA sokkal gyorsabban teljesít, és ugyanolyan szintű biztonságot nyújt lényegesen kisebb kulcsokkal. Peter Ruppel tömören fogalmazza meg a választ:

“a rövid válasz erre: mindaddig, amíg a kulcs erőssége elég jó a belátható jövőben, nem igazán számít. Mert itt egy aláírást fontolgatunk egy SSH munkameneten belüli hitelesítéshez. Az aláírás kriptográfiai erejének csak ellen kell állnia a jelenlegi, korszerű támadásoknak.”- Ed25519 SSH

csak ne használja az ECDSA/DSA-t!

funkció kép keresztül .

az új Stack az Insight Partners teljes tulajdonú leányvállalata, amely a következő, Ebben a cikkben említett vállalatok befektetője: Bit.

Leave a Reply