nejlepší veřejný a soukromý keygen algoritmus – a proč
gravitační sponzoroval tento příspěvek.
co je horší než nechat soukromé klíče ležet bez dozoru? Mít veřejné klíče, které mohou být hrubě vynucené.
“secure ” v” secure shell ” pochází z kombinace hashování, symetrického šifrování a asymetrického šifrování. Společně SSH používá kryptografické primitivy k bezpečnému připojení klientů a serverů. Za 25 let od svého založení si výpočetní výkon a rychlosti v souladu s Mooreovým zákonem vyžádaly stále složitější algoritmy nízké úrovně.
od roku 2020 jsou nejrozšířenějšími asymetrickými kryptografickými algoritmy ve světě PKI RSA, DSA, ECDSA a EdDSA. Který z nich je nejlepší?
Co tedy použít?
výběr správného algoritmu závisí na několika kritériích:
- implementace: zvládnou to Odborníci, nebo je třeba je válcovat?
- Kompatibilita: existují klienti SSH, kteří nepodporují metodu?
- výkon: jak dlouho bude trvat generování dostatečně bezpečného klíče?
- bezpečnost: lze veřejný klíč odvodit ze soukromého klíče? (Použití kvantového počítání k přerušení šifrování není v tomto článku diskutováno.)
RSA
implementace | RSA knihovny lze nalézt pro všechny hlavní jazyky, včetně hloubkových knihoven
(JS, Python, Go, Rust, C). |
Kompatibilita | použití SHA-1 (OpenSSH) nebo veřejných klíčů pod 2048 bitů nemusí být podporováno. |
výkon | větší klíče vyžadují více času na generování. |
bezpečnost | specializované algoritmy, jako je kvadratické síto a obecné číslo pole síto existují faktor celá čísla se specifickými vlastnostmi. |
čas byl největším spojencem a největším nepřítelem RSA. Poprvé publikováno v roce 1977, RSA má nejširší podporu napříč všemi klienty a jazyky SSH a skutečně obstála ve zkoušce času jako spolehlivá metoda generování klíčů. Následně, to bylo také předmětem Moorova zákona po celá desetiletí a key bit-délka se rozrostla ve velikosti. Podle standardů NIST vyžaduje dosažení 128bitového zabezpečení klíč o délce 3072 bitů, zatímco jiné algoritmy používají menší klíče. Bit security měří počet pokusů potřebných k hrubou silou klíč. 128bitové zabezpečení znamená přerušení 2128 pokusů.
DSA
implementace | DSA byla přijata společností FIPS-184 v roce 1994. Má dostatečné zastoupení v hlavních kryptografických knihovnách, podobně jako RSA. |
Kompatibilita | zatímco DSA má podporu pro klienty založené na tmelu, OpenSSH 7.0 ve výchozím nastavení deaktivuje DSA. |
výkon | významné zlepšení časů generování klíčů pro dosažení srovnatelných bezpečnostních sil, i když doporučená délka bitů je stejná jako RSA. |
zabezpečení | DSA vyžaduje použití náhodně generované nepředvídatelné a tajné hodnoty, která, pokud je objevena, může odhalit soukromý klíč. |
co dělá DSA liší od RSA je, že DSA používá jiný algoritmus. Řeší zcela jiný problém, známý jako diskrétní logaritmický problém, pomocí jiné sady rovnic, prvků a kroků.
tento algoritmus zahrnuje použití náhodně generovaného čísla, m, které se používá při podpisu zprávy spolu se soukromým klíčem, k. toto číslo m musí být uchováváno soukromě. Hodnota mis znamená nonce, což je jedinečná hodnota obsažená v mnoha kryptografických protokolech. Dodatečné podmínky nepředvídatelnosti a utajení však činí nonce více podobný klíči, a proto je nesmírně důležitý.
nejen, že je obtížné zajistit skutečnou náhodnost uvnitř stroje, ale nesprávná implementace může přerušit šifrování. Například:
- je známo, že třída Java SecureRandom pro Android vytváří kolidující hodnoty R. Jinými slovy, třída znovu použila některá náhodně generovaná čísla. To odhalilo řadu různých Bitcoinových peněženek založených na Androidu, aby jim ukradli soukromé klíče. Požadavky nonce m znamenají, že jakékoli dvě instance se stejnou hodnotou nonce mohou být reverzně navrženy a odhalit soukromý klíč používaný k podepisování transakcí.
- pokud jde o další krok, fail0verflow objevil soukromý klíč používaný k podepisování aktualizací firmwaru pro Sony Playstation 3. Jinými slovy, programátoři mohli napsat svůj vlastní kód, podepsat jej odhaleným soukromým klíčem a spustit jej na PS3. Jak se ukázalo, Sony používalo stejné náhodné číslo k podpisu každé zprávy.
ECDSA a EdDSA
dva výše uvedené příklady nejsou zcela upřímné. Sony I Bitcoinový protokol používají ECDSA, nikoli DSA. ECDSA je eliptická křivka implementace DSA. Funkčně, kde RSA a DSA vyžadují délku klíče 3072 bitů, aby poskytly 128 bitů zabezpečení, může ECDSA dosáhnout toho samého pouze s 256bitovými klíči. ECDSA se však spoléhá na stejnou úroveň náhodnosti jako DSA, takže jediným ziskem je rychlost a délka, nikoli bezpečnost.
v reakci na požadované rychlosti eliptických křivek a nežádoucí bezpečnostní rizika získala další třída křivek určitou proslulost. EdDSA řeší stejný problém diskrétního protokolu jako DSA / ECDSA, ale používá jinou rodinu eliptických křivek známých jako Edwardsova křivka (EdDSA používá zkroucenou Edwardsovu křivku). Zatímco nabízí mírné výhody v rychlosti oproti ECDSA, jeho popularita pochází ze zlepšení bezpečnosti. Místo spoléhání se na náhodné číslo pro hodnotu nonce, eddsa generuje nonce deterministicky jako hash, což je odolné proti kolizi.
o krok zpět použití eliptických křivek automaticky nezaručuje určitou úroveň zabezpečení. Ne všechny křivky jsou stejné. Jen několik křivek se dostalo přes přísné testování. Naštěstí průmysl PKI pomalu přijal Curve25519-zejména pro EdDSA. Dohromady to dělá algoritmus podpisu veřejného klíče, Ed25519.
implementace | EdDSA je poměrně nová. Crypto++ a cryptlib v současné době nepodporují EdDSA. |
Kompatibilita | kompatibilní s novějšími klienty, Ed25519 zaznamenal největší přijetí mezi Edwardovými křivkami; ačkoli NIST také navrhl Ed448 ve svém nedávném návrhu SP 800-186. |
výkon | Ed25519 je nejrychleji provádějící algoritmus napříč všemi metrikami. Stejně jako u ECDSA mají veřejné klíče dvojnásobnou délku požadovaného bitového zabezpečení. |
zabezpečení | EdDSA poskytuje nejvyšší úroveň zabezpečení ve srovnání s délkou klíče. Zlepšuje také nejistoty zjištěné v ECDSA. |
v podstatě, RSA nebo EdDSA
pokud jde o to, volba je mezi RSA 2048/4096 a Ed25519 a kompromis je mezi výkonem a kompatibilitou. RSA je všeobecně podporována mezi klienty SSH, zatímco EdDSA funguje mnohem rychleji a poskytuje stejnou úroveň zabezpečení s výrazně menšími klíči. Peter Ruppel dává odpověď stručně:
” krátká odpověď na to je: dokud je klíčová síla dostatečně dobrá pro dohledné budoucnosti,na tom nezáleží. Protože zde uvažujeme o podpisu pro autentizaci v rámci relace SSH. Kryptografická síla podpisu musí odolat současným, nejmodernějším útokům.— – Ed25519 pro SSH
prostě nepoužívejte ECDSA / DSA!
funkce obrázek přes .
nový zásobník je stoprocentní dceřinou společností Insight Partners, investora v následujících společnostech uvedených v tomto článku: Bit.
Leave a Reply