Vulnerabilitatea în PuTTY care permite recuperarea cheii private a unui utilizator

PuTTY, un client SSH popular pe platforma Windows, are o vulnerabilitate periculoasă (CVE-2024-31497) care permite ca cheia privată a utilizatorului să fie recreată folosind algoritmul NIST P-521 Elliptic Curve ECDSA (ecdsa-sha2-nistp521) . Pentru a selecta o cheie privată, este suficient să analizați aproximativ 60 de semnături digitale generate de cheia problematică.

Vulnerabilitatea apare începând cu versiunea PuTTY 0.68 și afectează și produsele care includ versiuni vulnerabile de PuTTY, de exemplu, FileZilla (3.24.1 - 3.66.5), WinSCP (5.9.5 - 6.3.2), TortoiseGit (2.4.0.2 -). 2.15.0) și TortoiseSVN (1.10.0 - 1.14.6). Problema a fost rezolvată în actualizările PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 și TortoiseGit 2.15.0.1. După instalarea actualizării, utilizatorii sunt sfătuiți să genereze chei noi și să elimine cheile publice vechi din fișierele lor authorized_keys.

Vulnerabilitatea este cauzată de nepăsarea dezvoltatorilor, care au folosit un vector de inițializare (nonce) bazat pe o secvență aleatorie de 521 de biți pentru a genera o cheie de 512 de biți, probabil crezând că ar fi suficientă entropia de 512 biți și cei 9 biți rămași. nu au o importanță fundamentală. Ca rezultat, în toate cheile private create în PuTTY folosind algoritmul ecdsa-sha2-nistp521, primii 9 biți ai vectorului de inițializare au luat întotdeauna valori zero.

Pentru ECDSA și DSA, calitatea generatorului de numere pseudoaleatoare și acoperirea completă a parametrului utilizat în calcularea modulului prin date aleatorii este de o importanță fundamentală, deoarece determinarea chiar și a câțiva biți cu informații despre vectorul de inițializare este suficientă pentru a transporta un atac pentru a recupera secvenţial întreaga cheie privată. Pentru a recupera cu succes o cheie, este suficient să aveți o cheie publică și să analizați câteva zeci de semnături digitale generate folosind cheia problematică pentru datele cunoscute atacatorului. Atacul se reduce la rezolvarea problemei HNP (Hidden Number Problem).

Semnăturile digitale necesare pot fi obținute, de exemplu, atunci când utilizatorul se conectează la serverul SSH al atacatorului sau la un server Git care folosește SSH ca transport. Semnăturile necesare pentru atac pot fi găsite și dacă cheia a fost folosită pentru a verifica date arbitrare, de exemplu, git commits atunci când folosește agentul SSH Pageant pentru a redirecționa traficul către gazda dezvoltatorului. Obținerea datelor necesare pentru a recupera cheia în timpul unui atac MITM este imposibilă, deoarece semnăturile în SSH nu sunt transmise în text clar.

Se observă că utilizarea similară a vectorilor de inițializare incompletă a fost utilizată în PuTTY pentru alte tipuri de curbe eliptice, dar pentru algoritmi alții decât ECDSA P-521, scurgerile de informații rezultate nu sunt suficiente pentru a implementa un atac de recuperare a cheii de lucru. Cheile ECDSA de alte dimensiuni și cheile Ed25519 nu sunt susceptibile la atac.

Sursa: opennet.ru

Adauga un comentariu