Monatlich greift der US-Geheimdienst etwa eine halbe Milliarde Verbindungsdaten und E-Mails alleine an deutschen Backbones ab. Ein guter Grund, sich über einen sicheren E-Mail-Verkehr Gedanken zu machen.
Wer E-Mails unverschlüsselt versendet, der sollte sich bewusst machen, dass jeder diese mitlesen kann, der sich in den Datenstrom eingreift oder ihn anzapft. Nicht zuletzt deswegen fordert sogar das Deutsche Innenministerium dazu auf, die Kommunikation zu chiffrieren. Zwei Verfahren zur E-Mail-Verschlüsselung setzten sich im Laufe der Jahre durch: S/MIME und Open-PGP. Bei beiden handelt es sich um offen dokumentierte Standards, die deshalb und wegen ihrer Gängigkeit ständig unter der Überwachung viele Sicherheitsexperten stehen.
S/MIME setzt, wie das HTTPS-Protokoll, auf von Zertifizierungs-Authoritys nach Namensprüfung ausgestellte kostenpflichtige Zertifikate. Deshalb kommt es vorwiegend im Firmenumfeld zum Einsatz, während sich OpenPGP in der privaten Kommunikation durchgesetzt hat. Dieser Artikel beschränkt sich daher auf das im Open-Source-Umfeld dominierende OpenPGP, das die freie Software GnuPG [1] unter Linux zur Verfügung stellt.
Einbahnstraße
Beide Verfahren setzen auf die Kombination aus einem öffentlich dokumentierten Verfahren und einem von den eingesetzten Algorithmen unabhängigen Schlüsselcode. Letzterer darf nie an die Öffentlichkeit dringen – passiert das doch einmal, so kann man nach einem Schlüsselwechsel wenigstens alle beteiligten Programme (GnuPG und den E-Mail-Client) beruhigt weiterverwenden.
Wie aber gelangt der Schlüssel sicher vor neugierigen Blicken zu Ihrem Kommunikationspartner? Die Antwort lautet: gar nicht. Im Zeitalter der globalen Überwachung der Telekommunikation wäre dazu nämlich streng genommen ein persönlicher Besuch erforderlich.
Daher benutzt GnuPG die asymmetrische Public-Key-Verschlüsselung. Dabei kommen zwei Schlüssel zum Einsatz, einer zum Verschlüsseln, einer zum Entschlüsseln (Abbildung 1). Dem intuitiven Verständnis erschließt sich gerade noch das zugrunde liegende Prinzip der Falltürfunktion – eine mathematische Funktion, zu der keine mit vertretbarem Aufwand zu errechnende Umkehrfunktion bekannt ist. Die Tiefen des System bleiben Mathematikern mit entsprechender Fachkenntnis vorbehalten.

Abbildung 1: Die Public-Key-Verschlüsselung gleicht einem Schloss, bei dem unterschiedliche Schlüssel auf- und zuschließen. Dass der Schlüssel zum Abschließen (grün) außen an der Tür hängt, ermöglicht keinen Einbruch. Jeder kann ihn nutzen, um abzusperren, doch nur der Besitzer des geheimen privaten Schlüssels (rot) kann wieder aufschließen.
Wichtiger als mathematische Feinheiten ist aber die Rolle der Schlüssel im kryptographischen Prozess: Jeder, der den öffentlichen Schlüssel eines Schlüsselpaars kennt, ist in der Lage, Nachrichten so verschlüsseln, dass sie sich nur mit Hilfe des zugehörigen privaten Schlüssels wieder dekodieren lassen. Den besitzt im Normalfall nur der Empfänger – selbst der Absender kann also die von ihm verschlüsselte Nachricht nicht mehr entschlüsseln.
Bei Open-PGP sorgen Schlüsselserver für globale Verfügbarkeit der öffentlichen Schlüssel. Falls Sie also jemanden eine chiffrierte Mail senden möchten, der dort einen GPG-Schlüssel veröffentlicht hat, müssen Sie lediglich eine Suchanfrage mit der Mailadresse an einen der sich selbständig synchronisierenden Server stellen.
Sicherheitsnetz
Einen Haken hat das System allerdings: Denn jeder darf Schlüssel für eine beliebige E-Mail-Adresse erzeugen und veröffentlichen. Falls Sie eine Mail mit dem falschen Schlüssel chiffrieren, ist dessen vermeintlicher Eigentümer nicht in der Lage, sie wieder zu dechiffrieren, da sein privater Schlüssel nicht zum von Ihnen genutzten öffentlichen Key passt.
Kritisch wird es, wenn es dem Fälscher des Schlüssels gelingt, ihre Mail abzufangen (Abbildung 2), da er ja den passenden geheimen Schlüssel zum Dechiffrieren besitzt. Nach dem Entschlüsseln kann er, um eine erfolgreiche Kommunikation mit dem eigentlichen Adressaten vorzutäuschen, die Mail dann noch mit dem richtigen Schlüssel chiffrieren und weiterleiten – eventuell sogar mit Änderungen im Text. Das entspricht einem sogenannten Man-in-the-Middle-Szenario, das weder Empfänger noch Absender bemerken.

