Sårbarhet i PuTTY som tillåter återställning av en användares privata nyckel

PuTTY, en populär SSH-klient på Windows-plattformen, har en farlig sårbarhet (CVE-2024-31497) som gör att användarens privata nyckel kan återskapas med hjälp av NIST P-521 Elliptic Curve ECDSA-algoritmen (ecdsa-sha2-nistp521) . För att välja en privat nyckel räcker det att analysera cirka 60 digitala signaturer som genereras av den problematiska nyckeln.

Sårbarheten visas från och med version PuTTY 0.68 och påverkar även produkter som inkluderar sårbara versioner av PuTTY, till exempel FileZilla (3.24.1 - 3.66.5), WinSCP (5.9.5 - 6.3.2), TortoiseGit (2.4.0.2 - 2.15.0) och TortoiseSVN (1.10.0 - 1.14.6). Problemet åtgärdades i PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 och TortoiseGit 2.15.0.1 uppdateringar. Efter installation av uppdateringen rekommenderas användare att generera nya nycklar och ta bort gamla offentliga nycklar från sina auktoriserade_keys-filer.

Sårbarheten orsakas av vårdslöshet från utvecklarna, som använde en initialiseringsvektor (icke) baserad på en 521-bitars slumpmässig sekvens för att generera en 512-bitars nyckel, troligen i tron ​​att entropi på 512 bitar skulle vara tillräckligt och de återstående 9 bitarna är inte av grundläggande betydelse. Som ett resultat, i alla privata nycklar som skapats i PuTTY med hjälp av ecdsa-sha2-nistp521-algoritmen, tog de första 9 bitarna i initialiseringsvektorn alltid nollvärden.

För ECDSA och DSA är kvaliteten på pseudoslumptalsgeneratorn och den fullständiga täckningen av parametern som används för att beräkna modulen med slumpmässiga data av grundläggande betydelse, eftersom bestämningen av även några få bitar med information om initialiseringsvektorn är tillräckligt för att bära ut en attack för att sekventiellt återställa hela den privata nyckeln. För att framgångsrikt återställa en nyckel räcker det att ha en offentlig nyckel och analysera flera dussin digitala signaturer som genereras med hjälp av den problematiska nyckeln för data som angriparen känner till. Attacken handlar om att lösa HNP-problemet (Hidden Number Problem).

De nödvändiga digitala signaturerna kan erhållas till exempel när användaren ansluter till angriparens SSH-server eller till en Git-server som använder SSH som transport. Signaturerna som krävs för attacken kan också hittas om nyckeln användes för att verifiera godtyckliga data, till exempel git-bekräftelser när man använder Pageant SSH-agenten för att omdirigera trafik till utvecklarens värd. Det är omöjligt att erhålla de data som krävs för att återställa nyckeln under en MITM-attack, eftersom signaturer i SSH inte överförs i klartext.

Det noteras att liknande användning av ofullständiga initialiseringsvektorer användes i PuTTY för andra typer av elliptiska kurvor, men för andra algoritmer än ECDSA P-521 är de resulterande informationsläckorna inte tillräckliga för att implementera en fungerande nyckelåterställningsattack. ECDSA-nycklar av andra storlekar och Ed25519-nycklar är inte känsliga för attack.

Källa: opennet.ru

Lägg en kommentar