Original-URL des Artikels: https://www.golem.de/news/pgp-und-s-mime-mailprogramme-fallen-auf-falsche-signaturen-herein-1904-140939.html    Veröffentlicht: 30.04.2019 13:39    Kurz-URL: https://glm.io/140939

PGP und S/MIME

Mailprogramme fallen auf falsche Signaturen herein

Mit einer ganzen Reihe von Tricks lassen sich Mailprogramme dazu bringen, E-Mails scheinbar signiert anzuzeigen. Dabei wird aber nicht die Kryptographie angegriffen, sondern die Interpretation durch den Mailclient.

Die Signaturprüfung von Mailclients ließ sich mit einer ganzen Reihe von Tricks aushebeln. Zahlreiche solche Angriffe fasst ein jetzt veröffentlichtes Papier zusammen. In vielen Fällen war es möglich, ein Mailprogramm dazu zu bringen, Mails mit einer scheinbar gültigen Signatur anzuzeigen.

Betroffen sind sowohl Implementierungen von S/MIME als auch von OpenPGP. Was alle Angriffe gemeinsam haben: Die kryptographischen Signaturalgorithmen sind nicht die Ursache, es handelt sich um Interpretationsfehler der Mailsoftware.

Eine Nachricht wird angezeigt, eine andere geprüft

Ein besonders fataler Angriff betrifft die Struktur von S/MIME-Nachrichten. Bei S/MIME werden Signaturen in einem Format namens Cryptographic Message Syntax (CMS) gespeichert. Dabei gibt es zwei Möglichkeiten, wie der Inhalt der Nachricht mitgeliefert werden kann: Er kann direkt in die CMS-Daten als ein sogenanntes eContent-Feld eingebunden werden. Alternativ kann die Nachricht als separater MIME-Teil in der Mail enthalten sein.

Nicht klar definiert ist, was ein Mailprogramm machen soll, wenn beides zutrifft und zwei unterschiedliche Nachrichten mitgeschickt werden: Eine als Teil der CMS-Signatur, eine weitere als MIME-Teil in der Mail. Wie sich zeigte, verhalten sich einige Mailprogramme so, dass sie bei einer Nachricht die Signatur prüfen und die andere Nachricht anzeigen. Das funktionierte etwa bis vor kurzem in Mozilla Thunderbird und in Apple Mail.

Für einen Angriff wird somit nur eine beliebige signierte Mail eines Nutzers benötigt. Die kann man dann in das CMS-Paket packen und zusätzlich einen anderen Nachrichtentext als MIME-Teil mitschicken. Somit lassen sich beliebige gefälschte Nachrichten erzeugen.

Teilweise signierte Nachrichten

Bei OpenPGP-Mails ist es möglich, dass nicht die ganze Mail signiert ist, sondern nur ein Teil davon. Doch Mailprogramme gehen damit oft nicht sauber um und sind nicht in der Lage, korrekt anzuzeigen, was genau signiert wurde.

So war es beispielsweise in Enigmail möglich, in einer MIME-Struktur unsichtbar einen signierten Teil unterzubringen und als Iframe einzubinden. Die Mail wird aber insgesamt als signiert angezeigt. Ein weiteres Angriffsszenario ermöglichte es, eine PGP-Inline-signierte Mail als unsichtbaren Teil in einer HTML-Mail zu verstecken, die Mail wurde hier ebenfalls vollständig als signiert angezeigt.

Neben den hier beschriebenen Angriffsszenarien listet das jetzt veröffentlichte Paper zahlreiche weitere auf. Darunter auch bereits bekannte, über die wir bereits berichtet hatten, etwa Angriffe auf die grafische Oberfläche, bei denen man mittels HTML-Mails die Anzeige für eine korrekte Signatur nachbildet und der Sigspoof-Angriff, der die Status-API von GnuPG austrickst.

Eine Übersicht über die Schwachstellen und Beispielmails sind in einem Github-Repository veröffentlicht. Für die meisten der gefundenen Schwachstellen gibt es inzwischen Updates von den jeweiligen Projekten.

Der Autor dieses Texts hat an der Veröffentlichung des Papers als Co-Autor mitgewirkt.  (hab)


Verwandte Artikel:
Verschlüsselung: Ärger für die PGP-Keyserver   
(08.04.2019, https://glm.io/140512 )
GPG/OpenPGP: BSI zertifiziert GPG für den Dienstgebrauch   
(07.05.2019, https://glm.io/141097 )
E-Mail-Verschlüsselung: "90 Prozent des Enigmail-Codes sind von mir"   
(12.11.2018, https://glm.io/137612 )
Sicherheitslücken: PDF-Signaturen fälschen leicht gemacht   
(25.02.2019, https://glm.io/139589 )
Symcrypt: Windows-Verschlüsselungsbibliothek ist jetzt Open Source   
(30.04.2019, https://glm.io/140970 )

© 1997–2019 Golem.de, https://www.golem.de/