Abbildung 2: Beim Man-in-the-Middle-Angriff schiebt ein Angreifer dem Sender einen gefälschten öffentlichen Schlüssel unter (schwarz-grün) und fängt zugleich die Mail ab. Er entschlüsselt sie mit seinem eigenen zum untergeschobenen passenden privaten Schlüssel (schwarz-rot) und verschlüsselt sie sofort erneut mit dem authentischen öffentlichen Schlüssel (grün). Der Adressat sieht nur die mit dem richtigen Schlüssel chiffrierte Nachricht.
Open-PGP stellt zwei Hilfsmittel zur Verfügung, um die Authentizität von Schlüsseln zu gewährleisten: Jeder PGP-Schlüssel besitzt einen Fingerabdruck aus zehn vierstelligen Hexadezimalzahlen. Da es technisch nicht möglich ist, gezielt einen Schlüssel mit einem bestimmten Fingerabdruck zu erzeugen, bürgt dieser für die Authentizität.
Vor dem Versand sicherheitskritischer Mails sollten Sie bei der ersten Kontaktaufnahme mit dem Kommunikationspartner telefonieren und den Fingerabdruck seines OpenPGP-Schlüssels mit ihm abgleichen. Es nützt Angreifern nichts, die Korrespondenz beim telefonischen Schlüsselvergleich abzuhören, solange sie den Inhalt der Kommunikation nicht manipulieren können. Danach darf der Schlüssel für weitere Nachrichten als vertrauenswürdig gelten.
Das zweite Verfahren, die Authentizität eines Schlüssels zu gewährleisten, ist das Signieren von Schlüsseln durch Dritte, die durch eine solche Unterschrift mit ihrem eigenen Open-PGP-Schlüssel dafür bürgen, dass ein Schlüssel tatsächlich einer Person mit dem darin genannten Namen gehört.
Unterschriften helfen wegen der Fälschbarkeit auch der beglaubigenden Schlüssel nur weiter, wenn Sie diese anhand der Fingerabdrücke Ihnen als vertrauenswürdig bekannten Personen zuordnen können. Technisch garantiert das Unterschriftsverfahren nämlich nur, dass sich bestimmte Fingerabdrücke nicht gezielt erzeugen lassen, sodass diese den Besitz eines bestimmten privaten Schlüssel nachweisen.
Drei Schritte zum Ziel
Um verschlüsselt via OpenPGP/GnuPG per E-Mail zu kommunizieren, gilt es sowohl für den Versender als auch den Empfänger folgende Vorbereitungen zu treffen:
- das Erzeugen eines Schlüsselpaares,
- den Tausch der öffentlichen Schlüssel,
- den Import des öffentlichen Schlüssels des Partners in den eigenen Schlüsselring.
Als Thunderbird-Anwender installieren Sie für den Einsatz von GnuPG die Erweiterung Enigmail [2] über den Addon-Manager der Software (Extras | Add-ons | Add-ons Suchen). Danach erscheint der Eintrag OpenPGP in der Menüleiste, der alle Verschlüsselungs- und Signierfunktionen steuert. In KMail ist die GPG-Funktion bereits fest eingebaut: Sie erreichen sie über Extras | Zertifikatsverwaltung. Beide Programme stellen eine GUI für die im Folgenden beschriebenen Konsolenbefehle bereit.
Der Befehl gpg --gen-key erzeugt ein neues Schlüsselpaar. Das Programm fragt nach Schlüsseltyp und der Schlüssellänge. Die gegenwärtig aus Kompatibilitäts- und Sicherheitserwägungen empfohlen Optionen (RSA/RSA, 2048-Bit) bestätigen Sie mit der Eingabetaste.
Nun legen Sie die Gültigkeitsdauer des Schlüssels fest. Anfänger sollten hier nicht die Voreinstellung 0 = Schlüssel verfällt nie wählen, denn ein einmal veröffentlichter Public Key, dessen zugehörigen privaten Schlüssel Sie verloren haben, lässt sich nicht mehr von den Keyservern zurückholen.
Dann folgt die Eingabe von Name, E-Mail-Adresse, eines (optionalen) Kommentars sowie eines Passworts, ohne das sich der Schlüssel nicht benutzen lässt. Bedenken Sie bei der Vergabe des Passworts: Es fällt Angreifern in der Regel deutlich leichter, ein zu kurz geratenes Passwort zu knacken [3] als eine unkompromittierte 2048-Bit-RSA-Verschlüsselung.
Jetzt generiert das Programm den aus einer 2048 Bit langen Zufallszahlenfolge bestehenden geheimen Schlüssel. Damit diese für Angreifer unvorhersagbar ausfällt, bezieht GnuPG dazu äußere Ereignisse wie die Mausbewegung oder Tastatureingaben in die Berechnung mit ein, sodass das Benutzen von Maus und Tastatur diesen Vorgang beschleunigt.
In der Regel ist das Schlüsselpaar in weniger als einer Minute fertig. GnuPG legt es in ihrem lokalen Schlüsselbund ab. Dort ist es für Thunderbird, KMail und alle Mailprogramme, die GnuPG zur Verschlüsselung einsetzen, verfügbar.
Exportware
Überzeugen Sie sich nun davon, dass der Schlüsselbund die eben erzeugten Schlüssel tatsächlich enthält: Den privaten Teil listen gpg --list-secret-keys oder gpg -K auf, den öffentlichen gpg --list-keys oder gpg -k. Merken Sie sich dabei die ID ihres öffentlichen Schlüssels (rot markiert). Zum Austausch Ihres öffentlichen Schlüssels exportieren Sie diesen zunächst als lokale Datei:
$ gpg -a --export ID > my_pubkey.asc
Die Option -a wählt ASCII-Text als Ausgabeformat, was das Versenden des Schlüssels per Mail erleichtert. Wenn Sie nun ein Kommunikationspartner nach ihrem PGP-Schlüssel fragt, lassen Sie ihm diese Datei zukommen. Das versetzt ihn bereits in der Lage, Ihnen verschlüsselte Mails zu schicken.
Um auch anderen zu ermöglichen, Ihnen ohne Rückfrage verschlüsselte Mails zu schicken, veröffentlichen Sie den Schlüssel auf einem Keyserver:
$ gpg --keyserver hkp://keys.gnupg.net --send-keys ID
Falls Sie sich über das hkp:// wundern: Das ist nicht etwa ein Tippfehler, sondern steht für das HTTP Keyserver Protocol. Es gibt eine ganze Reihe von Schlüsselservern, die gängigen davon synchronisieren sich auch untereinander.
Geschlossene Gesellschaft
Um nun ihrerseits verschlüsselte Mails zu versenden, importieren Sie zuerst den öffentlichen Schlüssel des Adressaten in ihren Schlüsselbund:
$ gpg --import Schlüsseldatei.asc
Die Dateiendung spielt dabei keine Rolle. Liegt Ihnen der Public Key des Kommunikationspartners nicht vor, suchen Sie mit folgendem Kommando auf einem Schlüsselserver danach:
$ gpg --keyserver hkp://keys.gnupg.net --search-keys "Name|E-Mail"
Zum Importieren geben Sie nur die Nummer des Treffers ein. Kennt die Software die ID des zu importierenden Schlüssels bereits, so lädt ihn folgender Befehl direkt in den Schlüsselbund:
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys ID
Bedenken Sie dabei, dass sich wie schon erwähnt Schlüssel mit falscher E-Mail-Adresse oder Namen erzeugen lassen. Das Kommando gpg --fingerprint ID zeigt den Fingerabdruck, den Sie möglichst über einen manipulationssicheren Kommunikationskanal mit dem Empfänger ihrer verschlüsselten Mail abgleichen sollten.
Die Unterschriften eines Schlüssels prüfen Sie mit gpg --check-sigs ID (Abbildung 3). Statt der Schlüssel-ID dürfen Sie auch die E-Mail-Adresse oder den Namen als Suchstring angeben. In der Regel werden sich nicht alle beglaubigenden Schlüssel in ihrem Schlüsselbund befinden (rote Markierung in Abbildung 3). Da ungeprüften Unterschriften unbekannter Personen ohnehin kein beglaubigender Wert zukommt, ignoriert GnuPG diese. Ein Ausrufezeichen kennzeichnet in der Befehlsausgabe dagegen erfolgreich verifizierte Beglaubigungen.

