Inhalt

  1. Hintergrundwissen
    1. Das asymmetrische Prinzip
    2. Signaturen
    3. Vertrauen
  2. Software

E-Mail-Verschlüsselung mit GnuPG

E-Mails, die auf herkömmliche, unverschlüsselte Weise verschickt werden, vergleicht man nicht zu unrecht mit den von der herkömmlichen Post bekannten Postkarten. Der Inhalt der Nachricht ist nicht vor nicht feststellbaren Zugriffen durch Dritte geschützt. Abhilfe dagegen schafft die Verwendung einer Ende-zu-Ende-Verschlüsselung etwa mit GnuPG, wie sie in diesem Artikel vorgestellt werden soll.

Vorweg sei gesagt, dass die Postkartenmetapher zwar sehr eingängig ist, aber nicht in Gänze der Realität entspricht. Die meisten Mailserver — also die Systeme, die in die Übertragung von E-Mails involviert sind — nutzen heute untereinander eine sog. „Transportverschlüsselung“, d.h. sie sichern durch temporäre Verschlüsselung die E-Mail, während sie zwischen zwei Mailservern übertragen wird. Angriffe auf den eigentlichen Datenübertragungsvorgang sind damit erschwert. Jedoch liegt die E-Mail auf den involvierten Mailservern jeweils wieder im Klartext vor, weshalb dieser Mechanismus die E-Mail weder vor Kenntnisnahme durch die Betreiber dieser Mailserver noch vor Kenntnisnahme durch Personen, die sich Zugang zum Mailserver verschaffen, schützt. Aus diesem Grunde ist die Postkartenmetapher noch immer illustrativ genug, um die Notwendigkeit von Ende-zu-Ende-Verschlüsselung zu verdeutlichen.

Ende-zu-Ende-Verschlüsselung bezeichnet das Konzept, eine Nachricht auf dem eigenen Rechner so zu verschlüsseln, dass diese dann über beliebige, potenziell unsichere Transportkanäle verschickt werden kann, eine Entschlüsselung aber nur dem legitimen Empfänger am anderen Ende möglich ist. So ist sichergestellt, dass niemand — nicht einmal die Administratoren der zwangsläufig involvierten Mailserver — den Inhalt der Kommunikation nachvollziehen kann. Das bekannteste Verfahren zur Umsetzung einer solchen Ende-zu-Ende-Verschlüsselung ist OpenPGP, und die bekannteste Software zur Umsetzung dieses Verfahrens ist GnuPG.

Die folgenden Abschnitte informieren darüber, wie Ende-zu-Ende-Verschlüsselung zur Sicherung der Privatsphäre eingesetzt werden kann. Sie befassen sich zunächst mit dem erforderlichen Hintergrundwissen, danach mit der Umsetzung anhand von E-Mail-Verschlüsselung.

I. Hintergrundwissen

1. Das asymmetrische Prinzip

PGP ist das unter Privatpersonen bekannteste Verfahren zur Verschlüsselung von E-Mails. Daneben existiert ein zweites standardisiertes Verschlüsselungsverfahren, S/MIME, welches jedoch aufgrund der entstehenden Kosten in der Regel nur für Unternehmen interessant ist und welches sich zudem Sicherheitsbedenken aufgrund der gewählten Struktur ausgesetzt sieht. Ich empfehle daher die ausschließliche Verwendung von PGP.

PGP basiert auf sogenannter „asymmetrischer Kryptographie“, was sich einschüchternder anhört, als es eigentlich ist; die komplexen mathematischen Details sind für die Verwendung unerheblich. Das Verfahren beruht im wesentlichen auf zwei sogenannten „Schlüsseln“, die mathematisch miteinander zusammenhängen, ohne jedoch nach dem aktuellen Stand von Wissenschaft und Technik auseinander berechenbar zu sein. Es handelt sich im Wesentlichen um Zahlen mit besonderen Eigenschaften.

