Podle videonávodů, které jsem našel, je předvybraná volba RSA. Ale dlouhodobě se doporučuje používat eliptické křivky, takže bych řekl, že ECDSA vybere poměrně dost lidí. Musí taky vybrat správnou délku klíče, ale jsou tam jen tři a tahle je nejvyšší = nejsilnější. Určitě lidí s takovými klíči nebude málo.
Nejpodstatnější vektor útoku je takový, že vám někdo kompromituje jeden ze serverů. V běžném případě mu to nijak nepomůže ke získání přístupu k ostatním, protože bude mít jen veřejný klíč a nic dalšího nezíská. V tomto případě ale bude potichu sedět a nechá vás v průběhu času mnohokrát k tomu serveru přihlásit. Tím získá data potřebná k odvození soukromého klíče a má přístup na všechny vaše servery. To je samozřejmě bezpečnostní katastrofa.
Ono ale nejsou krivky jako krivky. Uz kdyz se pred mnoha lety prichazelo s EdDSA se upozornovalo na mozne (teoreticke) backdoory v ECDSA krivkach - ktere nikdo na jednu stranu nepotvrdil, ale take ani spolehlive nevyvratil.
Problém se netýká jen Putty, ale třeba i WinSCP - opraví to verze 6.3.3 (not released yet).
https://winscp.net/eng/docs/history#6.3.3
Tady je trochu víc kontextu:
https://chaos.social/@gsuberland/112278296390370428
Zdá se, že jde o to, že implementuje vlastní generátor náhodných čísel používající SHA512, protože Windows 9x žádné API nenabízí - to existuje až od Windows XP, ale v té době už byl generátor napsaný. Problém s 521bitovým ECDSA je právě v délce 521 bitů, což je o 9 víc než počet bitů na výstupu SHA512. Putty těch devět bitů jednoduše doplní nulami.
Vypočítej si 521 / 9, dostaneš se lehce pod šedesát. Tedy jednu šedesátinu klíče znáš.
A handshake si představ jako pár matematických operací nad tímto klíčem. Znáš 9 proměnných z 521, znáš algoritmus a máš odposlechnuté výsledky. Zjednodušeně dosadíš hodně proměnných do pár rovnic a necháš počítač počítat.
Podobný princip se použil při prolamování Enigmy.
Můžeš zkusit brute force, napsat program, který vyzkouší všech 521^2 kombinací není problém
Problém bude s čekáním na výsledek
Ono jde právě o to, že máš známou sekvenci a znáš i algoritmus
Pročti si na jakém principu fungují šifrovací algoritmy - není to žádná magie, pár základních matematických operací, principiálně se toho od Enigmy moc nezměnilo. A právě díky znalosti části privátního klíče můžeš dopočítat zbytek.
Pusť si film Enigma - je tam scéna (víceméně podle skutečnosti)), kdy obětují svůj konvoj, ale díky tomu, že všechny šifrované zprávy mají kus stejný, tak prolomili klíč
To by platilo pro útok hrubou silou. Ale tady je ten útok vedený jiným způsobem.
Představte si ideální symetrickou šifru – Vernamovu šifru tedy XOR zprávy se stejně dlouhým náhodně generovaným klíčem. Když budete vědět, že první setina toho klíče jsou vždy nuly, dokážete tu setinu přečíst. No a když budete posílat pořád dokola stejnou zprávu, jen různě posunutou, sice použijete pro každou zprávu správně nový klíč, ale v první desetině bude mít pořád samé nuly, když odchytíte dostatečné množství šifrovaných zpráv, nakonec dokážete odhalit tu jednu zprávu, která se posílá.
V případě jiných algoritmů to není takhle průhledné, ale pořád jde o to, že ten děravý klíč nesnižuje počet kombinací pro útok hrubou silou, ale umožňuje ze šifrované zprávy získat nějaké informace o vstupu.
Koukněte na https://safecurves.cr.yp.to/ - djb docela hezky popisuje designové detaily kolem (v podstatě je to jeho PR na jeho ed25519 ;-) ale PR odborného stylu, takže rozumně kritizuje konkurenci. Navíc ed25519 je docela uznávaná napříč komunitou)
18. 4. 2024, 13:26 editováno autorem komentáře