A PuTTY biztonsági rése, amely lehetővé teszi a felhasználó privát kulcsának helyreállítását

A PuTTY, egy népszerű SSH-ügyfél a Windows platformon, egy veszélyes sérülékenységgel (CVE-2024-31497) rendelkezik, amely lehetővé teszi a felhasználó privát kulcsának újbóli létrehozását a NIST P-521 Elliptic Curve ECDSA algoritmus (ecdsa-sha2-nistp521) segítségével. A privát kulcs kiválasztásához elegendő körülbelül 60, a problémás kulcs által generált digitális aláírás elemzése.

A sérülékenység a PuTTY 0.68-as verziójától kezdődően jelenik meg, és a PuTTY sebezhető verzióit tartalmazó termékeket is érinti, például FileZilla (3.24.1 - 3.66.5), WinSCP (5.9.5 - 6.3.2), TortoiseGit (2.4.0.2 - 2.15.0) és TortoiseSVN (1.10.0 - 1.14.6). A problémát a PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 és TortoiseGit 2.15.0.1 frissítések javították. A frissítés telepítése után a felhasználóknak azt tanácsoljuk, hogy hozzanak létre új kulcsokat, és távolítsák el a régi nyilvános kulcsokat az Author_keys fájljaikból.

A sérülékenységet a fejlesztők nemtörődömsége okozza, akik egy 521 bites véletlenszerű sorozaton alapuló inicializálási vektort (nonce) használtak egy 512 bites kulcs generálásához, valószínűleg azt hitték, hogy az 512 bites entrópia elegendő lesz, és a maradék 9 bit nem alapvető fontosságúak. Ennek eredményeként az ecdsa-sha2-nistp521 algoritmussal PuTTY-ben létrehozott összes privát kulcsban az inicializálási vektor első 9 bitje mindig nulla értéket vett fel.

Az ECDSA és a DSA esetében alapvető fontosságú az álvéletlen számgenerátor minősége és a modulus számításánál használt paraméter teljes lefedettsége véletlenszerű adatokkal, hiszen az inicializálási vektorral kapcsolatos információkkal már néhány bit meghatározása is elegendő az átvitelhez. támadást hajt végre a teljes privát kulcs szekvenciális helyreállítására. A kulcs sikeres helyreállításához elegendő egy nyilvános kulccsal rendelkeznie, és több tucat, a problémás kulcs segítségével generált digitális aláírást elemezni a támadó által ismert adatok alapján. A támadás a HNP (Hidden Number Probléma) probléma megoldásán múlik.

A szükséges digitális aláírásokat például akkor lehet megszerezni, amikor a felhasználó csatlakozik a támadó SSH-kiszolgálójához vagy egy olyan Git-kiszolgálóhoz, amely SSH-t átvitelként használ. A támadáshoz szükséges aláírások akkor is kideríthetők, ha a kulcsot tetszőleges adatok ellenőrzésére használták, például a git commitokat hajt végre, amikor a Pageant SSH ügynök segítségével irányítja át a forgalmat a fejlesztő gazdagépére. A kulcs helyreállításához szükséges adatok megszerzése MITM-támadás során lehetetlen, mivel az SSH-ban lévő aláírások nem kerülnek továbbításra tiszta szöveggel.

Megjegyzendő, hogy a PuTTY más típusú elliptikus görbékhez hasonló, hiányos inicializálási vektorokat használ, de az ECDSA P-521-től eltérő algoritmusok esetében az ebből eredő információszivárgás nem elegendő egy működő kulcs-helyreállítási támadás megvalósításához. A más méretű ECDSA kulcsok és az Ed25519 kulcsok nem érzékenyek a támadásokra.

Forrás: opennet.ru

Hozzászólás