Zranitelnost v PuTTY umožňující obnovení uzavřeného uživatelského klíče

V PuTTY, populárním SSH klientu pro platformu Windows, byla odhalena závažná zranitelnost (CVE-2024-31497), která umožňuje obnovit privátní klíč uživatele vygenerovaný pomocí algoritmu ECDSA s eliptickou křivkou NIST P-521 (ecdsa-sha2-nistp521). K odhalení privátního klíče stačí analyzovat přibližně 60 digitálních podpisů vytvořených problémovým klíčem.

Zranitelnost se projevuje od verze PuTTY 0.68 a týká se také produktů, které obsahují zranitelné verze PuTTY, například FileZilla (3.24.1 — 3.66.5), WinSCP (5.9.5 — 6.3.2), TortoiseGit (2.4.0.2 — 2.15.0) a TortoiseSVN (1.10.0 — 1.14.6). Problém byl odstraněn v aktualizacích PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 a TortoiseGit 2.15.0.1. Po instalaci aktualizace se doporučuje uživatelům vygenerovat nové klíče a odstranit staré veřejné klíče ze souborů authorized_keys.

Zranitelnost byla způsobena nedbalostí vývojářů, kteří při generování 521bitového klíče použili inicializační vektor (nonce) založený na 512bitové náhodné sekvenci, pravděpodobně si mysleli, že 512 bitů entropie je dostatečné a zbývajících 9 bitů nemá zásadní význam. V důsledku toho u všech privátních klíčů vytvářených v PuTTY pomocí algoritmu ecdsa-sha2-nistp521 prvních 9 bitů inicializačního vektoru vždy mělo hodnotu nula.

Pro ECDSA a DSA je důležitá kvalita generátoru pseudonáhodných čísel a úplné pokrytí náhodnými daty parametru používaného při výpočtu modulu, protože určení i několika bitů s informacemi o inicializačním vektoru je dostatečné pro provedení útoku na sekvenční obnovu celého privátního klíče. Pro úspěšnou obnovu klíče stačí mít veřejný klíč a analyzovat několik desítek digitálních podpisů generovaných pomocí problematického klíče pro známé útočníkovi údaje. Útok se redukuje na řešení úlohy HNP (Hidden Number Problem).

Potřebné digitální podpisy lze získat například připojením uživatele k útočníkově SSH serveru nebo k Git serveru, který používá SSH jako transport. Potřebné podpisy pro útok lze také zjistit, pokud byl klíč použit k podepisování libovolných dat, například git commitů při používání SSH agenta Pageant pro přesměrování provozu na vývojářský hostitel. Získání potřebných dat pro obnovení klíče během MITM útoku je vyloučeno, protože podpisy v SSH nejsou přenášeny v otevřené podobě.

Je zaznamenáno, že podobné využití neúplných iniciačních vektorů bylo použito v PuTTY a pro další druhy eliptických křivek, ale pro algoritmy odlišné od ECDSA P-521 nebylo úniků informací dost pro provedení funkčního útoku na obnovu klíče. Klíče ECDSA jiné velikosti a klíče Ed25519 útoku nepodléhají.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster