Emailverschlüsselung mit GnuPG

Zunächst: Nein, es ist nicht paranoid, Email-Kommunikation verschlüsselt abzuwickeln. Emails werden im Klartext versendet, so dass auf jedem der Server, der eine Email weiterleitet, die Email gelesen werden kann. Niemand würde einen Liebesbrief auf eine Postkarte schreiben, sondern ihn in einen Briefumschlag stecken. Mit Hilfe von OpenPGP ist dieser Briefumschlag sogar ein Safe, allerdings ein äußerst leichter, so dass der Inhalt nur mit Hilfe sehr aufwändiger Technik gelesen werden kann.

Dies soll eine einfache Anleitung für Einsteiger in die verschlüsselte E-Mail-Kommunikation mit GnuPG sein. Ziel ist es, GnuPG zu installieren und die Funktionsweise zu verstehen, sowie die Implementierung von GnuPG in verschiedene E-Mail-Programme durchzuführen.

  1. Installation unter Windows

    Wie installiere ich GnuPG in Windows? Welche grafischen Oberflächen gibt es?
  2. Wie installiere ich GnuPG unter Linux?
  3. Schlüsselverwaltung

    Wie erzeuge ich einen eigenen Schlüssel? Wie kann ich öffentliche Schlüssel anderer Personen verwenden?
  4. E-Mail-Verschlüsselung mit Mozilla Thunderbird

    Wie kann ich mit Hilfe von Mozilla Thunderbird verschlüsselte Emails verschicken?

GnuPG (GNU Privacy Guard) ist ein OpenSource-Programm, das auf dem Standard OpenPGP (PGP = Pretty Good Privacy) basiert. Damit können Dokumente asymmetrisch verschlüsselt werden. Asymmetrische Verschlüsselung bedeutet, dass jeder mit einem öffentlichen Schlüssel eine Zeichenkette verschlüsseln kann, die Entschlüsselung jedoch nur mit dem zugehörigen privaten Schlüssel möglich ist. Dies mag auf den ersten Blick etwas verwirrend klingen, wird aber durch folgendes Bild vielleicht verständlich: Eine Primfaktorzerlegung von 7663 ist für einen durchschnittlichen Menschen ohne technische Hilfsmittel schwierig durchzuführen, während die Berechnung von 79·97 im Kopf durchgeführt werden kann.

Außerdem kann mit Hilfe des privaten Schlüssels ein Dokument signiert werden, so dass eine nachträgliche Änderung durch einen Dritten entdeckt werden und der ursprüngliche Autor identifiziert werden kann. Dies geschieht mit Hilfe des öffentlichen Schlüssels.

Für Aktionen, für die ein privater Schlüssel erforderlich ist, muss noch ein Passwort eingegeben werden.

Installation unter Windows

Zunächst muss das Programm GnuPG selbst installiert werden. Über http://www.nullify.org/download.html kann man die aktuelle Version von GnuPG für Windows entweder als Installationsdatei oder als zip-Archiv downloaden. Nach der Installation ist das Programm voll einsatzfähig, allerdings nur in einer Kommandozeilenversion. Über die Eingabe von gpg –help in der Eingabeaufforderung erhält man sämtliche Optionen und ihre Erklärung.

Was zunächst umständlich klingt, hat durchaus seine Vorteile: Jeder kann jetzt eigene Programme schreiben, die auf die Optionen von GnuPG zurückgreifen und diese ausführen. Das Plugin Enigmail für Mozilla Thunderbird greift nur auf eine bereits existierende Installation zurück und führt sie mit diversen Optionen aus. Dies ist ein typisches Verhalten für generische Linux-Programme.

Eine grafische Oberfläche für das Programm muss also zusätzlich installiert werden, um das Programm angenehmer bedienen zu können. Hierfür gibt es für Windows mindestens zwei Möglichkeiten: Zum einen WinPT, für das bereits eine gute Anleitung auf deutsch vorhanden ist, zum anderen GPGShell, das ich hier kurz vorstellen möchte. Welche der beiden GUI (Graphical User Interface) man verwendet, ist Geschmackssache.

GPGShell kann man von ftp://ftp.elf.stuba.sk/pub/pc/security/ downloaden. Aktuell ist die Version 3.45 als gpgsh345.zip erhältlich. Nach dem Entpacken der Datei kann mit Aufruf der Datei GPGShell.exe das Programm installiert werden. Empfohlen ist die Option „Full Installation“.

Nach der Installation und einem Neustart können unterschiedliche Aufgaben erledigt werden: GPGShell ist für die Schlüsselverwaltung zuständig, während mit GPGTools einzelne Dateien ver/entschlüsselt und signiert werden können. Näheres dazu beim Punkt Schlüsselverwaltung.

Installation unter Linux

Die meisten Linux-Distributionen liefern GPG bereits mit. Sollte man sich nicht sicher sein, sollte man bei Debian-basierten Distributionen (Debian, DeMuDi, Ubuntu, Knoppix, Kanotix) als root in der Kommandozeile apt-get install gnupg durchführen. Ist bereits die neueste Version installiert, so liefert das apt-get zurück, ansonsten installiert es GnuPG. Sinnvoll ist es auch, die Paketinformationen vorher mit apt-get update neu zu laden. Natürlich geht dies alles auch über eine grafische apt-Oberfläche wie Aptitude oder Synaptic.
Sollte wider Erwarten kein Paket vorhanden sein, so kann man über die APT-Paketsuche danach suchen und die Pakete dann mit dem Aufruf von dpkg –install paketname.deb installieren.

