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

Eine Gruppe von Forschern der Universität Kalifornien in San Diego hat demonstriert, dass es möglich ist, die privaten Host-RSA-Schlüssel eines SSH-Servers durch passive Analyse des SSH-Verkehrs wiederherzustellen. Der Angriff kann auf Server durchgeführt werden, bei denen aufgrund von Umständen oder Aktionen des Angreifers während der Berechnung der digitalen Signatur beim Aufbau einer SSH-Verbindung Fehler auftreten. Fehler können sowohl softwareseitig (falsche Ausführung mathematischer Operationen, Speicherbeschädigung) als auch hardwareseitig (Fehler bei der Arbeit mit NVRAM und DRAM oder Abstürze bei Stromausfällen) sein.

Eine Möglichkeit, Fehler zu provozieren, sind RowHammer-Angriffe, die unter anderem es ermöglichen, remote oder während der Verarbeitung von JavaScript-Code im Browser die Inhalte bestimmter Bits im Speicher durch intensives zyklisches Lesen von Daten aus benachbarten Speicherseiten zu verzerren. Eine weitere Möglichkeit, Fehler auszulösen, könnte die Ausnutzung von Schwachstellen sein, die zu Pufferüberläufen führen und Daten mit Schlüsseln im Speicher beschädigen.

In der veröffentlichten Studie wurde gezeigt, dass bei der Verwendung von digitalen Signaturen auf Basis des RSA-Algorithmus im SSH die Parameter der digitalen Signatur Angriffen zur Wiederherstellung der privaten RSA-Schlüssel mittels Lattice-Methode (Fault Attack) ausgesetzt sind, sofern während des Signaturberechnungsprozesses software- oder hardwarebedingte Fehler auftreten. Das Prinzip der Methode besteht darin, dass durch den Vergleich der korrekten und fehlerhaften RSA-Digital-Signaturen der größte gemeinsame Teiler für eine der Primzahlen, die zur Schlüsselerzeugung verwendet wurden, bestimmt werden kann.

Die RSA-Verschlüsselung basiert auf der Modulo-Potenzierung einer großen Zahl. Der öffentliche Schlüssel enthält Modul und Exponent. Das Modul wird aus zwei zufälligen Primzahlen gebildet, die nur dem Besitzer des privaten Schlüssels bekannt sind. Der Angriff kann gegen RSA-Implementierungen angewendet werden, die den Chinesischen Restesatz und deterministische Füllmethoden wie PKCS#1 v1.5 verwenden.

Für einen Angriff reicht es aus, passive Überwachungen legitimer Verbindungen zu einem SSH-Server durchzuführen, um im Datenverkehr eine fehlerhafte digitale Signatur zu identifizieren, die als Informationsquelle verwendet werden kann, um den privaten RSA-Schlüssel zu rekonstruieren. Nach der Rekonstruktion des Host-RSA-Schlüssels kann der Angreifer im Rahmen eines MITM-Angriffs unbemerkt Anfragen an einen falschen Host umleiten, der sich als kompromittierter SSH-Server ausgibt und den Datenverkehr abfängt, der an diesen gesendet wird. Server von Daten.

Durch die Analyse einer Sammlung abgefangener Netzwerkdaten, die ungefähr 5,2 Milliarden Aufzeichnungen zum Einsatz des SSH-Protokolls umfasst, entdeckten die Forscher etwa 3,2 Milliarden offene Host-Schlüssel und digitale Signaturen, die während der SSH-Sitzungsvereinbarung verwendet wurden. Davon wurden 1,2 Milliarden (39,1 %) mit dem RSA-Algorithmus generiert. In 593671 Fällen (0,048 %) war die RSA-Signatur fehlerhaft und bestand den Verifikationsprozess nicht. Für 4962 fehlerhafte Signaturen konnte die Lattice-Faktorisierungsmethode angewendet werden, um den privaten Schlüssel aus dem bekannten öffentlichen Schlüssel zu bestimmen, was schließlich die Rekonstruktion von 189 einzigartigen RSA-Schlüsselpaaren ermöglichte (in vielen Fällen wurden dieselben Schlüssel und fehlerhaften Geräte zur Generierung verschiedener fehlerhafter Signaturen verwendet). Die Rekonstruktion der Schlüssel dauerte etwa 26 Stunden an Prozessorzeit.

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

Das Problem betrifft nur spezifische Implementierungen des SSH-Protokolls, die hauptsächlich in 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 dem Problem nicht betroffen, da es zur Generierung von Schlüsseln die OpenSSL-Bibliothek (oder LibreSSL) verwendet, die seit 2001 einen Schutz gegen Angriffe auf Grundlage von Fehleranalysen (Fault Attack) bietet. Darüber hinaus wurde in OpenSSH das Schema für digitale Signaturen ssh-rsa (basierend auf sha1) seit 2020 als veraltet erklärt und in Version 8.8 deaktiviert (die Unterstützung für die Schemata rsa-sha2-256 und rsa-sha2-512 bleibt erhalten). Potenziell könnte der Angriff auch für das IPsec-Protokoll anwendbar sein, aber den Forschern fehlten ausreichend experimentelle Daten, um einen solchen Angriff in der Praxis zu bestätigen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4