Forscher demonstriert LĂĽcke im PGP-Standard
Durch die Rückwärtskompatibilität könnten Angreifer verschlüsselte und signierte Nachrichten nachträglich manipulieren. Immerhin geben aktuelle GnuPG-Versionen dann einen Hinweis auf mögliche Probleme.
PGP holt der Fluch der Rückwärtskompatibilität ein. Weil alle aktuellen OpenPGP-Implementierungen auch noch alte Versionen des OpenPGP-Standards unterstützen, lassen sich etwa verschlüsselte und signierte Mails nachträglich verändern, ohne dass es zu der eindeutigen Fehlermeldung kommt, die eigentlich zu erwarten wäre. Immerhin geben aktuelle GnuPG-Versionen einen Hinweis auf mögliche Probleme mit der Nachricht.
Der Standard OpenPGP beschreibt, wie verschlüsselte und signierte Nachrichten aufgebaut sein müssen. In der aktuellen Version sieht er vor, dass intern die einzelnen Daten-Pakete dabei nicht nur verschlüsselt, sondern zusätzlich auch noch gegen Veränderungen geschützt sind (Symmetrically Encrypted Integrity Protected, SEIP); frühere Versionen verzichteten auf diesen scheinbaren Luxus und begnügten sich mit der Verschlüsselung (Symmetrically Encrypted, SE).
Der Downgrade-Angriff
Ein Forscher demonstrierte nun, dass es durchaus möglich ist, die nachträglich hinzugefügte Integritätssicherung zu entfernen und damit aus SEIP-Daten-Paketen einfache SE-Pakete zu machen. Damit kann er dann die digitale Signatur entfernen und auch die verschlüsselten Daten ändern. Dafür muss er nicht den Schlüssel kennen, der für die Verschlüsselung verwendet wurde. Alle OpenPGP-konformen Programme werden diese gefälschten Nachricht entschlüsseln; das weit verbreitete GnuPG liefert immerhin die zusätzliche Warnung: "message was not integrity protected".
Das eigentlich bestürzende ist das Ergebnis eines kleinen Tests, den der Forscher durchgeführt hat. Um zu sehen, wie schwer es ist, diese Probleme in der Praxis auszunutzen, bastelte er eine kleine Challenge, die er veröffentlichte. Um sie zu lösen, musste man einem System eine manipulierte, verschlüsselte Nachricht unterjubeln. Diese Aufgabe hat jemand in weniger als zwölf Stunden gelöst.
Schutz nur optional
Das Problem ist darauf zurückzuführen, dass der schützende Modification Detection Code (MDC, konkret immer noch ein SHA1-Hash) im OpenPGP Message Format laut RFC 4880 zwar empfohlen wird, aber letztlich doch optional ist. Außerdem kommt bei der symmetrischen Verschlüsselung AES im problematischen Cipher Feedback Modus (CFB) zum Einsatz, der es erlaubt, Nachrichten auch ohne Kenntnis des geheimen Schlüssels zu verändern. Aktuelle und bessere Verfahren wie der Galois Counter Mode (GCM), der die Verschlüsselung mit Integritätssicherung kombiniert, verhindern das, aber die kennt OpenPGP bislang nicht. Was also Unterstützung aktueller Krypto-Verfahren angeht, hat somit TLS dem Konkurrenten OpenPGP einmal mehr den Rang abgelaufen. Das hat nämlich AES/GCM seit TLS 1.2 im Repertoire.
Angestaubter Standard OpenPGP
Grund zu akuter Panik geben die neuen Erkenntnisse allerdings nicht. Das grundlegende Problem ist seit vielen Jahren bekannt; ähnliche Angriffe wurden bereits öfter diskutiert, erklärt etwa der Mit-Autor des OpenPGP-Standards Lutz Donnerhacke gegenüber heise Security. Beruhigend ist, dass konkrete Attacken immerhin Warnungen erzeugen und es insbesondere nicht möglich ist, auf diesem Weg gefälschte digitale Signaturen zu erstellen. Beunruhigend ist allerdings, dass es in all diesen Jahren nicht gelungen ist, die Unterstützung für bekanntermaßen unsichere Verfahren in OpenPGP einzustellen und dafür aktuelle Erkenntnisse der Kryptologie in den Standard einfließen zu lassen. (ju)