“Darf ich Ihre privaten Mails lesen?” säuselt eine nette Dame in der Werbung, um gleich im Anschluss E-Mail-Verschlüsselung per De-Mail anzupreisen – reine Augenwischerei: Wer sicher per E-Mail kommunizieren möchte, braucht Ende-zu-Ende-Verschlüsselung mit GnuPG.
Das Post- und Fernmeldegeheimnis gehört zu den elementaren Grundsätzen, deren Einhaltung die Bewohner eines Rechtsstaates erwarten dürfen. Wer in Deutschland lebt, sollte mit Fug und Recht annehmen können, dass ein Brief nicht schon gelesen wurde, bevor der Briefträger ihn zustellt. Das im Grundgesetz verankerte Briefgeheimnis schützt jede schriftliche Mitteilung vor den Blicken Dritter. Bei der digitalen Kommunikation gelten eigentlich vergleichbare Regeln, doch spätestens seit den Enthüllungen Edward Snowdens steht zweifelsfrei fest, dass sich in- wie ausländische Geheimdienste wenig für nationale Gesetze interessieren.
Auch Strafverfolgungsbehörden agieren regelmäßig so, als heilige der Zweck jedes Mittel. Auch staatliche Initiativen wie De-Mail erwecken eher den Anschein oberflächlicher Augenwischerei als eines ernsthaften Bemühens um sichere und verschlüsselte Kommunikation via Internet (Kasten “Gar nicht sicher”). Immerhin: Als Nutzer digitaler Kommunikation stehen Sie dem staatlichen Treiben wenigstens nicht ohnmächtig gegenüber.
E-Mails wandern im Grunde wie Postkarten für jeden lesbar durchs Netz. Schon 1991 entwickelte daher der bei Symantec angestellte IT-Sicherheitsspezialist Phil Zimmermann mit Pretty Good Privacy oder kurz PGP ein solides Verfahren, um E-Mails sicher zu verschlüsseln. Inzwischen nimmt PGP unter dem Namen OpenPGP die Funktion eines offenen Standards ein, den das von der Free Software Foundation entwickelte GnuPG für alle gängigen Betriebssysteme umsetzt. Im Folgenden zeigen wir, wie GnuPG funktioniert und wie Sie den E-Mail-Client Thunderbird so einrichten, dass Sie abhörsicher mit anderen kommunizieren können.
Gar nicht sicher
Eigentlich sollten wir uns als Bürger freuen, wenn der Staat nicht nur ein Interesse an sicherer Kommunikation signalisiert, sondern sich auch um deren Umsetzung bemüht. Dass staatliches Interesse nicht immer zu einer besseren Gesamtsituation führt, demonstriert nun aber De-Mail sehr deutlich. Der Sicherheitsspezialist Linus Neumann vom Chaos Computer Club betitelte De-Mail auf dem 30. Chaos Communication Congress recht drastisch als “Bullshit made in Germany” [9]. An dem schlechten Ruf sind die Unternehmen, denen der Bund die Implementation von De-Mail übertrug, nicht ganz unschuldig.
Im Grunde bezeichnet der Begriff De-Mail nur ein Gesetz, das die verschiedenen technischen Grundlagen für De-Mail verankert. Das Gesetz sieht zwar ein Verschlüsseln der Kommunikation vor, allerdings nur bezüglich des Transportwegs. Damit eine E-Mail ihr Ziel erreicht, muss Sie vom Mailserver des Absenders zum Server des Empfängers gelangen. Die Server stehen meist in unterschiedlichen Rechenzentren, die auf verschiedenen Wegen miteinander verbunden sind. Das Internet besitzt hier im Grunde einen eingebauten Kompass, der dafür sorgt, dass Datenpakete stets den Weg von Server A zu Server B finden. Dabei nehmen die Pakete eventuell aber einen Weg, der über Rechenzentren führt, die zu völlig anderen Anbietern gehören.
Die Transportverschlüsselung, die De-Mail nun vorsieht, bezieht sich nur und ausschließlich auf eben den Weg, den eine Mail vom Absender zum Empfänger hinter sich bringen muss. Anders formuliert: De-Mail verschlüsselt nicht die Mail, sondern nutzt lediglich Leitungen, die einer Verschlüsselung unterliegen. Wer die Leitung anzapft, kann die E-Mail also nicht mehr ohne Weiteres lesen. Doch wer physikalischen Zugriff auf die Computer des Absenders, des Empfängers oder einem der beteiligten Internet-Router auf dem Weg der Mail erlangt, sieht die Nachricht nach wie vor im Klartext. Genau dagegen hilft ausschließlich eine Verschlüsselung von Ende zu Ende.
Es wäre durchaus ein legitimer Wunsch, hätten die De-Mail-Anbieter stärker auf den Faktor der Ende-zu-Ende-Verschlüsselung aufmerksam gemacht oder – besser noch – erzwungen, dass Tools wie GnuPG eine integrale Komponente von De-Mail wären. Mittlerweile ist diese Diskussion allerdings Ärger über vergossene Milch: Nutzer müssen nach wie vor selber für eine sichere und verschlüsselte Kommunikation sorgen.
So funktioniert PGP
PGP basiert auf einem Public-Key-Verfahren, und schon das bringt einige Implikationen mit sich. Jeder, der am PGP-System teilnimmt, besitzt ein für ihn spezifisches Paar aus zwei digitalen Schlüsseln: Einen privaten Schlüssel, den nur der Besitzer selber kennen darf, und einen öffentlichen Schlüssel, den alle sehen und den Sie daher an alle Ihre Kommunikationspartner weitergeben dürfen.
Wollen nun Alice und Bob, die Besitzer zweier PGP-Schlüsselpaare, privat und verschlüsselt miteinander kommunizieren, geht das so: Zum Austausch der öffentlichen Schlüssel (der Key-IDs) treffen sich die zwei am besten persönlich. So gehen Alice und Bob sicher, dass die Key-IDs nicht von Ganoven beim Transfer über das Kabel manipuliert wurden.
Alice verschlüsselt die E-Mail mit dem öffentlichen Schlüssel von Bob. Zudem nutzt sie ihren eigenen privaten Schlüssel für eine digitale Signatur der E-Mail – quasi eine Unterschrift. Die Nachricht lässt sich jetzt nur noch mit Bobs privatem Schlüssel öffnen. Obendrein hat Bob die Gewissheit, dass die E-Mail tatsächlich von Alice kommt, denn nur sie kann mit ihrem privaten Key eine gültige Signatur leisten.
Öffentlicher und privater Schlüssel verhalten sich zueinander also quasi wie Schloss und Schlüssel einer Schatulle. Indem Alice die Nachricht mit dem öffentlichen Schlüssel von Bob verschlüsselt, rastet das Schloss der Schatulle ein und nur Bob kann es mit dem privaten Schlüssel wieder öffnen. Mallory, der die Schatulle unterwegs abfängt, sieht nur die Schatulle, aber nicht deren Inhalt.
Das beschriebene System beruht auf der Annahme, dass die Teilnehmer einer Kommunikation sich persönlich kennen, ihre Identität überprüft und ihre Key-IDs untereinander ausgetauscht haben. Je mehr Teilnehmer das System nutzen, desto sicherer lässt sich innerhalb dieses Netzes kommunizieren. Deshalb hat sich für das Netzwerk der GnuPG-Teilnehmer der Name Web of Trust etabliert.
Aller Anfang ist schwer
Die Mathematik hinter GnuPG ist hochgradig komplex, Sie als Anwender müssen sich darum allerdings nicht kümmern. Sie benötigen lediglich einen E-Mail-Client wie Mozilla Thunderbird mit dem GnuPG-Plugin Enigmail. Freilich existieren auch andere Mail-Clients, die GnuPG beherrschen: KDEs KMail oder Evolution aus der Gnome-Desktop-Umgebung wären brauchbare Alternativen. Im folgenden Beispiel konzentrieren wir uns allerdings auf die plattformübergreifend funktionierende Kombination aus Thunderbird, Enigmail und eben GnuPG.
Bevor es allerdings an das Versenden von E-Mails geht, steht ein wenig GnuPG-Basisarbeit auf dem Stundenplan: Sie benötigen erst einmal ein Schlüsselpaar aus öffentlichem und privatem Schlüssel. Dazu wiederum brauchen Sie GnuPG auf dem Rechner. Es lässt sich in Form des Pakets gnupg bei allen gängigen Distributionen bequem via Paketmanager aus den Repositories einrichten.
Der eigene Schlüssel
Für GnuPG existieren gleich mehrere grafische Frontends; allerdings gibt es kein offizielles Programm, das auf allen Betriebssystemen und Desktops dieselbe Oberfläche bietet. Ein geeignetes Schlüsselpaar für GnuPG lässt sich aber auch auf der Kommandozeile mittels des Programms gpg erstellen. Wir nutzen im weiteren Verlauf diese Möglichkeit, um den Prozess generisch für so viele Systeme wie möglich zu beschreiben. Zum Erzeugen des Schlüsselpaares öffnen Sie also ein Terminalfenster. Dort rufen Sie zum Erstellen Ihres persönlichen Schlüssels Gpg mit der Option --gen-key auf:
$ gpg --gen-key
Die von Haus aus aktive Antwort im ersten Dialog, DSA und RSA (voreingestellt), geht im Normalfall in Ordnung: Drücken Sie also einfach die Eingabetaste (Abbildung 1). Anschließend geben Sie die kryptografische Länge des neuen GPG-Schlüssels an. Die Zahl definiert buchstäblich die Anzahl der Zeichen des Schlüssels. Grundsätzlich gilt: Je länger der Schlüssel, desto mehr Zeit braucht es, ihn zu brechen. Höhere Werte gelten daher als ein Plus an Sicherheit. Kritiker werfen zwar ein, dass es im Alltag dann auch etwas länger dauert, eine E-Mail zu signieren oder zu verschlüsseln. Angesichts der CPU-Kraftprotze der Gegenwart dürfte dieses Argument heute aber kaum noch einen Unterschied machen. Sie sollten auch einen Blick in die Zukunft werfen: Was heute als gut verschlüsselt gilt, lässt sich vielleicht schon übermorgen mit überschaubarem Aufwand knacken. Wir empfehlen daher eine Key-Länge von 4096 Bit (Abbildung 2).
Im nächsten Dialog geht es darum, wie lange Ihr neuer Key gelten soll. Auf den ersten Blick wäre es an dieser Stelle bequem, die Gültigkeit auf Unendlich zu setzen. Bedenken Sie aber, dass es durchaus Situationen gibt, in denen es gar nicht schlecht ist, wenn Ihr Schlüssel automatisch seine Gültigkeit verliert. Geht Ihnen etwa der private Teil Ihres Schlüssels verloren und Sie verfügen über kein Zertifikat, mit dem sich ein Schlüssel händisch widerrufen ließe (dazu später mehr), bliebe der Schlüssel unendlich lange im Netz vorhanden. Besitzt er hingegen ein Ablaufdatum, verschwindet er automatisch aus den Datenbanken. Möchten Sie auf Nummer sicher gehen, wählen Sie als Gültigkeitsdauer daher mit 1y einen Zeitraum von einem Jahr aus. Mithilfe des privaten Schlüssels können Sie später die Gültigkeit des Keys jederzeit beliebig verlängern.
Danach geben Sie Ihre persönlichen Daten ein: Ihren Namen, die Adresse, unter der Sie mit diesem Key E-Mails empfangen möchten, und eventuelle Anmerkungen oder Spitznamen. Danach folgt das Wichtigste: das Passwort, das den neuen Schlüssel schützt. Es gelten die üblichen Hinweise: Nicht den Namen der Frau, nicht das Geburtsdatum der Kinder und nicht das eigene Auto-Kennzeichen. Kombinationen aus thematisch nicht zusammenhängenden Wörtern eignen sich gut, weil sie sehr lange Passwörter ergeben. Das durch einen Xkcd-Comic [1] sehr berühmt gewordene correct horse battery stable ist hierfür ein gutes Beispiel.
Anschließend generiert Gpg den neuen Schlüssel. Der Algorithmus benötigt dafür jede Menge Entropie – vereinfacht also Zufallszahlen. Um genügend Zufall zu kreieren, öffnen Sie einen Browser und schauen Sie darin ein Video oder bewegen Sie den Mauszeiger einige Male über den Bildschirm. Nach ein paar Minuten verabschiedet sich Gpg, und der neue GPG-Schlüssel liegt auf der Festplatte. Notieren Sie sich die ID des Schlüssels. Sie finden sie in der Zeile pub hinter 4096R/, in unserem Beispiel lautet die Key-ID 11F89B27 (Abbildung 3).

