# Efail

Efail (Eigenschreibweise: EFAIL) sind zwei Sicherheitslücken in E-Mail-Systemen, mit denen Inhalte, trotz einer Ende-zu-Ende-Verschlüsselung, ausgelesen werden können. Die Lücken sind bei den beiden dafür üblichen Formate OpenPGP und S/MIME ausnutzbar. In Folge der Sicherheitslücken können Angreifer den Klartext verschlüsselter E-Mails nach der Entschlüsselung aus betroffenen E-Mail-Clients ausschleusen und an einen von ihnen kontrollierten Server übertragen. Die verwendeten Schlüssel werden nicht preisgegeben. Voraussetzung für einen erfolgreichen Angriff ist, dass das verwendete Verschlüsselungsverfahren angreifbar ist und das E-Mail-Programm aktive Inhalte wie bspw. HTML oder JavaScript ausführt und externe Inhalte nachlädt.
Die Sicherheitslücken wurden von Damian Poddebniak, Christian Dresen, Jens Müller, Fabian Ising, Sebastian Schinzel, Simon Friedberger, Juraj Somorovsky und Jörg Schwenk am 13. Mai 2018 als Beitrag zum 27th USENIX Security Symposium, Baltimore, August 2018, eingereicht und öffentlich gemacht.

## Beschreibung
### Angreifermodell

Der Angreifer benötigt für einen erfolgreichen Angriff Zugriff auf die anzugreifenden E-Mails in ihrer verschlüsselten Darstellung. Das kann z. B. durch fehlende Transportverschlüsselung (siehe z. B. Transport Layer Security) oder einen erfolgreichen Angriff auf den E-Mail-Provider gegeben sein. Zudem muss ein Angreifer die Möglichkeit haben, mindestens einem verwundbaren regulären Empfänger dieser E-Mail eine modifizierte Variante der E-Mail zu senden oder beim Transport dorthin oder an ihrem Speicherort zu modifizieren.

### Variante 1 – Malleability Gadgets

In der ersten Variante von Efail, dem Malleability-gadget-Angriff (von englisch malleability ‚Formbarkeit‘ und gadget, deutsch ‚Vorrichtung‘) nimmt der Angreifer gezielt Änderungen am Geheimtext vor, um neue Klartextblöcke in eine verschlüsselte E-Mail einzufügen. Diese Variante des Angriffs setzt voraus, dass das Verschlüsselungssystem keine Maßnahmen gegen Veränderungen des Geheimtexts einsetzt, wie bspw. Message Authentication Codes oder einen Modification Detection Code (MDC). Dann können solche Veränderungen auch ohne Kenntnis des privaten Schlüssels vorgenommen werden.
Der entstehende Klartext enthält dann neuen Text, wie z. B. ein HTML-<IMG>-Tag, bei dessen Verarbeitung der E-Mail-Client den Klartext der E-Mail an einen Angreifer sendet.
Beispiel einer durch Malleability Gadgets modifizierten S/MIME-Nachricht:
Eine verschlüsselte S/MIME Nachricht hat nach der Modifikation durch den Angreifer die folgende Struktur (das Zeichen | dient zur Veranschaulichung der AES Blockgrenzen):
Nach Entschlüsselung der modifizierten Nachricht erhält der E-Mail-Client beispielsweise folgenden Klartext:
Der Gadget-Angriff führt dazu, dass zufällige Bytes (gekennzeichnet mit „?“) im Klartext produziert werden. Im obigen Beispiel werden diese daher über das nicht-existierende Attribut „ignore“ auskommentiert um Fehler beim Parsen zu vermeiden. Der E-Mail-Client sendet dann beim Nachladen des Bildes ungewollt den geheimen Klartext an den Angreifer. Der Malleability Gadget Angriff betrifft alle Formen der Verschlüsselung gemäß dem S/MIME Standard bis einschließlich Version 3.2, da erst 2019 mit Version 4.0 in Reaktion auf den Efail-Angriff ein Schutz vor Veränderungen des Ciphertext spezifiziert wurde. Bei der Verschlüsselung mit OpenPGP wird ein MDC mit allen aktuellen Verschlüsselungsverfahren standardmäßig eingesetzt, ist aber nicht zwingend vorgesehen. Der Standard überlässt zudem die Behandlung von fehlenden oder inkorrekten MDCs der Implementierung.

