Mailvelope ist ein Add-on für die Browser Mozilla Firefox und Google Chrome, das OpenPGP Verschlüsselung im Webinterface bietet und immer populärer wird. Es wird von
WEB.de, GMX.de und
Posteo.de als sichere Lösung für Ende-zu-Ende Verschlüsselung im Browser beworben und auch vom
BSI empfohlen. (Hmmm - das BSI hat manchmal seltsame Empfehlungen.) mailbox.org weist als einziger Unterstützer von Mailvelope die Nutzer auf die
Schwächen hinsichtlich der Sicherheit hin.
Mailvelope hat konzeptuell bedingt einige Schwächen in der Sicherheit und bietet nur
"hinreichende Sicherheit". Auch der Hauptentwickler von Mailvelope stimmt darin überein,
dass Mailvelope für hohe Sicherheitsanforderungen nicht geeignet ist.
Konzeptuell hat Mailvelope folgende Schwächen:
- Unsichere Speicherung der Schlüssel: Die Schlüssel werden im HTML5 Storage des Browsers gespeichert. Im HTML5 Security Cheat Sheet wird vom OWASP empfohlen, keine sensitiven Informationen im Local Storage des Browsers zu speichern, da diese Daten mit XSS-Angriffen kompromittiert werden könnten. Auch die Security Analyse zu Mailvelope (PDF) weist auf das Risiko von XSS-Angriffe hin, obwohl die Entwickler sich bemühen, das Risiko zu reduzieren.
Hinweis: Um bei Nutzung von Mailvelope in Firefox das Risiko von XSS-Angriffen zu verringern, sollte man unbedingt das Add-on NoScript in Kombination mit Mailvelope nutzen, da Firefox keinen XSS-Schutz enthält.
- Javascript ist für starke Krypto nicht geeignet: Javascript wurde nicht als Programmiersprache für Krypto-Anwendungen entworfen. Best Practices für die Implementierung von Krypto sind mit Javascript nicht umsetzbar.
- Javascript bietet keine Möglichkeiten, bei der Programmierung identische Ausführungszeiten für Code Verzweigungen zu erzwingen. Duch Seitenkanalangriffe ist es damit möglich, die Reihenfolge der Nullen und Einsen im privaten Schlüssel durch Beobachtung bei der Codeausführung zu rekonstruieren. In modernen Krypto-Bibliotheken ist das ein Securitybug (z.B. CVE-2016-7056 ECDSA P-256 timing attack key recovery, OpenSSL).
Seitenkanalangriffe auf Browser sind einfach, da der Rechner nicht kompromittiert werden muss. Das Script für den Angriff kann von einer beliebigen Webseite geladen werden, wie Forscher in The Spy in the Sandbox -- Practical Cache Attacks in Javascript (PDF) gezeigt haben.
- Mit Javascript is es nicht möglich, einen geheimen Schlüssel nach der Benutzung aus dem Hauptspeicher zu löschen (Overwriting memory - why?). Das normale Verhalten von Mailvelope wurde bei Tor Onion Router als Security Bug eingestuft.
Was in anderen Krypto-Implementierungen als schwerer Bug gilt, wird bei Mailvelope einfach als Javascript Limitierung hingenommen.
- Zugriff auf private Schlüssel durch E-Mail Provider: Mit Zustimmung des Nutzers hat der E-Mail Provider über die API Zugriff auf die privaten OpenPGP Schlüssel. Web.de und GMX.de bewerben dieses Feature für die Synchronisation zwischen den Browsern, bei mailbox.org dient es als Backup... das BSI hat keine Einwände dagegen.
Die privaten Schlüssel werden an den E-Mail Provider nur mit einem extra Passwort verschlüsselt übertragen, trotzdem ist dieser Zugriff bedenklich. Das Feature ist überflüssig für die Ver- und Entschlüsselung und wurde nur auf Wunsch von Web.de und GMX.de implementiert. Einige andere Provider verschweigen es dezent.
Diese Funktion zum Zugriff auf den privaten Schlüssel wird insbesondere dann bedenklich, wenn das Mailvelope Add-on vom E-Mail Provider bereitgestellt wird, wie bei Web.de und GMX.de. Besser ist es, das Add-on aus einer vertrauenswürdigen, unabhängigen Quelle zu installieren.
Hier im Privacy-Handbuch empfehlen wir deshalb, für die Ende-zu-Ende Verschlüsselung einen E-Mail Client mit GnuPG Support zu nutzen. Diese Lösung ist für hohe Sicherheitsanforderungen geeigent. Wer höchste Sicherheitsanforderungen braucht, der sollte außerdem eine OpenPGP Smartcard für den privaten Schlüssel verwenden, um eine Kompromittierung auch bei gezielten Angriffen zu vermeiden.
Außerdem empfehlen wir u.a. aus Sicherheitsgründen, grundsätzlich eine E-Mail Client zu bevorzugen, statt die E-Mails im Webinterface des Providers zu verwalten.