Abbildung 3: Sobald Gpg ausreichend Zufallsdaten zur Verfügung stehen, liegt der Schlüssel fertig auf der Festplatte.
Damit andere Personen Ihnen nun verschlüsselte Post zusenden können, laden Sie den öffentlichen Teil Ihres Schlüssels mit der Option --send-keys (Listing 1, erste Zeile) auf einen GPG-Key-Server hoch. Möchten Sie einen speziellen Key-Server nutzen, dann geben Sie diesen zusätzlich mit der Option --keyserver an (zweite Zeile). Als zuverlässiger Key-Server gilt etwa jener des MIT unter pgp.mit.edu. Die Key-Server gleichen Ihre Daten in kurzen Zeitabständen miteinander ab, Sie müssen daher nicht zwingend einen bestimmten Server nutzen.
Listing 1
$ gpg --send-keys Key-ID $ gpg --send-keys Key-ID --keyserver Key-Server
Enigmail für Thunderbird
Um den frisch angelegten GPG-Schlüssel zu nutzen, bringen Sie nun Ihren Thunderbird-E-Mail-Client auf Vordermann. Dazu installieren Sie das GnuPG-Plugin Enigmail [2] als Erweiterung. Sie ziehen die XPI-Datei der Erweiterung entweder per Drag & Drop in den Addon-Manager des Programms oder laden Enigmail direkt über den Erweiterungsmanager herunter, genauso wie Sie es von Firefox kennen (Abbildung 4). Manche Distributionen führen Enigmail zudem auch in den Paketquellen.
Enigmail ist ab Werk recht schlau und erledigt die Konfiguration der GnuPG-Verschlüsselung mehr oder minder automatisch. Die Standardeinstellungen des Einrichtungsassistenten übernehmen Sie unverändert. Verfügen Sie nur über einen privaten GnuPG-Schlüssel, nimmt Enigmail automatisch an, dass dieser Schlüssel zu Ihnen gehört. Ihnen obliegt nun als einzige Aufgabe, den eingelesenen GnuPG-Schlüssel mit einer der vorhandenen Thunderbird-Identitäten zu verbinden. Öffnen Sie dazu aus dem Menü Einstellungen die Konten-Einstellungen und wählen Sie den für PGP zu nutzenden Account aus. Dort setzen Sie unter OpenPGP-Sicherheit den Haken für OpenPGP-Unterstützung (Enigmail) für diese Identität aktivieren.
Anschließend bestimmen Sie in den Standard-Einstellungen für das Verfassen von Nachrichten, ob Enigmail über dieses Konto versendete Mails generell signieren oder gar verschlüsseln soll. Alternativ bestimmen Sie das bei jeder neuen Mail über einen Klick auf den Enigmail-Button (Abbildung 5).