Da ich persönlich keine RPM-basierte Distribution (RedHat, SuSE, Mandrake) verwende, kann ich keine Angaben zur Installation von RPM-Paketen liefern.

Wer das Paket für seine Distribution nicht findet oder sich lieber GnuPG selbst kompilieren möchte, kann sich den Quellcode von der Webseite des Projekts downloaden.

Schlüsselverwaltung

Nach der ersten Installation muss man zunächst ein neues Schlüsselpaar generieren, um einen eigenen Schlüssel zu besitzen. Ein Paar heißt, einen privaten und einen zugehörigen öffentlichen Schlüssel. Letzteren (und nur letzteren) muss man Personen zugänglich machen, die über GnuPG bzw. PGP kommunizieren möchten. Zusätzlich muss man die Schlüssel von Kommunikationspartnern in den eigenen „Keyring“ importieren. Dies wird in diesem Abschnitt der Anleitung erläutert.

Falls man eine grafische Oberfläche für GnuPG installiert hat, kann dies über den Aufruf von „Neues Schlüsselpaar generieren“ oder ähnliches geschehen. Sollte dies nicht der Fall sein, funktioniert es auch über den Aufruf von „gpg –gen-key“ in einer Kommandozeile (Linux) oder Eingabeaufforderung (Windows). Man wird dann aufgefordert, die Art des Schlüssels zu wählen. Um einen Schlüssel zu erhalten, der sowohl die Verschlüsselung als auch für das Signieren von Dokumenten erlaubt, wählt man DSA und ElGamal.

Die Schlüssellänge für ElGamal ist eine Frage der persönlichen Vorlieben: Je kürzer der Schlüssel, umso leichter geht die Verschlüsselung von statten, allerdings ist dann auch das Knacken des Schlüssels mit einer „Brute-Force-Attacke“ leichter. 1024 Bit sind i.d.R. ausreichend und können nicht mit einer realistischen Infrastruktur geknackt werden. Um sich jedoch für die Zukunft abzusichern, kann man im nächsten Schritt die Gültigkeitsdauer des Schlüssels begrenzen.

Nach Eingabe weiterer Daten wie Name und Email-Adresse bleibt noch die Auswahl eines Passworts. Auch hier gilt wieder die allgemeine Regel für Passwörter: Je länger und zufälliger desto besser. Erst danach wird der Schlüssel generiert, d.h. das Passwort ist im privaten Schlüssel selbst als Sicherheitsmaßnahme enthalten. Bei der Generierung des Schlüssels werden vom Computer pseudo-zufällige Zahlen verwendet, deren Zufälligkeit man durch Aktivitäten wie Tippen und Mausklicks während der Erzeugung verbessern kann.

Wenn man sich die Schlüssel in einem entsprechenden GUI ansieht, dürfte ein Schlüsselpaar auftauchen. Will man anderen Personen den eigenen öffentlichen Schlüssel zugänglich machen, kann man den Schlüssel auf einen Schlüsselserver exportieren, von dem aus andere den Schlüssel dann wieder in ihren Schlüsselring importieren können. Man kann auch Schlüssel als ASCII exportieren und in Dateien speichern bzw. per Email versenden.

Öffentliche Schlüssel anderer Personen importieren geht ähnlich: Entweder die Schlüssel von einem Schlüsselserver laden oder sie aus einer Text-Datei oder Email importieren.

Vorsicht: Nur weil ein Schlüssel zu einer Email-Adresse gehört, bedeutet es nicht automatisch, dass der Besitzer der Email-Adresse den Schlüssel generiert hat. Eine dritte Person könnte den Schlüssel erzeugt haben, um Daten abzufangen, die für eine andere Person bestimmt sind. Um dies auszuschließen gibt es ein Verfahren von Schlüssel-Signaturen, wonach öffentliche Schlüssel von anderen Personen signiert werden können, auf deren Signatur man sich wiederum verlässt. Ein Schlüssel kann dabei von beliebig vielen anderen in verschiedene Vertrauensstufen eingeteilt werden.

E-Mail-Verschlüsselung mit Mozilla Thunderbird

Wir gehen davon aus, dass GnuPG bereits installiert ist und funktioniert. Man könnte Textdateien mit GnuPG verschlüsseln und diese Dateien als Anhänge versenden und das Kapitel wäre abgeschlossen. Bequemer ist es aber, die Emails automatisch aus dem Programm heraus zu verschlüsseln. Bei Mozilla Thunderbird geht es mit der Erweiterung Enigmail. Die Datei enigmail.xpi downloaden und unter dem Menüpunkt Tools > Extensions importieren.

Nach der Installation Thunderbird beenden und neu starten, um einige Einstellungen für Enigmail vorzunehmen. Dies geschieht über den jetzt neuen Menüpunkt Enigmail > Preferences. Unter GnuPG executable path den Pfad zu GnuPG eintragen, unter Windows meist C:gnupgpgp.exe, unter Linux /usr/bin/gpg.

Weitere Einstellungen sind i.d.R. nicht notwendig, jedoch sollte man Enigmail testen, indem man auf den Reiter Debugging klickt und sich selbst eine Test-Email schreibt. Nach Eingabe des Passworts wird eine Email an die eingegebene Adresse verschickt, die man dann vom Server abrufen kann und – wenn alles gut gegangen ist – auch entschlüsseln kann. Willkommen in der Welt der sicheren Email-Kommunikation.

 Autor: Thomas Mayer
 Veröffentlichung: 10. Juli 2005
 Kategorie: Bericht
 Tags:

Schreibe einen Kommentar