Sicherheitsanfälligkeit in PuTTY, die es ermöglicht, den privaten Schlüssel des Benutzers wiederherzustellen

In PuTTY, einem beliebten SSH-Client für die Windows-Plattform, wurde eine schwerwiegende Sicherheitsanfälligkeit (CVE-2024-31497) entdeckt, die es ermöglicht, den privaten Schlüssel des Benutzers zu rekonstruieren, der mit dem ECDSA-Algorithmus mit der elliptischen Kurve NIST P-521 (ecdsa-sha2-nistp521) generiert wurde. Um den privaten Schlüssel zu ermitteln, reicht es aus, etwa 60 digitale Signaturen zu analysieren, die mit dem betroffenen Schlüssel erstellt wurden.

Die Sicherheitsanfälligkeit tritt ab PuTTY-Version 0.68 auf und betrifft auch Produkte, die verwundbare Versionen von PuTTY enthalten, wie z. B. FileZilla (3.24.1 – 3.66.5), WinSCP (5.9.5 – 6.3.2), TortoiseGit (2.4.0.2 – 2.15.0) und TortoiseSVN (1.10.0 – 1.14.6). Das Problem wurde in den Updates PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 und TortoiseGit 2.15.0.1 behoben. Nach der Installation des Updates wird den Benutzern empfohlen, neue Schlüssel zu generieren und alte öffentliche Schlüssel aus den authorized_keys-Dateien zu entfernen.

Die Schwachstelle resultiert aus der Nachlässigkeit der Entwickler, die zur Generierung eines 521-Bit-Schlüssels einen Initialisierungsvektor (Nonce) basierend auf einer 512-Bit-Zufallssequenz verwendeten. Sie gingen offenbar davon aus, dass die Entropie von 512 Bit ausreicht und die verbleibenden 9 Bit unwichtig sind. Somit hatten in allen privaten Schlüsseln, die in PuTTY mit dem Algorithmus ecdsa-sha2-nistp521 erstellt wurden, die ersten 9 Bit des Initialisierungsvektors stets den Wert Null.

Für ECDSA und DSA ist die Qualität des Pseudozufallszahlengenerators sowie die vollständige Abdeckung des verwendeten Parameters mit Zufallsdaten von entscheidender Bedeutung. Bereits die Bestimmung von nur wenigen Bits des Initialisierungsvektors reicht aus, um einen Angriff zur sequenziellen Wiederherstellung des gesamten privaten Schlüssels durchzuführen. Für eine erfolgreiche Schlüsselwiederherstellung sind der öffentliche Schlüssel und die Analyse mehrerer Dutzend digitaler Signaturen, die mit dem problematischen Schlüssel generiert wurden, erforderlich. Der Angriff reduziert sich auf die Lösung des HNP (Hidden Number Problem).

Notwendige digitale Signaturen können beispielsweise erlangt werden, indem man sich mit einem SSH-Server des Angreifers verbindet oder mit einem Git-Server, der SSH als Transport nutzt. Die erforderlichen Signaturen für den Angriff können auch ermittelt werden, wenn der Schlüssel zur Signierung beliebiger Daten verwendet wurde, wie etwa Git-Commits bei der Verwendung des SSH-Agenten Pageant, um den Datenverkehr auf den Entwickler-Host umzuleiten. Das Erlangen der Informationen, die zur Wiederherstellung des Schlüssels notwendig sind, während eines MITM-Angriffs ist ausgeschlossen, da die Signaturen bei SSH nicht im Klartext übertragen werden.

Es wird darauf hingewiesen, dass eine ähnliche Verwendung unvollständiger Initialisierungsvektoren in PuTTY und für andere Arten elliptischer Kurven angewandt wurde, jedoch sind für Algorithmen, die sich von ECDSA P-521 unterscheiden, die aufgetretenen Informationen nicht ausreichend, um einen funktionierenden Angriff zur Wiederherstellung des Schlüssels durchzuführen. Schlüssel von ECDSA mit anderen Längen und Ed25519-Schlüssel sind nicht anfällig für Angriffe.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster