sichere E-Mails mit GPG

E-Mails werden im Internet als Klartext versandt. Für jeden mit fortgeschrittenen technischen Kenntnissen ist es also relativ einfach möglich, fremde E-Mails zu lesen oder zu manipulieren (spoofen). Dass auch der Staat gerne mitlesen möchte, darf auch nicht aus den Augen verloren werden und ist meiner Meinung nach ebenfalls ein Misstrauensgrund gegenüber E-Mail. Zwar werden mittlerweile manchmal verschlüsselte Verbindungen (z.B. über SSL) genutzt, doch bleiben die Daten weiterhin unsicher, da sie selbst unverschlüsselt bleiben.
Hier setzt GPG an. Dies ist eine Abkürzung für GNU Privacy Guard und beschreibt eine Methode zur Verschlüsselung der E-Mails bereits auf dem Rechner, die erst wieder beim Empfänger entschlüsselt werden. Dadurch kann die Integrität (= Echtheit) garantiert werden, ebenso ist dies natürlich ein Leseschutz. Doch wie funktioniert dies? Zuerst ein bisschen Theorie, um die Technik verstehen und richtig anwenden zu können:

Gegeben sind der Absender Alice und der Empfänger Bob. Jeder von ihnen hat einen privaten und einen öffentlichen Schlüssel. Den privaten kennt nur der Besitzer und er ist durch ein Passwort geschützt, den öffentlichen verteilt er unter seinen Freunden und bekommt von diesen die jeweiligen.
Alice möchte also Bob eine vertrauliche Nachricht zukommen lassen. Sie schreibt eine E-Mail und verschlüsselt sie mit ihrem privaten Schlüssel und dem öffentlichen Schlüssel von Bob. Dazu muss sie ihren privaten Schlüssel per Passwort freigeben, den öffentlichen von Bob hat sie ebenfalls abgespeichert. Der Computer erzeugt nun einen Text, der unsinnig erscheint. Erst wenn Bob diese E-Mail bekommt und mit seinem privaten Schlüssel öffnet, ist wieder Klartext zu lesen. Alice kann den Text nicht wiederherstellen, dies kann nur Bob, dessen privater Schlüssel als einziger E-Mails entschlüsseln kann, die mit seinem öffentlichen Schlüssel (und natürlich dem privaten des Senders) in Geheimtext umgewandelt wurde.

Jeder benötigt also diese zwei Schlüssel und diese müssen natürlich schwer bzw. in einem nicht zu vertretenden Zeitaufwand (entspricht ein paar Millionen Jahren) zu knacken sein. Mithilfe der freien Software GPG kann nun jeder diese Schlüssel erstellen, verwalten und verteilen.
Als Frontend zur Schlüsselverwaltung unter KDE verwende ich KGpg, das unter anderem auch noch Dateien verschlüsseln kann. Für GMail-Nutzer gibt es das Firefox-Addon FireGPG, das über die Weboberfläche E-mails ver- und entschlüsselbar macht.

Nun habe ich hier noch ein kleines Tutorial für KGpg erstellt, bei anderen Clients sieht dies natürlich prinzipiell gleich aus. Nutzern von gpg direkt in der Konsole seien die manpages empfohlen, hierauf kann und will ich an dieser Stelle nicht weiter eingehen. Nutzern von Windows empfehle ich GPG4win.

Als erstes muss man sich ein neues Schlüsselpaar (privat + öffentlich) über „Schlüssel / Schlüsselpaar generieren“ erstellen lassen. Darauf folgt ein Formular, bei dem man die geforderten Eingaben machen muss (Anfängern sei empfohlen, die Schlüsselgröße und den Algorithmus voreingestellt zu lassen):

Neuen Schlüssel erstellen

Neuen Schlüssel erstellen

Als nächstes muss man ein Passwort für den privaten Schlüssel festlegen (welches natürlich sicher sein sollte), dann muss man eine Weile warten bis die Schlüssel errechnet werden. Es wird ein weiteres Fenster angezeigt, in dem Details des erzeugten Schlüssels ersichtlich werden und wo man die Möglichkeit hat, einen Schlüssel später für ungültig zu erklären. Dies geschieht dann mittels eines Sperrzertifikats, welches nun erstellt werden kann.

Schlüsselerstellung abgeschlossen

Schlüsselerstellung abgeschlossen

Die Schlüssel sind jetzt soweit fertig und können benutzt werden. Um sie zu verteilen, muss man den öffentlichen Schlüssel über „Schlüssel / Öffentliche Schlüssel exportieren“ natürlich exportieren. Das kann entweder in eine Datei, die Zwischenablage, in eine E-Mail oder einen Schlüsselserver geschehen. Ein Schlüsselserver ist eine zentrale Verwaltungsstelle für öffentliche Schlüssel, wo man diese bekommt, wenn der Kommunikationspartner diesen nicht persönlich überbringen kann. Hier sollte man aber vorsichtig sein (Spamgefahr!) und Schlüsselserver nur begrenzt benutzen. Eine Datei hingegen kann jederzeit persönlich versandt werden und ist daher auch mein persönlicher Favorit.

Export der öffentlichen Schlüssels

Export der öffentlichen Schlüssels

Der Import funktioniert über „Schlüssel / Schlüssel importieren“. Importierte Schlüssel werden erst einmal als nicht vertrauenswürdig eingestuft. Dies kann man ändern, indem man sich über einen sicheren (sicher im Sinne von fälschungssicher) Kanal, z.B. eine Telefonverbindung, vom Inhaber des importierten Schlüssels den Fingerprint vorlesen lässt. Dies ist eine Prüfsumme und wenn die vorgetragene mit der angezeigten übereinstimmt, ist der Schlüssel tatsächlich echt und kann als vertrauenswürdig eingestuft werden. Diesen Fingerprint kann man sich auch über die Schlüsseleigenschaften ansehen, welche über einen Rechtsklick auf den betreffenden Schlüssel erreicht werden.

Signieren des fremden Schlüssels

Signieren des fremden Schlüssels

Noch ein paar Hinweise zu FireGPG. Wer das Plugin im Firefox installiert und für GMail aktiviert hat, kann man Mails über neue Links im Fenster nun auch verschlüsseln, signieren etc. Dies nutze ich meist, wenn ich Mails verschlüssele und kann es empfehlen, so sieht dies dann aus:

neue Links zum Versenden vom Mails

neue Links zum Versenden vom Mails

Nun kann man also sicher kommunizieren. Für weitere Tutorials etc. bitte die weiterführenden Links lesen bzw. Google befragen. Mit GnuPG kann man Mails sowohl verschlüsseln als auch signieren, also beweisen, dass die Mail nicht verändert wurde und vom Absender stammt, doch die Beschreibung hierzu würde den Rahmen sprengen. Mit ein bisschen Übung kann man aber relativ einfach selbst herausfinden wie dies funktioniert 😉

Meinen persönlichen public-Key kann man über eine Mail an samuel[dot]brack[plus]getgpgkey[at]gmail[dot]com bekommen. Die Kennung des Schlüssels lautet C8E07A0E

Weiterführende Links:
Deutsche GnuPG-Anleitung (Kai Raven)
Wikibooks GnuPG: GnuPG benutzen
Enigmail – Plugin für Thunderbird und Dokumentation