Chyba zabezpečení v PuTTY, která umožňuje obnovení soukromého klíče uživatele

PuTTY, populární SSH klient na platformě Windows, má nebezpečnou zranitelnost (CVE-2024-31497), která umožňuje znovu vytvořit soukromý klíč uživatele pomocí algoritmu NIST P-521 Elliptic Curve ECDSA (ecdsa-sha2-nistp521) . Pro výběr soukromého klíče stačí analyzovat přibližně 60 digitálních podpisů generovaných problematickým klíčem.

Chyba zabezpečení se objevuje 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 opraven v aktualizacích PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 a TortoiseGit 2.15.0.1. Po instalaci aktualizace se uživatelům doporučuje vygenerovat nové klíče a odstranit staré veřejné klíče ze souborů autorizovaných klíčů.

Zranitelnost je způsobena neopatrností vývojářů, kteří pomocí inicializačního vektoru (nonce) na základě 521bitové náhodné sekvence vygenerovali 512bitový klíč, pravděpodobně věřili, že by stačila entropie 512 bitů a zbývajících 9 bitů nemají zásadní význam. Výsledkem je, že ve všech soukromých klíčích vytvořených v PuTTY pomocí algoritmu ecdsa-sha2-nistp521 mělo prvních 9 bitů inicializačního vektoru vždy nulové hodnoty.

Pro ECDSA a DSA má zásadní význam kvalita generátoru pseudonáhodných čísel a úplné pokrytí parametru použitého při výpočtu modulu náhodnými daty, protože určení byť jen několika bitů s informací o inicializačním vektoru stačí k přenosu provést útok, aby se postupně obnovil celý soukromý klíč. K úspěšné obnově klíče stačí mít veřejný klíč a analyzovat několik desítek digitálních podpisů vygenerovaných pomocí problematického klíče pro data známá útočníkovi. Útok spočívá v vyřešení problému HNP (Hidden Number Problem).

Potřebné digitální podpisy lze získat například tehdy, když se uživatel připojí k serveru SSH útočníka nebo k serveru Git, který používá SSH jako transport. Podpisy potřebné pro útok lze také zjistit, zda byl klíč použit k ověření libovolných dat, například potvrzení git při použití agenta Pageant SSH k přesměrování provozu na hostitele vývojáře. Získání dat nezbytných k obnovení klíče během útoku MITM je nemožné, protože podpisy v SSH nejsou přenášeny v čistém textu.

Je třeba poznamenat, že podobné použití neúplných inicializačních vektorů bylo použito v PuTTY pro jiné typy eliptických křivek, ale pro jiné algoritmy než ECDSA P-521 výsledné úniky informací nestačí k implementaci útoku na obnovu funkčního klíče. Klíče ECDSA jiných velikostí a klíče Ed25519 nejsou náchylné k útoku.

Zdroj: opennet.ru

Přidat komentář