Abbildung 5: Enigmail ist nach der Einrichtung in Thunderbird aktiv und gibt Ihnen die Möglichkeit, die Verschlüsselung für jede E-Mail zu bestimmen.
GnuPG im Alltag
Möchten Ihnen Bekannte und Verwandte künftig verschlüsselte E-Mails zusenden, brauchen sie dafür nur die ID Ihres Schlüssels. Sobald in Ihrem Thunderbird-Postfach eine verschlüsselte Mail auftaucht, kümmert sich Enigmail automatisch um die Entschlüsselung und bittet zum Dechiffrieren der E-Mail um die Eingabe des Passworts Ihres privaten Schlüssels.
Ähnlich verhält es sich, wenn Sie anderen eine verschlüsselte Mail senden möchten: Damit Enigmail anhand der E-Mail-Adresse des Empfängers automatisch den passenden Public-Key zur Verschlüsselung wählt, organisieren Sie sich den öffentlichen Schlüssel des Gegenübers über einen Key-Server. Auf der Kommandozeile geschieht das wieder mit dem Gpg-Befehl, diesmal mit der Option --recv-keys (Listing 2, erste Zeile). Alternativ suchen Sie über --search-keys nach dem Namen oder der E-Mail-Adresse des Empfängers (Listing 2, Zeilen 2 und 3). Durch Eingabe der Nummer des jeweiligen Treffers importieren Sie den Schlüssel.
Listing 2
$ gpg --recv-keys Key-ID $ gpg --search-keys 'Max Mustermann' $ gpg --search-keys email@max-mustermann.de
Wollen Sie Ihren Schlüssel um zusätzliche Adressen erweitern oder eine im Schüssel eingetragene E-Mail-Adresse entfernen, dann bietet Gpg die Möglichkeit, die im Key eingetragenen Informationen zu bearbeiten. Auf der Kommandozeile gelangen Sie mit der Option --edit-keys gefolgt von der Key-ID zum entsprechenden Dialog (Listing 3, erste Zeile).
Listing 3
$ gpg --edit-key Key-ID $ gpg --send-keys Key-ID
Eine neue Adresse fügen Sie an dieser Stelle mit dem Kommando adduid hinzu. Die anschließenden Schritte gleichen denen beim Anlegen des ersten Schlüssels. Am Ende verlassen Sie GnuPG mit save (Abbildung 6). Vergessen Sie nicht, den aktualisierten Schlüssel erneut auf einen Public-Key-Server zu laden, damit Dritte auch die Aktualisierungen mitbekommen (Listing 3, zweite Zeile). Über deluid entfernen Sie alternativ eine vorhandene ID aus Ihrem Schlüsselbund. Das Kommando help liefert Informationen zu den jeweiligen Befehlen.