gpg –check-sigs zeigt und prüft die Unterschriften aller im persönlichen Schlüsselbund namentlich bekannten Personen eines Schlüssels.” width=”300″ height=”200″ />
Abbildung 3: Der Aufrufgpg --check-sigs zeigt und prüft die Unterschriften aller im persönlichen Schlüsselbund namentlich bekannten Personen eines Schlüssels.Trau, schau wem
Möchten Sie die Namen aller signierenden Personen herausfinden, so ermitteln Sie mit gpg --list-sigs ID deren Schlüssel-IDs (zweite Spalte in der Befehlsausgabe) und laden die zugehörigen Schlüssel herunter:
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys ID
Eventuell findet sich der Fingerprint der Schlüssel auch auf der Homepage der entsprechenden Personen, was das Fälschungsrisiko verringert. Haben Sie sich entschieden, einen Schlüssel als authentisch zu betrachten, dann öffnen Sie ihn mit gpg --edit ID zum Bearbeiten. Sie signieren ihn für sich persönlich mit lsign (“local sign”) oder mit sign. Um Ihre Signatur später zu veröffentlichen, dient folgender Befehl:
$ gpg --keyserver hkp://keys.gnupg.net --send-keys ID
KMail zeigt beim Verwenden eines nicht signierten Schlüssels eine Warnung an, der Schlüssel lässt sich nach Bestätigung aber trotzdem benutzen. In Thunderbirds Enigmail ist nach der Installation in OpenPGP | Einstellungen die Option Schlüsseln immer Vertrauen aktiv: Es akzeptiert also ungefragt jeden Schlüssel, was sicher nicht im Sinne der GnuPG-Erfinder ist. Nach dem Deaktivieren dieser Einstellung verweigert das Programm das Verwenden unsignierter Schlüssel.
Stehen Sie mit vielen Personen in Mailkontakt, finden Sie es sicherlich lästig, die Schlüssel aller Adressaten zu signieren. Um die Zahl der notwendigen Unterschriften zu reduzieren, bietet OpenPGP das Konzept des “Web Of Trust” (Netz des Vertrauens) an. Dabei sprechen Sie bestimmten Personen, deren Schlüssel in ihrem Schlüsselbund liegen, eingeschränktes oder volles Vertrauen aus. Haben eine für Sie voll vertrauenswürdige oder drei teilweise vertrauenswürdige Personen einen Schlüssel öffentlich unterschrieben, so gilt er auch auf Ihrem System automatisch als signiert.
Sie passen das Vertrauen mit gpg --edit ID an, gefolgt von trust an der GnuPG-Eingabeaufforderung. Den Wert 5 (“absolutes Vertrauen”) verdienen konventionsgemäß nur eigene Schlüssel, der normale Wert für nahe Bekannter liegt zwischen 3 und 4. Mit 2 (“kein Vertrauen”) bewerten Sie Personen, die sie als unzuverlässig einschätzen.
Loslegen
Nach dem Signieren und Integrieren der Schlüssel des Adressaten in den Schlüsselbund gilt es, den E-Mail-Client zu konfigurieren. Sowohl in Thunderbird als auch in KMail müssen Sie dazu lediglich eine Identität mit einem geheimen Schlüssel verknüpfen (Abbildung 4), der zur E-Mail-Adresse der Identität passt. Wenn sich nur ein passender privater Schlüssel im Schlüsselbund befindet, wählt ihn Thunderbird automatisch aus.