Die zwei Schlüssel bezeichnet man gemäß ihrer Verwendung als öffentlichen und privaten Schlüssel, ihre Gesamtheit nennt man Schlüsselpaar. Der öffentliche Schlüssel ist, wie der Name andeutet, jedermann bekanntzugeben, von dem man eine Nachricht empfangen können will. Den privaten Schlüssel dagegen muss man absolut geheim halten, ein Zugriff eines Unbefugten ist gleichbedeutend mit der Aufhebung der Verschlüsselung durch den Unbefugten.

Merke: Der private Schlüssel darf niemals in fremde Hände gelangen.

Ein Beispiel. Angenommen, Alice möchte dem ebenfalls PGP benutzenden Bob eine verschlüsselte E-Mail-Nachricht schreiben. Dazu benötigt Alice zunächst Bobs öffentlichen Schlüssel, mit welchem sie dann die an Bob gerichtete Nachricht verschlüsselt (unter der Haube findet eine besondere mathematische Berechnung statt). Das Ergebnis dieser Verschlüsselung schickt sie dann an Bob.

Die besondere mathematische Natur des Schlüsselpaars bewirkt, dass eine mit einem öffentlichen Schlüssel verschlüsselte Nachricht ausschließlich mit dem korrespondierenden privaten Schlüssel entschlüsselt werden kann — einmal verschlüsselt, ist die Nachricht damit für alle außer den Inhaber des privaten Schlüssels unlesbar, einschließlich des Absenders. In dieser Besonderheit liegt der Grund weshalb der private Schlüssel unbedingt geheim gehalten werden muss, wohingegen der öffentliche Schlüssel für jedermann einsehbar sein kann und muss.

Nachdem Bob die Nachricht erhalten hat, nutzt er daher seinen privaten Schlüssel, um die von Alice verschlüsselte Nachricht wieder zu entschlüsseln. Will er antworten, so benötigt er spiegelbildlich nun Alice’ öffentlichen Schlüssel, mit dem er seine Nachricht verschlüsselt. Danach schickt er sie an Alice. Nach erhalt muss sie die Nachricht mit ihrem privaten Schlüssel wieder entschlüsseln.

2. Signaturen

Im obigen Beispiel gibt es ein Problem. Der Verschlüsselungsvorgang hinterlässt keine Informationen darüber, wer die Nachricht verschlüsselt hat. Daraus folgt, dass ein böswilliger Dritter — nennen wir ihn Oskar — Alice’ Nachricht an Bob abfangen und durch seine eigene ersetzen könnte, die er natürlich unter ihrem Namen versendet. Bob hat im obigen Beispiel keine Möglichkeit, die Fälschung zu entdecken.

Diese Problematik lässt sich unter Nutzung der ohnehin bereits vorhandenen Schlüsselpaare von Alice und Bob lösen. Tatsächlich funktionieren die Schlüssel nämlich keineswegs nur in eine Richtung, sondern können genauso gut umgekehrt angewandt werden, d.h. man „verschlüsselt“ eine Nachricht mit dem privaten Schlüssel, sodass sie anschließend mit dem öffentlichen Schlüssel entschlüsselt werden kann. Dieses Verfahren bezeichnet man nicht als Verschlüsselung (was unsinnig wäre, weil der Zielschlüssel ja öffentlich für jedermann zugänglich ist), sondern als digitale Signatur. Dahinter steckt die Methodik, dass nur der Inhaber des privaten Schlüssels allein dazu in der Lage ist, eine Nachricht zu erstellen, die mit dem öffentlichen Schlüssel entschlüsselbar ist. Niemand anders kann eine auf einen bestimmten öffentlichen Schlüssel passende Nachricht erstellen.

Kombiniert man nun beide Ansätze, so signiert man die Nachricht zunächst, indem man sie mit dem eigenen privaten Schlüssel „verschlüsselt“. Danach verschlüsselt man sie mit dem öffentlichen Schlüssel des Empfängers, hier Bob. Erhält Bob die Nachricht, so muss er sie zunächst mit seinem eigenen privaten Schlüssel entschlüsseln. Danach muss er sie noch ein weiteres Mal „entschlüsseln“, nämlich mithilfe von Alice’ öffentlichem Schlüssel.

