Unterschreiben oder nicht unterschreiben: Praktische Schwachstellen in GPG & Freunde

Könnte Zerodays enthalten. https://gpg.fail/ Von sicherer Kommunikation bis hin zu Software-Updates: PGP-Implementierungen wie *GnuPG* wurden allgegenwärtig genutzt, um kryptografische Zusicherungen zu bieten. Viele Anwendungen, von sicherer Kommunikation bis hin zu Software-Updates, basieren grundlegend auf diesen Dienstprogrammen. Da diese seit Jahrzehnten entwickelt wurden, könnte man ausgereifte Codebasen, eine Vielzahl von Code-Audit-Berichten und umfangreiche kontinuierliche Tests erwarten. Bei der Durchsicht verschiedener PGP-bezogener Codebasen für einige persönliche Anwendungsfälle stellten wir fest, dass diese Erwartungen nicht erfüllt wurden, und wir entdeckten mehrere Schwachstellen in kryptografischen Tools, nämlich in *GnuPG*, *Sequoia PGP*, *age* und *minisign*. Die Schwachstellen haben im Kern Implementierungsfehler, zum Beispiel beim Parsing von Code, statt Fehler in der Mathematik der Kryptographie selbst. Eine Schwachstelle in einem Parser könnte beispielsweise zu Verwirrung darüber führen, welche Daten tatsächlich signiert wurden, sodass Angreifer ohne den privaten Schlüssel des Unterzeichners den Klartext austauschen können. Da wir ursprünglich nicht mit der Absicht begonnen haben, Sicherheitsforschung durchzuführen, sondern vielmehr einige interne Details der Schlüsselverwaltung und Signaturen für den persönlichen Gebrauch zu verstehen, besprechen wir auch den Prozess zur Aufdeckung dieser Fehler. Darüber hinaus gehen wir auf die Rolle der OpenPGP-Spezifikation und den Offenlegungsprozess ein. Über die zugrundeliegende Mathematik kryptographischer Algorithmen hinaus gibt es eine ganz andere Ebene des Implementierungscodes, die den verarbeiteten Daten Bedeutung verleiht. Zum Beispiel benötigt eine Signaturverifikationsoperation sowohl robuste Kryptographie **als auch die Gewissheit**, dass die verifizierten Daten tatsächlich dieselben sind wie die, die in die Signieroperation übermittelt wurden. Um den zweiten Teil zu erleichtern, implementieren Programme wie *GnuPG* Parsing- und Verarbeitungscode eines standardisierten Formats. Gerade bei der Implementierung eines funktionsreichen und sich entwickelnden Standards besteht das Risiko ambivalenter Spezifikationen und klassischer Implementierungsfehler. Die Auswirkungen der von uns gefundenen Schwachstellen reichen von verschiedenen Umgehungen der Signaturverifizierung, dem Knacken von Verschlüsselung während des Transports und der Verschlüsselung in Ruhe, der Untergrabung von Schlüsselsignaturen bis hin zu ausnutzbaren Speicherbeschädigungslücken. Für die Öffentlichkeit lizenziert unter http://creativecommons.org/licenses/by/4.0

LicenseCreative Commons Attribution

Includes AI