Hacker haben eine Schwachstelle im OpenPGP-Protokoll ausgenutzt, die seit über zehn Jahren bekannt ist.
Wir erklären, worum es genau geht und warum sie nicht behoben werden kann.
/ Unsplash /
Netzwerkprobleme
Mitte Juni haben Unbekannte auf das Netzwerk der kryptografischen Schlüsselserver , basierend auf dem OpenPGP-Protokoll, durchgeführt. Dies ist ein IETF-Standard (), der zur Verschlüsselung von E-Mails und anderen Nachrichten verwendet wird. Das SKS-Netzwerk wurde vor dreißig Jahren eingerichtet, um öffentliche Zertifikate zu verbreiten. Werkzeuge wie werden verwendet, um Daten zu verschlüsseln und elektronische digitale Signaturen zu erstellen.
Hacker haben die Zertifikate zweier Maintainer des GnuPG-Projekts — Robert Hansen und Daniel Gillmor — kompromittiert. Der Download eines beschädigten Zertifikats vom Server führt zu einem Ausfall von GnuPG — das System hängt einfach. Es gibt Grund zu der Annahme, dass die Angreifer hier nicht aufhören werden und die Zahl der kompromittierten Zertifikate nur steigen wird. Bislang sind die genauen Ausmaße des Problems unbekannt.
Die Natur des Angriffs
Hacker haben eine Schwachstelle im OpenPGP-Protokoll ausgenutzt. Diese ist der Community bereits seit vielen Jahren bekannt. Sogar auf GitHub entsprechende Exploits. Bisher hat jedoch niemand die Verantwortung für das Schließen der "Lücke" übernommen (wir werden später ausführlicher auf die Gründe eingehen).
Hier sind einige Zusammenstellungen aus unserem Blog auf Habra:
Laut der OpenPGP-Spezifikation kann jeder digitale Signaturen zu Zertifikaten hinzufügen, um deren Eigentümer zu bestätigen. Die maximale Zahl der Signaturen ist dabei nicht geregelt. Hier entsteht jedoch ein Problem – das SKS-Netzwerk ermöglicht es, bis zu 150.000 Signaturen auf einem Zertifikat zu speichern, aber GnuPG unterstützt diese Menge nicht. Dadurch hängt GnuPG (wie auch andere Implementierungen von OpenPGP) beim Hochladen des Zertifikats.
Einer der Benutzer – der Import des Zertifikats dauerte etwa 10 Minuten. Das Zertifikat hatte mehr als 54.000 Signaturen und wog 17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: Schlüssel F20691179038E5C6: 4 doppelte Signaturen entfernt
gpg: Schlüssel F20691179038E5C6: 54614 Signaturen aufgrund fehlender Schlüssel nicht überprüft
gpg: Schlüssel F20691179038E5C6: 4 Signaturen umsortiert
gpg: Schlüssel F20691179038E5C6: öffentlicher Schlüssel "Daniel Kahn Gillmor " importiert
gpg: keine endgültig vertrauenswürdigen Schlüssel gefunden
gpg: Insgesamt verarbeitete Anzahl: 1
gpg: importiert: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg
Das Problem wird dadurch verschärft, dass OpenPGP-Schlüsselserver keine Informationen über Zertifikate löschen. Dies dient dazu, die gesamte Historie von Aktionen mit Zertifikaten nachverfolgen zu können und einen Austausch zu verhindern. Daher können kompromittierte Elemente nicht beseitigt werden.
Im Grunde genommen ist das SKS-Netzwerk ein großer „Dateiserver“, auf den jeder Daten schreiben kann. Um das Problem zu veranschaulichen, hat ein GitHub-Resident im vergangenen Jahr , das Dokumente im Netzwerk der kryptografischen Schlüsselserver speichert, geschaffen.
Warum die Schwachstelle nicht geschlossen wurde
Es gab keinen Anlass, die Schwachstelle zu schließen. Bisher wurde sie nicht für Hackerangriffe genutzt. Obwohl die IT-Community achten die Entwickler von SKS und OpenPGP auf das Problem.
Es ist fair zu erwähnen, dass sie im Juni tatsächlich experimenteller Schlüsselserver . Es bietet Schutz gegen solche Angriffe. Allerdings wird seine Datenbank von Grund auf neu aufgebaut, und der Server ist nicht Teil von SKS. Daher wird es eine Zeit dauern, bis er genutzt werden kann.

/ Unsplash /
Was den Bug im ursprünglichen System betrifft, so wird dessen Behebung durch einen komplexen Synchronisierungsmechanismus erschwert. Das Netzwerk der Schlüsselserver wurde ursprünglich als Proof of Concept zum Schutz der Doktorarbeit von Yaron Minsky entwickelt. Dabei wurde eine recht spezifische Sprache, OCaml, ausgewählt. Laut dem Maintainer Robert Hansen ist es schwierig, den Code zu verstehen, weshalb nur kleine Änderungen vorgenommen werden. Um die Architektur von SKS zu modifizieren, müsste sie von Grund auf neu geschrieben werden.
Jedenfalls glauben die Entwickler von GnuPG nicht, dass das Netzwerk jemals repariert werden kann. In einem GitHub-Post haben sie sogar geschrieben, dass sie die Arbeit mit dem SKS Keyserver nicht empfehlen. Das ist tatsächlich einer der Hauptgründe, warum sie den Übergang zum neuen Service keys.openpgp.org initiiert haben. Wir können nur die weitere Entwicklung abwarten.
Ein paar Materialien aus unserem Unternehmensblog:
Quelle: habr.com