Da Oskar bei Abfangen der Nachricht weder über Alice’ noch über Bobs privaten Schlüssel verfügt, ist es ihm nicht möglich, glaubwürdig unter Alice’ Namen aufzutreten. Bob könnte die Nachricht nämlich nicht mit Alice’ öffentlichen Schlüssel entschlüsseln.

Hinweis: In der Praxis ist das dargestellte Verfahren sehr (rechen-)aufwendig und wird daher nicht genau so durchgeführt wie hier beschrieben. Stattdessen wird vor Absendung der Nachricht aus ihrem Inhalt eine Prüfsumme generiert und danach diese Prüfsumme signiert. Bob berechnet dann nach Empfang der Nachricht und Entschlüsselung derselben mit seinem privaten Schlüssel seinerseits die Prüfsumme aus dem Inhalt und vergleicht sie mit derjenigen in der digitalen Signatur. Stimmen sie überein, ist die Nachricht unverändert und stammt definitiv von Alice. Oskar kann nämlich kein Zeichen an der Nachricht ändern, ohne, dass die Prüfsumme sich ändert.

Endlich kann man auch eine Nachricht „nur“ signieren, ohne sie zu verschlüsseln. Das ist dann sinnvoll, wenn die Gegenseite keine Verschlüsselung unterstützt, man aber sichergehen will, dass die Nachricht nicht auf dem Transportwegen (abgefangen und) verändert wird.

3. Vertrauen

Jedermann kann sich ein Schlüsselpaar erstellen, das auf einen beliebigen Namen lautet. So kann jeder sich in wenigen Minuten ein auf Angela Merkel lautendes Schlüsselpaar erstellen. Deswegen ist er nicht Angela Merkel.

Wenn Bob jetzt eine Nachricht an die Bundeskanzlerin schreiben will, sucht er nach ihrem öffentlichen Schlüssel. Er findet dann zwanzig öffentliche Schlüssel mit dem Namen „Angela Merkel“. Welches ist der Richtige, also derjenige, zu dessen zugehörigem privaten Schlüssel wirklich nur die Bundeskanzlerin Zugang hat? Nicht anders liegt es, wenn Bob Alice eine Nachricht schicken will. Hat auch Oskar einen Schlüssel unter ihrem Namen veröffentlicht, kann Bob nicht feststellen, welches der „echte“ öffentliche Schlüssel ist. Verschlüsselt er mit dem falschen öffentlichen Schlüssel, so kann Oskar sie ohne weiteres entschlüsseln.

Zur Lösung dieses Problems gibt es zwei Möglichkeiten. Die vorzugswürdigere ist, dass Alice und Bob sich einmal im echten Leben treffen und gegenseitig die öffentlichen Schlüssel austauschen. Danach weiß jeder, welcher der „echte“ öffentliche Schlüssel ist und Oskar hat verloren.

Es ist aber nicht immer praktikabel, sich lokal zu treffen. Daher bedarf es einer externen Autorität, die bescheinigt, dass Schlüssel 2 derjenige von Bob ist und Schlüssel 1 daher wohl eine Fälschung bzw. Identitätsanmaßung ist und die ihrerseits sichergestellt hat, dass der Schlüssel zur Person passt.

Eine solche externe Autorität könnte etwa der Staat sein oder eine kommerzielle Firma, die sich gegen Entgelt verpflichtet, die Echtheit von Personen (üblicherweise anhand amtlicher Ausweise) festzustellen und darüber dann ein Zertifikat erteilt, das sie mit dem öffentlichen Schlüssel verbindet. Diesen Weg geht etwa das S/MIME-Verfahren. OpenPGP bzw. GnuPG speziell ist jedoch getragen von einem grundlegenden Misstrauen gegen zentrale Autoritäten; denn wer sagt, dass nicht die zentrale Autorität kompromittiert wurde oder gar böswillig handelt (etwa aufgrund einer freundlichen Aufforderung eines gewissen US-amerikanischen Geheimdienstes)? Speziell nichtstaatliche Zertifizierungsstellen sind auch schon schlicht Opfer krimineller Attacken geworden und sind daher per se als unsichere Informationsquelle einzustufen.