### Variante 2 – Direct Exfiltration

Die zweite Variante, direct exfiltration, basiert auf einer fehlerhaften Implementierung des MIME-Standards in E-Mail-Clients und betrifft weder S/MIME noch OpenPGP direkt. Ein Angreifer fügt dazu vor und nach dem verschlüsselten Text gezielte Ergänzungen in die verschlüsselte E-Mail ein und verändert damit die Nachricht so, dass zum einen eine mehrteilige Nachricht nach dem MIME-Standard (multipart/mixed) entsteht und zum anderen der verschlüsselte Teil der Nachricht gemeinsam mit den Grenzmarkierungen der MIME-Nachricht als Parameterwert eines HTML-Tags auftaucht:
Beispiel einer für Direct Exfiltration modifizierten S/MIME-Nachricht:
Der E-Mail-Client zerlegt zunächst die mehrteilige Nachricht anhand der BOUNDARY-Markierungen in ihre Einzelteile und entschlüsselt anschließend die verschlüsselten Teile. Anschließend setzt er die mehrteilige Nachricht wieder zusammen, um alle Teile in einem gemeinsamen Fenster anzeigen zu können. Der resultierende HTML-Code ist somit:

### Übertragung des Klartexts an den Angreifer

In diesen Nachrichten stehen nun jeweils die entschlüsselten Inhalte der E-Mail im src=-Attribut des <img>-HTML-Tags und wird vom E-Mail-Programm beim Anfordern dieses Inhalts als URL an den vom Angreifer kontrollierten Webserver attacker.chosen.url übergeben. Der Angreifer kann nun den Inhalt der verschlüsselten Nachricht bspw. aus den Logdateien entnehmen.

## Gegenmaßnahmen (Workaround)

Da die Sicherheitslücken sich gegen den Inhalt der E-Mail richten, und nicht gegen einen einzelnen Empfänger, ist es notwendig, dass alle Empfänger geeignete Gegenmaßnahmen umsetzen.
Als erschwerende Gegenmaßnahmen zählen u. a.:
* Deaktivierung aktiver Inhalte wie HTML oder JavaScript bei der E-Mail-Anzeige.
* Unterdrückung des automatischen Nachladens externer Inhalte, wie z. B. Bilder.
Inwiefern auch die Absender verschlüsselter Inhalte die Angreifbarkeit vermindern können, z. B. durch elektronische Signaturen, ist noch nicht abschließend geklärt.

## Lösung für S/MIME

Die durch Efail ausgelöste Debatte führte zu einer beschleunigten Weiterentwicklung des Standards S/MIME. Im April 2019 wurde S/MIME Version 4.0 veröffentlicht als RFC 8551, in der auch namentlich Efail genannt wird. RFC 8551 empfiehlt, so schnell wie möglich auf AES-GCM zu wechseln.

## Kritik

In der Ankündigung der Sicherheitslücke am 13. Mai 2018 hat die Electronic Frontier Foundation (EFF) empfohlen, vorerst auf PGP-Plugins in E-Mail-Programmen zu verzichten. Die Veröffentlichung hätte abgestimmt erst am 15. Mai erfolgen sollen. Dieses Vorgehen wurde vielfach kritisiert bzw. kontrovers diskutiert. In sozialen Netzwerken hat sich ein Shitstorm gegen die EFF entwickelt. In einem Essay empfiehlt Robert Hansen eine geschlossene Gruppe, z. B. in Form einer Mailingliste, einzurichten, um zukünftige Veröffentlichungen von Sicherheitslücken im Vorfeld besser koordinieren zu können. Trotz seiner Verärgerung über die EFF, sieht er diese als bestes Organ an, eine solche OpenPGP Disclosure Group zu verwalten, und spricht konkret deren Direktor, Danny O’Brien, an.