DecaTec

Home-Server | Linux | Nextcloud | Raspberry Pi | Programmierung | Fotografie

Thunderbird 78: PGP-Verschlüsselung mit dem Nitrokey Storage

Thunderbird Logo

Thunderbird ist nach wie vor ein beliebter E-Mail-Client. Nicht zuletzt die einfache Integration von PGP mittels des Addons Enigmail machte bisher das Senden und Empfangen von verschlüsselten E-Mails ziemlich einfach.

Thunderbird hat mit Version 78 vor einiger Zeit ein sehr großes Update mit vielen Neuerungen erhalten. Hier hat sich auch einiges an der E-Mail-Verschlüsselung geändert – es wurde versucht, die Verschlüsselung auf möglichst einfache Weise in Thunderbird zu integrieren. Für Nutzer, die hierdurch das erste Mal mit E-Mail-Verschlüsselung in Berührung kommen, mag dies einen Vorteil darstellen. „Bestands-User“ müssen sich allerdings umstellen.

Für Benutzer eines Nitrokeys, auf dem PGP-Keys gespeichert werden können (z.B. auf dem Nitrokey Storage) stellt das neuste Update von Thunderbird dabei eine Hürde dar. Hier funktioniert das Verschlüsseln von E-Mails mittels des Nitrokeys nicht mehr „out of the box“.

In diesem Artikel führen wir daher das Update auf Thunderbird 78 durch und nehmen danach die Einrichtung vor, so dass ein Nitrokey Storage wieder für die PGP-Verschlüsselung von E-Mails genutzt werden kann.

An dieser Stelle ein herzliches Dankeschön an die Nitrokey GmbH, die mir im Rahmen des Community Programms einen Nitrokey Storage zur Verfügung gestellt hat.

Update-Historie (letztes Update: 18.11.2020)
  • 18.11.2020:
    • Mit der aktuellsten Version von Thunderbird ist der im Artikel erwähnte Workaround nicht mehr notwendig.

Nitrokey Storage

Zuvor ein paar Worte zum Nitrokey Storage. Wer diesen Blog schon länger verfolgt, kennt ja schon den Nitrokey FIDO 2 (Nextcloud Zwei-Faktor-Authentifizierung mit Nitrokey FIDO2). Dieser kann für eine Zwei-Faktor-Authentifizierung an vielen Diensten (wie z.B. Nextcloud) genutzt werden. Allerdings ist der Nitrokey FIDO2 nicht für die Verschlüsselung von E-Mails vorgesehen.

Hier springt der Nitrokey Storage in die Bresche: Dieser unterstützt die E-Mail-Verschlüsselung mittels PGP. Dabei werden die PGP-Schlüssel einfach auf dem Nitrokey gespeichert, so dass v.a. der private PGP-Key nicht mehr auf einem Rechner abgelegt werden muss. Wenn nun z.B. eine verschlüsselte E-Mail gesendet werden soll, wird der Stick einfach an den Rechner angesteckt und es erfolgt die Eingabe der PIN (die durch die Nitrokey App bei der Einrichtung des Sticks gesetzt wird). Erst danach wir die E-Mail verschlüsselt und versendet.

Daneben bietet der Nitrokey Storage auch noch weitere Funktionen wie z.B. verschlüsselten Speicher (wahlweise als Hidden Volume) und einen Passwort-Manager. Hier soll es aber primär um die E-Mail-Verschlüsselung gehen, daher gehe ich an dieser Stelle nicht auf diese weiteren Features ein.

Thunderbird 78 und PGP – ein paar Hintergründe

Mit dem Update 78 von Thunderbird ändert sich einiges in Bezug auf die E-Mail-Verschlüsselung. Die größte (technische) Änderung ist dabei wohl, dass OpenPGP nun direkt in den E-Mail-Client integriert wurde. Hier ist es also nicht mehr notwendig, die PGP-Funktionalität durch ein separates Plugin (Enigmail) nachzurüsten.