GnuPG bietet als Lösungsvorschlag das Web of Trust an. Dieses „Netz des Vertrauens“ funktioniert idealerweise so, dass jeder Teilnehmer die öffentlichen Schlüssel seiner Bekannten beglaubigt und diese Beglaubigungen öffentlich macht. Beglaubigt nun jeder der Bekannten seinerseits die Schlüssel seiner Bekannten, sowie deren jeweilige Bekannte wiederum diejenigen ihrer noch weiteren Bekannten usw. so entsteht lawinenartig ein Netz vertrauenswürdiger Beglaubigungen. Natürlich kann und soll es passieren, dass ein Einzelner von mehreren seiner Bekannten beglaubigt wurde — je mehr Beglaubigungen er vorweisen kann, umso wahrscheinlicher ist es, dass es sich wirklich um seinen Schlüssel handelt. Dadurch werden die üblichen menschlichen Fehler ausgeschlossen.

Zwar ist theoretisch jeder mit jedem bekannt, praktisch nimmt aber leider nicht jeder an asymmetrischen Verschlüsselungsverfahren teil, weswegen der Ansatz mit den Bekannten zum Scheitern verurteilt ist. Herausgekommen ist im Laufe der Jahre ein Mischsystem, in dem sich PGP-Enthusiasten auf sogenannten „Keysigning Parties“ treffen und gegenseitig ihre amtlichen Lichtbildausweise kontrollieren sowie diese mit dem Gegenüber abgleichen. Ist der Ausweis in Ordnung, so wird der öffentliche Schlüssel beglaubigt. Dadurch entsteht ein hohes Maß an Glaubwürdigkeit, durch das von Kriminellen erstellte öffentliche Schlüssel zuverlässig ausgeschlossen werden können, wenn der öffentliche Schlüssel des Empfängers eine ausreichende Anzahl von Beglaubigungen aufweist (wie viele es sein müssen, muss jeder für sich entscheiden). Keine Gewährleistung bietet es jedoch gegen staatliche Akteure, die sich einen Ausweis einfach fälschen lassen können; hier hilft nur das persönliche Treffen. Es mag den Regisseuren und Filmskriptschreibern überlassen sein, zu beschreiben, wie ein solches Treffen auszugestalten ist, um sicherzustellen, dass das Gegenüber nicht in Wahrheit ein Double ist.

Technisch sind Beglaubigungen übrigens einfach nur mit dem privaten Schlüssel des Beglaubigenden signierte Nachrichten des Inhalts „ich beglaubige, dass dieser Schlüssel wirklich zu der Person gehört, die draufsteht“. Auf sie finden die oben beschriebenen Regeln ganz normal Anwendung.

II. Software

Die Nutzung von PGP bedarf der Unterstützung durch die eingesetzte E-Mail-Software. Bei einigen E-Mail-Diensten ist das im Webinterface möglich (auch bei Phönixmail), allerdings wird bei dieser Variante der private Schlüssel auf dem Anbieterserver gespeichert, sofern nicht ein besonderes Browser-Addon zum Einsatz kommt, das die Schlüsselspeicherung übernimmt. Man muss also auf die Sicherheit des Anbieterservers vertrauen. Besser ist es, dieses Gefahrenpotential durch Verwendung von lokaler E-Mail-Software auf dem lokalen PC zu vermeiden. Dazu wird das populäre E-Mail-Programm „Thunderbird“ empfohlen, dessen weitere Einrichtung für PGP in einem separaten Artikel beschrieben wird. Konsolenfans finden auch eine Anleitung für die Nutzung von PGP mit der GnuPG-Kommandozeile.

Hinweis: Wenn ich irgendwann einmal dazu komme, ergänze ich hier weitere Anleitungen für andere E-Mail-Programme. So ist es jedenfalls auch möglich, PGP mit „Microsoft Outlook“ zu verwenden, weshalb man nicht allein deswegen zu „Thunderbird“ wechseln muss.

Hinweis: Die serverseitige PGP-Funktion ist derzeit nicht verfügbar.