adduid um zusätzliche Identitäten erweitern.” width=”300″ height=”169″ />
Abbildung 6: Ein vorhandener Schlüssel lässt sich mittelsadduid um zusätzliche Identitäten erweitern.Schlüssel signieren
Bei der Arbeit mit GnuPG wird Ihnen wahrscheinlich gelegentlich auffallen, dass GnuPG von vertrauenswürdigen oder nicht vertrauenswürdigen Schlüsseln spricht. In die letztere Kategorie fallen dabei all jene Schlüssel, die Sie importiert, aber noch nicht selber signiert haben. Bevor Sie den Schlüssel einer anderen Person signieren, sollten Sie unbedingt deren Identität feststellen – lassen Sie sich dafür zum Beispiel ein amtliches Ausweisdokument wie den Personalausweis oder den Führerschein zeigen. Anschließend signieren Sie den Schlüssel dann:
$ gpg --sign-key Key-ID
Um die Reputation Ihres Schlüssels im Web of Trust zu erhöhen, bietet sich zudem die Möglichkeit, Key-Signing-Partys zu besuchen (Linux- und Open-Source-Messen wie die Chemnitzer Linux-Tage [3] führen solch ein Angebot oft im Programm), Ihren Schlüssel im Rahmen der c’t-Krypto-Kampagne [4] zertifizieren zu lassen oder alternativ über Biglumber [5] andere PGP-Benutzer in Ihrer Umgebung zu finden.
Gibt es Grund zur Annahme, dass Ihr Schlüssel kompromittiert sein könnte, sollten Sie ihn schleunigst widerrufen. Gelingt es etwa einem Dieb, Ihren Laptop zu stehlen oder bricht auch nur jemand in Ihr Zuhause ein, muss der Schlüssel grundsätzlich als gefährdet gelten – schon allein deshalb, weil die Gefahr besteht, dass ein anderer außer Ihnen Zugriff darauf gehabt haben könnte.
Es empfiehlt sich, für solche Fälle ein Widerrufszertifikat bereitzuhalten. Sie erstellen es mit der Option --gen-revoke, wobei die Option --output Gpg veranlasst, das Zertifikat in eine Datei zu schreiben (Listing 4). Sichern Sie das File revert.asc anschließend so, dass niemand Zugriff auf die Datei bekommt. Ein Safe oder ein Bankschließfach wären etwa gute Aufbewahrungsorte.
Listing 4
$ gpg --gen-revoke Key-ID --output revcert.asc $ gpg --import revert.asc $ gpg --send-keys Key-ID
Im Falle eines Falles importieren Sie das Zertifikat mit --import in den Schlüsselbund und senden danach den Schlüssel anschließend an einen öffentlichen Key-Server. Der Schlüssel gilt danach als ungültig und fliegt von allen Key-Servern.
Missionsarbeit
Der im Text beschriebene Weg mittels GnuPG, Enigmail und Thunderbird funktioniert nicht nur unter Linux. Auch in Mac OS X verschlüsseln Sie mit dieser Kombination und den zusätzlichen GPG-Tools für Mac OS X [6] Ihre Mails. Für Windows stellt das Gpg4Win-Projekt [7] eine GnuPG-Implementation bereit.
Auch zu Thunderbird gibt es Alternativen: Der Mailclient aus Mac OS X beherrscht mit dem passenden Plugin [8] nativ GnuPG, und auch für Windows gibt es weitere GnuPG-taugliche Mailprogramme. Die größte Hürde stellt meist nicht die Technik dar, sondern einzig der Wille, sich mit dem Thema E-Mail-Verschlüsselung auseinanderzusetzen.
Die Erfahrungen des Autors zeigt aber auch, dass ein wenig missionarischer Eifer der Verbreitung von GnuPG dient. Im konkreten Fall dient das tatsächlich einer guten Sache: Je besser PGPs Web of Trust funktioniert, umso schwieriger fällt es Dritten, Daten abzuschnorcheln.
Der Autor
Martin Gerhard Loschwitz arbeitet als Cloud Architect bei SysEleven in Berlin. Er beschäftigt sich dort mit verteilten Speicherlösungen und OpenStack. In seiner Freizeit pflegt er den Linux-Cluster-Stack für Debian GNU/Linux.
Infos
[1] “Password Strength”: http://xkcd.com/936/
[2] Enigmail für Thunderbird: https://addons.mozilla.org/de/thunderbird/addon/enigmail/
[3] Key-Signing auf den CLT: http://chemnitzer.linux-tage.de/2014/de/addons/pgp
[4] c’t-Krypto-Kampagne: http://www.heise.de/security/dienste/Krypto-Kampagne-2111.html
[5] Biglumber: http://biglumber.com
[6] GPG-Tools für Mac OS X: https://gpgtools.org
[7] Gpg4win: http://www.gpg4win.de
[8] GPG-Tools: https://gpgtools.org
[9] “Bullshit made in Germany”: http://media.ccc.de/browse/congress/2013/30C3_-_5210_-_de_-_saal_g_-_201312282030_-_bullshit_made_in_germany_-_linus_neumann.html








