Computer-Fehler verraten geheime SSH-Schlüssel

Natürlich auftretende Fehler verraten einem passiven Lauscher genug, dass er geheime RSA-Keys aus einem fehlgeschlagenen SSH-Verbindungsaufbau extrahieren kann.

In Pocket speichern vorlesen Druckansicht 74 Kommentare lesen

(Bild: zffoto/Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Der Zugang via Secure Shell (SSH) ist eine der wichtigsten Möglichkeiten des Fernzugriffs auf Systeme, etwa zu deren Administration, und gilt im Allgemeinen sehr sicher. Ein Forscherteam zeigt jedoch, dass es allein durch passives Mitschneiden von SSH-Zugriffen die dabei verwendeten RSA-Schlüssel rekonstruieren und dann für gezielte Angriffe benutzen kann. Verantwortlich dafür sind SSH-Implementierungen, die notwendige Schutzmaßnahmen vor bekannten Fehlern bislang nicht umgesetzt haben.

Hardware hat gelegentlich Fehlfunktionen. So zeigte etwa der Rowhammer-Angriff, dass man durch massenhafte Zugriffe auf Speicherzellen einen sogenannten Bit-Flip auslösen kann, also das Kippen einer Speicherzelle etwa von 1 auf 0. Auch ohne Angreifer treten solche und andere Hardware-Fehler gelegentlich auf. Sehr selten zwar, aber wenn man Milliarden von Verbindungsversuchen beobachtet, kommt es bei einigen davon zu Fehlern bei der Berechnung der kryptografischen Signatur, die dann zum Verbindungsabbruch führen.

Beobachtet ein Angreifer solche Fehler beim Verbindungsaufbau, kann er daraus unter Umständen den geheimen RSA-Schlüssel des Servers extrahieren, der die fehlerhafte Signatur erstellt hat. Dazu entwickelten Ryan et al einen speziellen "Gitterangriff" zur Berechnung des verwendeten RSA-Schlüssels. Dabei genügt unter passenden Umständen dann eine einzige fehlerhafte Signatur. Um die zu finden, untersuchten sie über 5 Milliarden SSH-Verbindungsversuche und konnten damit immerhin 189 RSA-Schlüssel rekonstruieren.

Mit einem solchen Schlüssel kann der Angreifer immer noch nicht die verschlüsselten Verbindungen einfach passiv belauschen beziehungsweise nachträglich entschlüsseln. Aber er ermöglicht es unter Umständen, dem anfragenden Client den gewünschten Server vorzuspielen und sich so etwa in die Man-in-the-Middle-Position zu bringen. Dies erfordert jedoch aktive Eingriffe in eine Verbindung.

Dass solche Fehler auftreten und bei kryptografischen Funktionen zum Sicherheitsproblem werden können, ist schon länger bekannt und wurde auch bei TLS bereits konkret nachgewiesen. Beim aktuellen TLS 1.3 ist unter anderem deshalb der Handshake zum Verbindungsaufbau bereits verschlüsselt, sodass passive Lauscher Signaturen gar nicht mitlesen können – egal ob korrekt oder falsch.

Ältere TLS-Implementierungen schützen sich typischerweise vor diesen "RSA Fault Attacks", indem sie die errechnete Signatur vor dem Versenden nochmals überprüfen. Bei SSH nahm man bisher an, dass sich diese Signatur-Fehler nicht ausnutzen ließen. Trotzdem haben die meisten SSH-Implementierungen ebenfalls solche Schutzmaßnahmen und sei es nur, dass sie diese wie OpenSSH durch das bereits vor vielen Jahren abgesicherte OpenSSL frei Haus bekamen.

Die geknackten Schlüssel stammten vornehmlich von Zyxel-Geräten auf denen ein "Zyxel SSH server" meldete. Dabei handle es sich wohl um "ZyWALL firewall devices", vermuten die Forscher. Zyxel erklärte, dass dies höchstens ältere Geräte mit "ZLD firmware version V3.30" betreffen könne; aktuelle Systeme enthielten den nicht anfälligen OpenSSH-Server.

Außerdem fanden die Forscher angreifbare SSH-Server mit einer Kennung "SSH-2.0-SSHD" und "Mocana", die sie nicht genau zuordnen konnten sowie eine fehlerhafte Signatur eines Cisco-Servers. Darüber hinaus weisen die Forscher darauf hin, dass auch IPSec mit IKEv1 und IKEv2 prinzipiell für diese Art von Angriffen anfällig seien. Allerdings erlaube ihre aktuelle Datenbasis keine Aussagen über konkret angreifbare Implementierungen. Dies sei ein mögliches Thema für weitere Forschung, erklären sie am Ende des Papers Passive SSH Key Compromise via Lattices.

(ju)