Vulnerabilità in PuTTY che consente di ripristinare la chiave privata dell'utente

In PuTTY, un client per il protocollo SSH molto popolare sulla piattaforma Windows, è stata scoperta una vulnerabilità critica (CVE-2024-31497) che consente di ricostruire la chiave privata dell'utente generata utilizzando l'algoritmo ECDSA con la curva ellittica NIST P-521 (ecdsa-sha2-nistp521). Per individuare la chiave privata è sufficiente analizzare circa 60 firme digitali generate dalla chiave difettosa.

La vulnerabilità si manifesta a partire dalla versione PuTTY 0.68 e ha colpito anche prodotti che includono versioni vulnerabili di PuTTY, come FileZilla (3.24.1 — 3.66.5), WinSCP (5.9.5 — 6.3.2), TortoiseGit (2.4.0.2 — 2.15.0) e TortoiseSVN (1.10.0 — 1.14.6). Il problema è stato risolto negli aggiornamenti PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 e TortoiseGit 2.15.0.1. Dopo l'installazione dell'aggiornamento, si consiglia agli utenti di generare nuove chiavi e rimuovere le vecchie chiavi pubbliche dai file authorized_keys.

La vulnerabilità è stata causata dalla negligenza degli sviluppatori, che per generare una chiave a 521 bit hanno utilizzato un vettore di inizializzazione (nonce) basato su una sequenza casuale a 512 bit, probabilmente ritenendo che 512 bit di entropia fossero sufficienti e che i restanti 9 bit non avessero rilevanza. Di conseguenza, in tutte le chiavi private create in PuTTY utilizzando l'algoritmo ecdsa-sha2-nistp521, i primi 9 bit del vettore di inizializzazione assumevano sempre valori nulli.

Per ECDSA e DSA, la qualità del generatore di numeri pseudocasuali e la copertura completa con dati casuali del parametro utilizzato per calcolare il modulo sono di fondamentale importanza, poiché la determinazione anche di pochi bit con informazioni sul vettore di inizializzazione è sufficiente per eseguire un attacco di recupero sequenziale dell'intera chiave privata. Per il recupero riuscito della chiave, è sufficiente avere la chiave pubblica e analizzare alcune decine di firme digitali generate utilizzando la chiave vulnerabile con dati noti all'attaccante. L'attacco si riduce alla soluzione del problema HNP (Hidden Number Problem).

Le firme digitali necessarie possono essere ottenute, ad esempio, collegando l'utente a un server SSH dell'attaccante o a un server Git che utilizza SSH come mezzo di trasporto. Le firme necessarie per l'attacco possono anche essere ottenute se la chiave è stata utilizzata per firmare dati arbitrari, come i commit di git quando si utilizza l'agent SSH Pageant per reindirizzare il traffico verso l'host dello sviluppatore. L'ottenimento dei dati necessari per recuperare la chiave durante un attacco MITM è escluso, poiché le firme in SSH non vengono trasmesse in chiaro.

Si segnala che un uso simile di vettori di inizializzazione incompleti è stato impiegato in PuTTY e per altri tipi di curve ellittiche, ma per algoritmi diversi dall'ECDSA P-521, le fughe di informazioni emerse non sono sufficienti per realizzare un attacco funzionante per il recupero della chiave. Le chiavi ECDSA di altre dimensioni e le chiavi Ed25519 non sono vulnerabili all'attacco.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster