Links neben jedem Blogbeitrag oder auf unserer Kontaktseite gibt es eine Reihe von Möglichkeiten, wie man mit uns Kontakt aufnehmen kann. Darunter findet sich auf ein Link zu einem sogenannten OpenPGP-Schlüssel. Was das ist und was man damit anfangen kann, soll dieser Blogbeitrag erklären.

Kurz gesagt verbirgt sich dahinter eine Möglichkeit, uns verschlüsselte Mails zu schreiben. Neben S/MIME ist OpenPGP eine verbreitete Möglichkeit, (nicht nur) Mails zu verschlüsseln. Unterscheiden muss man hier zwischen der sogenannten Transportverschlüsselung und der Ende-zu-Ende-Verschlüsselung.

Die Transportverschlüsselung bezieht sich, wie der Name schon sagt, auf den Transport der Mail zwischen dem Mailprogramm (Thunderbird, Outlook, Apple Mail etc.) und dem Mailserver. Wenn man also seine neuen Mails vom Server abruft, sind die Daten auf dem Weg zwischen Server und Mailprogramm verschlüsselt. Dazu wird typischerweise Transport Layer Security oder TLS verwendet (ältere Versionen waren bekannt als Secure Sockets Layer oder SSL). Ein ganz ähnliches Verfahren wird verwendet, wenn die Übertragung zwischen einem Webserver und einem Webbrowser verschlüsselt abgewickelt wird - erkennbar am Protokoll https statt http in der URL. Auch hier wird TLS verwendet. Und wie die Verwendung von HTTPS ist die Transportverschlüsselung bei Mails längst Standard.

Die Ende-zu-Ende-Verschlüsselung (End-to-End-Encryption, auch E22-Encryption genannt) unterscheidet sich davon. Hier sind die Mails den gesamten Weg zwischen dem Mailprogramm des Absenders und dem Mailprogramm des Empfängers verschlüsselt, eben von einem bis zum anderen Ende. Wie bei vielen Verschlüsselungssystemen braucht man dazu einen Schlüssel, genauer gesagt ein Schlüsselpaar.

Viele werden noch aus der Kindheit die sogenannte Cäsar-Verschlüsselung kennen. Die soll tatsächlich schon Gaius Julius Cäsar benutzt haben, um seine militärische Korrespondenz geheim zu halten. Das Verfahren ist sehr einfach: Um vom Klartext zum Geheimtext zu kommen, wird jeder Buchstabe durch den Buchstaben ersetzt, der im Alphabet zum Beispiel drei Stellen weiter kommt. Aus jedem A wird also ein D, aus jedem F ein I, aus jedem S ein V und so weiter. Die Entschlüsselung läuft genau umgekehrt: Jeder Buchstabe des Geheimtexts wird durch den Buchstaben ersetzt, der im Alphabet drei Stellen davor kommt.

Der Schlüssel ist also die Zahl, um die man im Alphabet weiter- bzw. zurückgeht, in unserem Beispiel einfach die Zahl 3. Wichtig ist hier zu beachten, dass zum Verschlüsseln und zum Entschlüsseln derselbe Schlüssel verwendet wird. Die Cäsar-Verschlüsselung ist also eine sogenannte symmetrische Verschlüsselung. Viele heute aktuelle Verschlüsselungsverfahren sind jedoch asymmetrisch: Zum Verschlüsseln und zum Entschlüsseln werden unterschiedliche Schlüssel verwendet, die gemeinsam ein Schlüsselpaar bilden.

OpenPGP verwendet eine solche asymmetrische Verschlüsselung. Dabei gibt es für jeden Benutzer (technisch, für jede Mailadresse) ein Schlüsselpaar. Dieses Paar besteht aus einem öffentlichen Schlüssel (public key), der öffentlich bekannt sein darf und soll. Der andere Teil ist der geheime Schlüssel (private key), der eben geheim bleiben muss und oft zusätzlich durch ein Passwort geschützt wird. Der öffentliche und der geheime Schlüssel eines Schlüsselpaars hängen auf eine ziemlich komplexe Weise mathematisch zusammen, sind aber eben nicht identisch.

Mit einem solchen Schlüsselpaar kann man zwei interessante Dinge tun: Man kann mit ihnen Daten, zum Beispiel den Inhalt einer Mail, verschlüsseln und wieder entschlüsseln. Und man kann mit ihnen Daten signieren, und diese Signatur dann überprüfen. Eine Signatur soll sicherstellen, dass sie von einer bestimmten Person (dem Inhaber des Schlüsselpaars) stammt, und dass die verschlüsselten Daten seit dem Signieren nicht geändert wurden.

Hier soll uns wie gesagt vor allem die Verschlüsselungsfunktion interessieren. Um jemandem eine verschlüsselte Mail zu schicken, braucht man den öffentlichen Schlüssel dieser Person. Den kann man von einem sogenannten Schlüsselserver (key server) herunterladen. Der oben erwähnte Link auf unserer Homepage führt zu einem solchen Schlüsselserver, nämlich keys.openpgp.org. Eine andere Möglichkeit ist, den eigenen öffentlichen Schlüssel sozusagen in ausgehenden Mails mitzuschicken mittels Autocrypt. Den kann der Empfänger dann verwenden, um dem Absender verschlüsselt zu antworten. Daneben gibt es natürlich viele weitere Möglichkeiten. Entscheidend ist, dass man an den öffentlichen Schlüssel des gewünschten Adressaten kommt.

Wenn man eine Mail mit dem öffentlichen Schlüssel des gewünschten Adressaten verschlüsselt hat, wird der entstandene “Buchstabensalat” wie gewohnt verschickt. An den ursprünglichen Inhalt kann der Empfänger kommen, indem er umgekehrt seinen geheimen Schlüssel benutzt. Beim Signieren läuft es gerade umgekehrt: Man signiert mit seinem eigenen geheimen Schlüssel, und andere können diese Signatur mit dem dazugehörigen öffentlichen Schlüssel überprüfen.

Wie läuft das jetzt in der Praxis ab? Das erklären wir am Beispiel des Mailprogramms Mozilla Thunderbird. Für andere Mailprogramme muss man die entsprechenden Anleitungen, Foren etc. konsultieren.

In den Konten-Einstellungen von Thunderbird geht man zum gewünschten Konto und dort zum Punkt “Ende-zu-Ende-Verschlüsselung”. Im Abschnitt “OpenPGP” kann man einen Schlüssel hinzufügen. In dem Dialog, der sich dann öffnet, kann man wahlweise einen neuen Schlüssel erzeugen, einen vorhandenen Schlüssel importieren oder einen externen Schlüssel (etwa von einer Smartcard) verwenden. Hier erzeugen wir einen neuen OpenPGP-Schlüssel.

Im folgenden Dialog können wir einige Eigenschaften des Schlüssels festlegen. Der Schlüssel sollte nicht zu lange gültig sein - nur für den Fall, dass irgendetwas passiert und der Schlüssel für ungültig erklärt werden muss. Die drei Jahre, die Thunderbird vorschlägt, sind ein guter Richtwert. Den Schlüsseltyp kann man auf RSA lassen, bei der Schlüsselgröße sollte man das Maximum, aktuell 4096 Bits, wählen. Im folgenden Bildschirm kann man dann den Schlüssel erzeugen. Das kann einige Minuten dauern.

Jetzt kann man den eben erzeugten Schlüssel exportieren, um an einem sicheren Ort eine Kopie aufzubewahren. Dazu klappt man den Eintrag für den neuen Schlüssel im Abschnitt “OpenPGP” auf und wählt im Auswahlmenu “Mehr” den Eintrag “Sicherheitskopie für geheimen Schlüssel erstellen”. Beim Exportieren fordert Thunderbird dazu auf, eine Passphrase einzugeben. Das ist im Prinzip ein Passwort, das mit dem Schlüssel verknüpft wird. Diese Passphrase muss man später parat haben, wenn man die Sicherheitskopie verwenden will. Man sollte sie also beispielsweise in der Passwortverwaltung ablegen.

Im nächsten Schritt kann man mit Hilfe eines Angebots der Free Software Foundation testen, ob alles soweit geklappt hat. Und zwar schreibt man dazu eine Mail an edward-de@fsf.org. Das ist ein automatischer Service, der verschlüsselte Mails annimmt und überprüft. Im Zweifel wird Thunderbird warnen, dass kein Schlüssel für diese Adresse bekannt ist. Denn wie oben erklärt, brauchen wir für eine verschlüsselte Mail den öffentlichen Schlüssel des Empfängers. Den bekommt man in diesem Fall, indem man auf “Beheben” klickt und dann auf “Schlüssel online finden”. Dann sucht Thunderbird auf den einschlägigen Schlüsselservern nach einem passenden Schlüssel. Den gefundenen Schlüssel muss man noch akzeptieren.

Jetzt können wir Roboter Edward eine verschlüsselte Mail schreiben. Im Fenster, in dem die Mail geschrieben wird, muss man darauf achten, dass der Button “Verschlüsselung” aktiviert ist. Im Auswahlmenu “OpenPGP” kann man festlegen, welche Features verwendet werden sollen. Mindestens zum Testen sollte man alle drei aktivieren, “Verschlüsseln”, “Betreff verschlüsseln” und “Digital signieren”. Wenn Edward die Mail bekommen hat, sollte er kurz darauf mit einer Antwortmail reagieren. Die bestätigt hoffentlich, das alles geklappt hat.

Als letzten Schritt können wir noch den öffentlichen Schlüssel auf den Schlüsselserver keys.openpgp.org hochladen. Dazu geht man erneut in die Konten-Einstellungen, zum gewünschten Konto und dem gewünschten Schlüssel, und klickt auf den Button “Veröffentlichen”. Nach einiger Zeit sollte man eine Bestätigungsmail vom Keyserver bekommen, dass der öffentliche Schlüssel erfolgreich eingetragen wurde.

Jetzt kann man einfach verschlüsselte Mails empfangen und die eigenen ausgehenden Mails signieren.