Abbildung 4: Nach der Konfiguration von GnuPG brauchen Sie in KMail (oben) und Thunderbird (unten) nur noch pro Identität einen privaten Schlüssel auszuwählen.
Nach diesen Vorbereitungen kostet das Senden einer verschlüsselten Mail nur noch wenige Mausklicks: Wählen Sie vor dem Versenden in Thunderbird OpenPGP | Nachricht verschlüsseln, in KMail Optionen | Nachricht verschlüsseln. Der E-Mail-Client fragt dann noch, ob der auf Basis der Mailadresse gewählte öffentliche Schlüssel der richtige ist. Zum Entsperren des Schlüsselbunds geben Sie zu guter Letzt das Passwort des mit der Identität verknüpften privaten Schlüssels ein.
Erhalten Sie eine verschlüsselte Nachricht, entschlüsselt KMail diese in der Grundeinstellung erst nach einem Klick auf Nachricht entschlüsseln. Thunderbird dechiffriert die E-Mail je nach Format entweder ungefragt oder zeigt den Quelltext der OpenPGP-verschlüsselten Nachricht an. Ein Klick auf Entschlüsseln fördert nach Eingabe des Passworts für den privaten Schlüssels den Klartext zu Tage. Aus offensichtlichen Gründen liegt dieser dann nur lokal auf ihrem Rechner vor, nicht jedoch auf dem Mailserver. Daher müssen Sie die Mails nach dem Neustart des Programms erneut entschlüsseln.
Grund für das je nach Nachricht unterschiedliche Verhalten von Thunderbird sind zwei Verfahren, den mit GnuPG verschlüsselten Text in die Nachricht einzubetten: Das ältere schreibt den verschlüsselten Nachrichtentext in den Mail-Body (“Inline OpenPGP”). Das neuere, OpenPGP/MIME, nutzt die von Dateianhängen bekannten MIME-Typen, führt den verschlüsselten Text also als Attachment vom Typ application/pgp-encrypted. Neuere E-Mail-Programme bieten solche pgp-encrypted-Attachments nicht zum Download an, sondern entschlüsseln den enthaltenen Text und zeigen ihn im Nachrichtenfenster an.
Die Vorteile der MIME-Einbettung: Die Verschlüsselung erfasst versandte Nachrichtenanhänge stets mit und ist für Mailprogramme leichter zu erkennen. Allerdings können alte oder einfach gestrickte Mailclients nicht mit diesem MIME-Typ umgehen.
In KMail wählen Sie unter Optionen | Nachrichtenverschlüsslungsformat zwischen Inline-OpenPGP und OpenPGP/MIME. Bei Thunderbird steht dafür die Option OpenPGP | PGP/MIME verwenden zur Verfügung.
Aufgepasst!
Mit dem Verlust ihres privaten Schlüssels verlieren Sie den Zugriff auf alle bisher an Sie gerichteten verschlüsselten Mails. Ein sicheres Backup des Keys auf einem externen Datenträger ist daher unerlässlich. Am einfachsten sichern Sie dazu die Datei secring.gpg aus dem Verzeichnis ~/.gnupg. Spielen Sie diese in das selbe Verzeichnis auf einer anderen Linux-Installation, so stehen dort die darin enthaltenen privaten Schlüssel zur Verfügung. Um private Keys hinzuzufügen, exportieren Sie diese:
$ gpg --export-secret-keys -a > Geheim.sec
Auf dem importieren sie die privaten Schlüssel mit dem Befehl gpg --import geheim.sec. Um umgekehrt kompromittierte oder nicht mehr ausreichend sichere Schlüssel auf den Schlüsselservern zu entfernen erzeugen Sie ein sogenanntes Revoke-Zertifikat:
$ gpg --gen-revoke ID > revoke.asc
Das importieren Sie mittels des Kommandos gpg --import revoke.asc in ihren Schlüsselbund und exportieren dann den zurückgerufenen Schlüssel auf den Keyserver:
$ gpg --keyserver hkp://keys.gnupg.net --send-keys ID
Der Revoke-Schlüssel sollte im Fall einer Kompromittierung eines veröffentlichten Schlüssels am besten schon vorliegen und darf keinesfalls in falsche Hände gelangen.
Fazit
Die meisten Zeitgenossen schirmen die Fenster zur Straße mit Vorhängen – nicht, um Verbrechen zu verbergen, sondern weil die gewahrte Privatsphäre das Wohnklima verbessert. Die Erkenntnis, dass sich an strategischen Eckpunkten des Internets alle E-Mails abgreifen lassen, müsste sich dank Edward Snowdens mutiger Enthüllung langsam verbreiten.
Klagen von Kommunikationspartnern, die E-Mail-Verschlüsseln als zu umständlich empfinden, sollte man daher mit dem Argument kontern, dass das Einrichtung von GnuPG weniger Mühe bedeutet als die Montage von Vorhangstangen. Wer die Benutzung der Konsole nicht gewohnt ist, kann statt der im Artikel vorgestellten Befehle die leicht bedienbaren grafischen Tools von Thunderbird oder KMail benutzen.
Infos
[1] GnuPG: http://www.gpg4win.de
[2] Enigmail: http://www.enigmail.net
[3] Passwortsicherheit: Tim Schürmann, “Sicherer Zeichensalat”, LU 09/2012, S. 12, http://www.linux-community,de/26415