Enigmail hilft nach einem Update nur noch, bestehende PGP-Schlüssel in Thunderbird zu importieren. Dies ist notwendig, da Thunderbird für PGP nicht die weit verbreitete Implementierung GnuPG nutzt, sondern die Library RNP. Dies bringt jedoch einige Nachteile mit sich: Die PGP-Keys können damit nicht mehr über den Schlüsselbund verwaltet werden, sondern werden im Benutzerprofil von Thunderbird gespeichert. Dies betrifft auch private Keys. Das allein stellt noch kein Problem dar, allerdings fragt Thunderbird beim Import der Keys auch zwei Mal nach der Passphrase des privaten Keys: Einmal zum Export aus dem Schlüsselbund und ein zweites Mal zum Importieren in das Thunderbird-Benutzerprofil.
Thunderbird schützt diese privaten Keys dann mit einem zufällig generierten Passwort. Dieses kann dann optional auch mit dem Master-Passwort von Thunderbird geschützt werden. Dies sollte dann auch auf jeden Fall gesetzt werden, ansonsten sind die privaten PGP-Keys mehr oder weniger ungeschützt.
Thunderbird will es den Nutzern hier wirklich einfach machen: Nach dem Import der PGP-Keys ist es nun möglich, verschlüsselte E-Mails zu versenden – und zwar ohne die Angabe von Keys oder Passwörtern – diese sind Thunderbird ja nun bekannt.

Und genau hier liegt meiner Meinung nach das größte Problem der PGP-Implementierung in Thunderbird. Der private PGP-Key mit der dazugehörigen Passphrase ist auf jeden Fall schützenswert, da nur hierüber die Integrität der Verschlüsselung von E-Mails sicher gestellt werden kann. Private Keys nebst Passwörtern sollten daher nicht im Profil des E-Mail-Clients gespeichert werden.

Für Benutzer eines Nitrokeys stellt die Verwendung der RNP-Bibliothek ebenfalls ein Problem dar, da der Nitrokey auf die Nutzung des GnuPG-Schlüsselbundes angewiesen ist.

Ausgangssituation und Ziele

Im Artikel gehe ich von folgender Ausgangssituation aus:

  • Thunderbird 68 ist installiert.
  • Das Addon „Enigmail“ ist in Thunderbird installiert und eingerichtet.
  • Auf einem vorhandenen Nitrokey Storage ist ein PGP-Key für die Verwendung mit Thunderbird/Enigmail vorhanden.

Wie PGP in Thunderbird 68 eingerichtet wird, soll dabei nicht weiter betrachtet werden, da dies den Umfang des Artikels sprengen würde. Ebenso wird nicht weiter auf die Einrichtung des PGP-Keys auf dem Nitrokey eingegangen. Hier gibt es im Netz bereits viele gute Anleitungen, wie z.B. in der Nitrokey Dokumentation.

Ziel soll hier sein, ein bestehendes Setup mit Thunderbird + PGP/Nitrokey auf die neuste Version des E-Mail-Clients upzudaten. Dabei soll es am Ende immer noch möglich sein, E-Mail mit Hilfe des Nitrokeys zu verschlüsseln, ohne dass die privaten PGP-Keys im Benutzerprofil von Thunderbird gespeichert sind.

Gezeigt wird das Vorgehen beispielhaft auf einer Windows-Maschine, die Schritte sollten aber analog auch auch anderen Systemen (Linux) funktionieren. Unter macOS funktioniert dies im Prinzip auch, hier muss aber noch eine Besonderheit beachtet werden (s.u.).

Vorbereitung: Backup des Thunderbird-Profils

Bevor das Update von Thunderbird durchgeführt wird, sollte auf jeden Fall ein Backup erstellt werden. Dies ist wichtig, falls bei dem Update wider Erwarten doch etwas schief gehen sollte. Denn Thunderbird unterstützt kein Downgrade, ein einmal upgedatetes Profil kann nicht mehr in älteren Versionen von Thunderbird genutzt werden.

Dieser Artikel erklärt dabei ausführlich, wie ein Backup des Benutzer-Profils angelegt werden kann.

