Mailvelope ist ein Add-on für die Browser Mozilla Firefox und Google Chrome, das OpenPGP Verschlüsselung im Webinterface der E-Mail Provider ermöglicht.

Das Tutorial vom Mailvelop Team erläutert die Verwendung zur E-Mail Verschlüsselung.

Mailvelope kann die interne OpenPGP.js Implementierung nutzen oder eine externe GnuPG Installation. OpenPGP.js hat konzeptuell bedingt einige Schwächen und ist nicht für hohe Sicherheits­anforderungen geeignet. Konzeptuelle Schwächen von OpenPGP.js sind:
  1. Unsichere Speicherung der Schlüssel: Die Speicherung der privaten Schlüssel im lokalen Storage des Browsers ist konzeptuell unsicher. Es wurden bei verschiedenen Audits immer wieder Angriffsmöglichkeiten via XSS (2015) oder mittels Clickjacking (2019) aufgedeckt, die ein Auslesen der privaten Schlüssel ermöglichten.
  2. Javascript ist nicht für starke Kryptografie 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ührungs­zeiten für Code Verzweigungen zu erzwingen. Duch Seiten­kanal­angriffe ist es damit möglich, die Reihenfolge der Nullen und Einsen im privaten Schlüssel durch Beobachtung bei der Code­ausführung zu rekonstruieren. In modernen Krypto-Bibliotheken ist das ein Securitybug (z.B. CVE-2016-7056).

      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 The Spy in the Sandbox -- Practical Cache Attacks in Javascript (PDF) gezeigt hat.
    • 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.

      In den FAQ von Mailvelope wird darauf hingewiesen, dass die geheimen Schlüssel durch das Senden eines Speicherabbildes in Absturzberichten an die Entwickler bei Mozilla oder Google kompromittiert werden könnten. Deshalb sollte man diese Funktion im Browser deaktivieren, wenn man Mailvelope verwendet.
    Was in anderen Krypto-Implementierungen als schwerer Bug gilt, wird bei Mailvelope einfach als Javascript Limitierung hingenommen.

Mailvelope mit GnuPG nutzen

Mailvelope bietet die Möglichkeit, eine lokale Installation von GnuPG zu verwenden statt der traditionelle Variante mit der OpenPGP.js Implementierung. Damit vermeidet man die oben genannten Schwächen von OpenPGP.js. Auch das Mailvelope Team empfiehlt in den FAQ die Verwendung von GnuPG zur Verbesserung der Sicherheit. Die Verwendung von OpenPGP Smart­cards ist nur Kombination mit GnuPG möglich und nicht mit OpenPGP.js.

Hinweis: die Verwendung von GnuPG mit Mailvelope wird nicht funktionieren, wenn man unter Linux den Firefox Prozess unter Kontrolle von apparmor oder SELinux laufen lässt.

Mailvelope und Autocrypt

Standardmäßig verwendet Mailvelope den Autocrypt Schlüsseltausch. Da Autocrypt die Sicherheit von OpenPGP massiv schwächt, so dass die Verschlüsselung nur noch "some protection most of the time" bietet und keinen Schutz mehr gegen einen bösartigen E-Mail Provider, ist die Deaktivierung von Autocrypt im Dashboard dringend zu empfehlen.