Wiederherstellung von RSA-Schlüsseln durch Analyse von SSH-Verbindungen zu ausgefallenen Servern

Ein Forscherteam der University of California in San Diego hat gezeigt, dass es möglich ist, die RSA-Schlüssel privater SSH-Server-Hosts durch passive Analyse des SSH-Verkehrs zu rekonstruieren. Der Angriff kann auf Servern durchgeführt werden, bei denen es aufgrund einer Kombination von Umständen oder Aktionen des Angreifers zu Fehlern bei der Berechnung der digitalen Signatur beim Aufbau einer SSH-Verbindung kommt. Fehler können entweder softwarebedingt (fehlerhafte Ausführung mathematischer Operationen, Speicherbeschädigung) oder hardwarebedingt (Fehler beim Betrieb von NVRAM und DRAM oder Fehler aufgrund von Stromausfällen) sein.

Eine Möglichkeit, Ausfälle zu stimulieren, könnten RowHammer-Angriffe sein, die es unter anderem ermöglichen, den Inhalt einzelner Speicherbits aus der Ferne oder bei der Verarbeitung von JavaScript-Code in einem Browser beim intensiven zyklischen Lesen von Daten aus benachbarten Speicherzellen zu verfälschen. Eine weitere Möglichkeit, Abstürze zu verursachen, könnte die Ausnutzung von Schwachstellen sein, die zu Pufferüberläufen und zur Beschädigung von Daten mit Schlüsseln im Speicher führen.

Die veröffentlichte Studie zeigt, dass bei der Verwendung digitaler Signaturen auf Basis des RSA-Algorithmus in SSH Angriffe zur Rekonstruktion privater RSA-Schlüssel mit der Lattice-Methode (Fault Attack) auf die Parameter der digitalen Signatur anwendbar sind, wenn während des Signaturberechnungsprozesses Software- oder Hardwarefehler auftreten. Der Kern der Methode besteht darin, dass durch den Vergleich einer korrekten und einer fehlerhaften digitalen RSA-Signatur der größte gemeinsame Teiler zur Ableitung einer der zur Schlüsselgenerierung verwendeten Primzahlen ermittelt werden kann.

Die RSA-Verschlüsselung basiert auf der Operation der Potenzierung einer großen Zahl modulo. Der öffentliche Schlüssel enthält den Modul und den Grad. Das Modul wird auf Basis zweier zufälliger Primzahlen gebildet, die nur dem Besitzer des privaten Schlüssels bekannt sind. Der Angriff kann auf RSA-Implementierungen angewendet werden, die den chinesischen Restsatz und deterministische Auffüllschemata wie PKCS#1 v1.5 verwenden.

Um einen Angriff durchzuführen, reicht es aus, legitime Verbindungen zum SSH-Server passiv zu überwachen, bis im Datenverkehr eine fehlerhafte digitale Signatur erkannt wird, die als Informationsquelle zur Neuerstellung des privaten RSA-Schlüssels verwendet werden kann. Nach der Neuerstellung des RSA-Schlüssels des Hosts kann ein Angreifer mithilfe eines MITM-Angriffs Anfragen stillschweigend an einen gefälschten Host umleiten, der sich als kompromittierter SSH-Server ausgibt, und an diesen Server übertragene Daten abfangen.

Durch die Untersuchung einer Sammlung von Netzwerkabfangprotokollen mit etwa 5.2 Milliarden Datensätzen im Zusammenhang mit der Verwendung des SSH-Protokolls identifizierten die Forscher etwa 3.2 Milliarden öffentliche Hostschlüssel und digitale Signaturen, die während der Aushandlung von SSH-Sitzungen verwendet wurden. Davon wurden 1.2 Milliarden (39.1 %) mithilfe des RSA-Algorithmus generiert. In 593671 Fällen (0.048 %) war die RSA-Signatur beschädigt und konnte nicht verifiziert werden. Bei 4962 gebrochenen Signaturen wurde die Gitterfaktorisierungsmethode verwendet, um den privaten Schlüssel aus einem bekannten öffentlichen Schlüssel zu bestimmen, was es uns letztendlich ermöglichte, 189 einzigartige RSA-Schlüsselpaare zu rekonstruieren (in vielen Fällen wurden dieselben Schlüssel und gebrochenen Geräte verwendet, um unterschiedliche gebrochene Signaturen zu generieren). Das Neuerstellen der Schlüssel dauerte etwa 26 Stunden CPU-Zeit.

 Wiederherstellung von RSA-Schlüsseln durch Analyse von SSH-Verbindungen zu ausgefallenen Servern

Das Problem betrifft nur bestimmte Implementierungen des SSH-Protokolls, die hauptsächlich auf eingebetteten Geräten verwendet werden. Beispiele für Geräte mit problematischen SSH-Implementierungen sind Produkte von Zyxel, Cisco, Mocana und Hillstone Networks. OpenSSH ist von diesem Problem nicht betroffen, da es zur Schlüsselgenerierung die OpenSSL-Bibliothek (bzw. LibreSSL) verwendet, die seit 2001 vor Fault Attacks geschützt ist. Darüber hinaus ist das digitale Signaturschema ssh-rsa (basierend auf sha1) in OpenSSH seit 2020 veraltet und in Version 8.8 deaktiviert (die Unterstützung für die Schemata rsa-sha2-256 und rsa-sha2-512 bleibt bestehen). Der Angriff könnte möglicherweise auch auf das IPsec-Protokoll anwendbar sein, aber den Forschern standen nicht genügend experimentelle Daten zur Verfügung, um einen solchen Angriff in der Praxis zu bestätigen.

Source: opennet.ru

Kommentar hinzufügen