Thunderbird: Update auf Version 78

Nach diesen Vorbereitungen kann das Update auf die neuste Version von Thunderbird gestartet werden. Dazu ruft man wie gewöhnlich über das Menü Hilfe > Über Thunderbird auf. Hier sollte dann das Update angeboten werden.
Im konkreten Fall erfolgt das Update auf Thunderbird 78.4.0.

Nach einem Neustart von Thunderbird merkt man nun erst einmal nicht wirklich viel von dem Update. Es kann jedoch sein, dass der Migrations-Assistent von Enigmail erscheint:

Thunderbird: Der Enigmail Migrations-Assistent

Thunderbird: Der Enigmail Migrations-Assistent

Dieser bietet nun an, vorhandene PGP-Keys aus dem GnuPG-Schlüsselbund in das Profil von Thunderbird zu kopieren. Da wir nicht wollen, dass die privaten Keys (inkl. der zugehörigen Passwörter) lokal im Profil gespeichert werden, sollte der Assistent abgebrochen werden.

GnuPG für externe PGP-Keys zulassen

Nach dem Update muss nun Thunderbird erst noch beigebracht werden, wieder mit dem Nitrokey zusammen zu arbeiten. Dazu ist zunächst einmal in den erweiterten Einstellungen eine Variable zu setzen, die die Verwendung externer (GnuPG-)Keys erlaubt.
Hierzu werden die Einstellungen des E-Mail-Clients aufgerufen. Unter Allgemein gelangt man über den Button Konfiguration bearbeiten (ganz unten) zu den erweiterten Einstellungen. Die Warnung, die Thunderbird hier einblendet, muss dazu noch bestätigt werden.

In das Suchfeld geben wir nun mail.openpgp.allow_external_gnupg ein und setzen den Wert mit einem Doppelklick auf true:

Thunderbird: Unterstützung für externe PGP-Keys aktivieren

Thunderbird: Unterstützung für externe PGP-Keys aktivieren

Die eigentliche Verschlüsselung wird nun über die Einstellungen des entsprechenden E-Mail-Accounts eingerichtet (Rechtsklick auf den E-Mail Account in der linken Spalte, Einstellungen und Ende-zu-Ende-Verschlüsselung). Hier sieht man nun, dass kein PGP-Key mehr hinterlegt ist.

Thunderbird: Nach dem Update ist kein PGP-Key für das Konto hinterlegt

Thunderbird: Nach dem Update ist kein PGP-Key für das Konto hinterlegt

Hier klicken wir zuerst auf OpenPGP-Schlüssel verwalten. Im Menü des erscheinenden Dialogs wählt man nun Datei > Öffentliche(n) Schlüssel aus Datei importieren. Hier geben wir nun den öffentlichen PGP-Key an (der private Teil befindet sich ja nach wie vor auf dem Nitrokey).

Hier gilt es zu beachten, dass der (öffentliche) Schlüssel an zwei Stellen im System zu finden ist. Zum einen in der Schlüsselverwaltung von Thunderbird (siehe Extras > OpenPGP-Schlüssel verwalten). Zum anderen ist der Key noch im GnuPG-Schlüsselbund zu finden. Der Zugriff darauf erfolgt mittels der Kommandozeile und dem Programm gpg.

Der öffentliche Schlüssel muss dabei zwingend an diesen beiden Stellen im System bekannt sein. Ist dieser z.B. in Thunderbird hinterlegt, fehlt aber im GnuPG-Schlüsselbund (oder anders herum), wird das Senden verschlüsselter E-Mails nicht funktionieren.

Um den Zugriff über das Programm gpg zu zeigen, ermitteln wir nun als nächstes ID des soeben betroffenen Keys („meine@email.de“ ist hier natürlich durch die eigene E-Mail-Adresse zu ersetzen). Falls die ID bekannt ist, kann dieser Schritt übersprungen werden:

gpg -k meine@email.de

Es erfolgt dann eine ähnliche Ausgabe wie hier:

PGP Key-ID ermitteln

PGP Key-ID ermitteln

Die ID wird dabei durch die letzten 16 Zeichen der Key-Kennung repräsentiert. Diese kopieren wir nun.

Wieder zurück in den E-Mail-Einstellungen in Thunderbird kann nun über die Schaltfläche Schlüssel hinzufügen ein PGP-Key zu den E-Mail-Einstellungen hinzugefügt werden.
Im erscheinenden Dialog wählt man hierzu Externen Schlüssel mittels GnuPG benutzen (z.B. von einer Smartcard):

Thunderbird: Einen externen PGP-Schlüssel hinzufügen

Thunderbird: Einen externen PGP-Schlüssel hinzufügen

Anschließend fügt man den Schlüssel mit der Angabe der Key-ID hinzu:

Thunderbird: Externen PGP-Key mittels Key-ID hinzufügen

Thunderbird: Externen PGP-Key mittels Key-ID hinzufügen

Wichtig: Hier müssen ausschließlich die 16 Zeichen eingegeben werden, die weiter oben ermittelt wurden. Die Eingabe wird dabei von Thunderbird nicht verifiziert, d.h. mit einer falschen Eingabe wird das Versenden von verschlüsselten Nachrichten später nicht funktionieren.

Anschließend starten wir Thunderbird am besten einmal neu.

Nun erfolgt der eigentliche Test. Wir erfassen eine neue E-Mail und wählen im Menü Sicherheit die Option Nur mit Verschlüsselung senden. Dazu muss natürlich der öffentliche PGP-Key des Empfängers auf dem System bekannt sein.

Thunderbird: Verschlüsselung beim Schreiben einer E-Mail aktivieren

Thunderbird: Verschlüsselung beim Schreiben einer E-Mail aktivieren

Vor dem Senden sollte noch sicher gestellt werden, dass der Nitrokey Storage am System angesteckt ist. Beim Senden sollte nun der Dialog erscheinen, der zur Eingabe der PIN des Nitrokeys auffordert.

Thunderbird: Nach der Einrichtung kann der Nitrokey wieder zum Verschlüsseln von E-Mails genutzt werden

Thunderbird: Nach der Einrichtung kann der Nitrokey wieder zum Verschlüsseln von E-Mails genutzt werden

Nach der Eingabe der PIN sollte die E-Mail nun ohne Fehlermeldung verschickt werden.

Am besten testet man dies mit zwei eigenen Mail-Adressen. Hier sieht man dann auf der Empfangs-Seite gleich, ob alles geklappt hat.

Hinweise für Thunderbird unter macOS

Hinweis: Mit der neusten Version von Thunderbird (78.4.2) wurde hier anscheinend etwas geändert und die Nutzung des Nitrokeys funktioniert nun ohne diesen Workaround. Daher ist der folgende Abschnitt nicht mehr aktuell und gilt nur noch für ältere Versionen von Thunderbird.

Unter macOS gibt es leider noch einen Fehler: Wurde Thunderbird wie im Artikel gezeigt auf die Zusammenarbeit mit dem Nitrokey konfiguriert, erscheint beim Senden von verschlüsselten E-Mails trotzdem eine wenig aussagekräftige Fehlermeldung:

Fehlermeldung in Thunderbird unter macOS wenn eine verschlüsselte E-Mail gesendet werden soll

Fehlermeldung in Thunderbird unter macOS wenn eine verschlüsselte E-Mail gesendet werden soll

Kurz daraufhin stürzt Thunderbird z.T. auch ab und es kann eine Absturzbericht gesendet werden.

Hier gibt es allerdings einen Workaround: Thunderbird muss hier über die Kommandozeile gestartet werden. Dazu öffnet man zunächst das Terminal und navigiert in das entsprechende Verzeichnis. Anschließend kann Thunderbird hier gestartet werden:

cd /Applications/Thunderbird.app/Contents/MacOS 
./thunderbird-bin

Mit einer auf diese Art und Weise gestarteten Instanz funktioniert nun auch das Verschlüsseln/Senden von E-Mails mit dem Nitrokey.
Einziger Nachteil an der Sache: Da das Programm über das Terminal geöffnet wurde, bleibt das Terminal offen, während Thunderbird läuft.

Hoffentlich wird hier bald ein Update von Thunderbird veröffentlicht, mit dem dieser Fehler behoben wird.

Fazit

Mit einem Nitrokey Storage ist bei der E-Mail-Verschlüsselung mittels PGP stets sicher gestellt, dass der private Key nirgends (außer auf dem Nitrokey selbst) gespeichert ist. Dies macht PGP-Verschlüsselung einfach und komfortabel.

Das aktuelle Update von Thunderbird torpediert dieses Konzept leider ein wenig: Ziel war hier eindeutig, die PGP-Verschlüsselung so einfach wie möglich zu machen. Der Weg, den öffentlichen und privaten Schlüssel nebst Passphrase auf der lokalen Maschine zu speichern, halte ich dabei Seitens der Sicherheit für ziemlich bedenklich.

Für Nutzer eines Nitrokeys für die Verschlüsselung von E-Mail sind hier nach dem Thunderbird-Update ein paar Nacharbeiten notwendig, anschließend kann der Key aber wieder wie gewohnt verwendet werden.

Wie steht ihr zur Verschlüsselung von E-Mails mittels PGP? Nutzt ihr dies bereits aktiv – vielleicht sogar mit einem Nitrokey – oder habt ihr vor, euch mit dem Thema auseinander zu setzen? Hinterlasst mir dazu doch einfach einen Kommentar.

Weiterführende Artikel

Links

, , , , , ,

Kommentare: 4

  • Rudi sagt:

    Vielen Dank für diesen Artikel. PGP war auch vor Thunderbird 78 nicht besonders kompliziert einzustellen. Daher finde ich die Implementierung in 78 nicht wirklich gut. Die Usability steigt nicht sehr, dagegen sinkt die Security und Functionality int TB stark ab.

    Ist es für eine Umkehr NACH dem Update auf v78 inklusive PGP-Konfiguration noch nicht zu spät? Mal sehen, ob ich nur hinterher meine privaten Keys aus TB 78 wieder herausbekomme und das mit meinem ganz neuen Nitrokey noch sicher „gebacken“ bekomme.

    Dank und Gruß von Rudi

    • Jan sagt:

      Hi Rudi,

      wenn das Update auf 78 schon durchgelaufen ist (inkl. Übernahme der Keys), dann am besten die entsprechenden Keys komplett aus Thunderbird entfernen. Dann in einem zweiten Schritt die (externen) Keys hinzufügen.

      Gruß,
      Jan

  • David sagt:

    Hallo Jan,

    leider funktioniert das Versenden von verschlüsselten Emails durch den NitroKey nicht. Könntest du mir bei der Fehlerbehebung behilflich sein? Und zwar habe ich den NitroKey Pro 2 und habe nach der Anleitung von Mike Kuketz die PGP-Keys auf dem NitroKey verschoben. Wenn ich nun also in Thunderbird alles so einstelle wie du es hier beschreibst, wird beim Versenden zwar der PublicKey in der Email angehängt, aber die Aufforderung zum Angeben meines Passwortes/Pin zum entschlüsseln der Keys wird mit der Fehlermeldung „Senden der Nachricht fehlgeschlagen“ abgebrochen. Ich habe den aktuellen Thunderbrid installiert und auch die neuste Version von Gpg4win. In Kleopatra werden die Keys auch auf dem Nitrokey angezeigt. Wie kann ich Logs einsehen, die das Problem eingrenzen? Vielen Dank für deine ganzen Anleitungen und Mühen!

    • Jan sagt:

      Hi David,

      da ich aktuell gar nicht mehr unter Windows unterwegs bin, kann ich das Problem leider nicht wirklich nachvollziehen. Zum Thema Logging könnte das hier recht interessant sein.

      Gruß,
      Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.