The Answer Girl
Dass der Computeralltag auch unter Linux des Öfteren Überraschungen bereit hält, ist eher eine Binsenweisheit: Immer wieder funktionieren Dinge nicht oder nicht so, wie eigentlich angenommen. Das Answer-Girl im LinuxUser zeigt, wie man mit solchen Problemchen elegant fertig wird.
Ach, die guten Vorsätze! Dass E-Mails wie Postkarten auf ihrem Zustellweg (und auf dem Zielserver) für alle lesbar sind, die an die Daten herankommen, das dürften mittlerweile nicht nur die Mail-Gurus wissen. Doch während man selbst für vollkommen unverfängliche Mitteilungen auf Papier selbstverständlich zum Briefumschlag greift, müssen Schutzbehauptungen wie "Ich habe weder vor meinem Provider, noch vor amerikanischen Geheimdiensten irgendetwas zu verbergen" nur all zu oft das schlechte Gewissen in Bezug auf den immer noch fehlenden PGP-/GnuPG-Schlüssel beruhigen.
Dabei bieten mittlerweile fast alle E-Mail-Programme umfangreiche Unterstützung für den elektronischen Briefumschlagerzeuger [1,2]. Zwar entfällt das Argument "bisher nicht benutzt, weil zu umständlich zu bedienen" dadurch nicht vollkommen, es reicht jedoch nicht mehr zur Begründung der vollkommenen PGP/GnuPG-Blockade aus. Wenn dann von guten Freunden oder Bekannten die Einladung zu einer Key-Signing-Party kommt, gewinnt das schlechte Gewissen in jedem Fall die Oberhand …
Handwerkszeug
Vorausgesetzt, das GnuPG-Kommandozeilentool gpg ist installiert, erzeugt der Befehl gpg --gen-key (generate key") ein neues Schlüsselpaar für den eigenen Gebrauch. Die entsprechende Option findet die Anwenderin recht schnell heraus, wenn sie
gpg --help | less
aufruft; zudem herrscht zumindest zu diesem Punkt keinerlei Dokumentationsmangel (siehe auch [3]). Wer sich partout nicht mit der Kommandozeile anfreunden mag, findet zum Beispiel im GNU-Privacy-Assistenten gpa (http://www.gnupg.org/(de)/related_software/gpa/) einen grafischen Begleiter (Abbildung 1). Leider bietet der bislang nur einen Bruchteil der Funktionalität des Kommandozeilentools; zudem liefern wenige Distributionen die neueste Version mit, und bei älteren ist die Benutzerschnittstelle eine Zumutung. Gründe genug, an dieser Stelle nicht weiter darauf einzugehen.
Ein paar Verschlüsselungs- und Signierübungen, um sich mit dem neuen Tool bekannt zu machen, eventuelle Konfigurationsmaßnahmen am Mail-Programm (vgl. z. B. [3]), erste signierte und mit dem eigenen privaten Key an sich selbst verschlüsselt verschickte Mails – anschließend können die Party-Vorbereitungen beginnen.
Der erste, wichtige Punkt: Damit die anderen den eigenen öffentlichen Key signieren (und wichtiger noch: ihn zur Erzeugung der Briefumschläge für Mails an eine selbst benutzen) können, müssen sie ihn erst einmal bekommen. Klassischerweise schreibt man ihn mit
gpg --export -a "Name " > public_key
als ASCII-Text in die Datei public_key und wirft diese unter's Volk. Doch wer will sich die Mühe machen und sie an alle Party-Teilnehmer/innen (von denen man möglicherweise bislang nicht einmal die E-Mail-Adressen hat) zu verschicken oder gar auf Diskette zu verteilen? Nicht auszudenken, welche Arbeit später noch dazukäme: Alle, die nicht auf der Party waren und dennoch verschlüsselte Mails an eine versenden wollen, brauchen ebenfalls immer erst den öffentlichen Schlüssel.
Zum Glück gibt es PGP/GnuPG-Keyserver, und mit gpg ist es kinderleicht, den eigenen public key dort hinauf zu laden (und sich die Schlüssel potentieller Mail-Partner/innen zu holen). Viele dieser Server gleichen ihre Schlüsseldatenbanken miteinander ab. So reicht es meist, sich einen Keyserver, etwa den des Computer Emergency Response Team des "Deutschen Forschungsnetzes" (DFN-CERT), auszusuchen. Diesen trägt man in die GnuPG-Konfigurationsdatei ~/.gnupg/options (die manchmal auch gnupg.conf heißt) ein:
keyserver blackhole.pca.dfn.de
… und schon sucht importiert der Befehl gpg --search-keys email@adres.se den zur angegebenen Mail-Adresse passenden Schlüssel in den eigenen Schlüsselbund für öffentliche Keys (Listing 1). Dieser liegt (wie auch der Bund mit den privaten Schlüsseln, secring.gpg) im Verzeichnis ~/.gnupg und heißt pubring.gpg. Passt der angegebene Suchstring auf mehrere Schlüssel auf dem Server, bietet gpg wie im Beispiel eine Liste zur Auswahl an. Statt der Antwort "importiere die Schlüssel 1-5" hätte dort auch die Eingabe 1 (oder 2 oder …) gereicht: gpg zeigt zu jeder Auswahlmöglichkeit die Schlüssel-ID(entifikationsnummer) an, und die ist in Listing 1 immer 1E786A45. Damit hat man es mit einem einzigen Schlüssel zu tun, der für mehrere E-Mail-Adressen gilt.
Listing 1
Importieren eines public keys vom Keyserver
webmistress@fri:~$ gpg --search-keys pjung@linux-user.de
gpg: WARNUNG: Sensible Daten k"onnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html f"ur weitere Informationen
gpg: Schl"usselbund `/home/webmistress/.gnupg/pubring.gpg' erstellt
gpg: suche nach "pjung@linux-user.de" auf HKP-Server blackhole.pca.dfn.de
Keys 1-5 of 5 for "pjung@linux-user.de"
(1) Patricia Jung <pjung@linux-user.de>
1024 bit DSA key 1E786A45, created 2003-01-16
(2) Patricia Jung <pjung@linux-magazin.de>
1024 bit DSA key 1E786A45, created 2003-01-16
[…]
(5) Patricia Jung <pjung@linux-magazine.com>
1024 bit DSA key 1E786A45, created 2003-01-16
Enter number(s), N)ext, or Q)uit > 1-5
gpg: Schl"ussel 1E786A45: "Offentlicher Schl"ussel "Patricia Jung <pjung@linux-user.de>" importiert
gpg: Anzahl insgesamt bearbeiteter Schl"ussel: 1
gpg: importiert: 1
Ehe man jedoch seinen eigenen öffentlichen Schlüssel mit gpg --send-keys "Name" auf den Keyserver hochlädt, bitte einmal tief durchatmen! Denn ab jetzt gilt es, den eigenen privaten Schlüssel wie einen Augapfel zu hüten. Sollten Sie dazu einmal das Passwort vergessen, besteht nicht einmal mehr die Möglichkeit, Ihren Schlüssel wieder zurückzuziehen. (Deshalb bietet es sich an, im Vorfeld mit gpg --gen-revoc "Name" ein "Revocation Certificate" für den eigenen Key zu erstellen und diese Rückzugsmöglichkeit als Ausdruck sicher für den Notfall zu verwahren.)
Fingerabdrücke
Zudem bedarf es für eine selbst wie auch für die E-Mail-Partner/innen einer Möglichkeit, sich zu vergewissern, dass der auf dem Server liegende Schlüssel tatsächlich die Daten enthält, die er enthalten soll. Zu diesem Zweck erzeugt man einen Fingerabdruck des eigenen öffentlichen Keys z. B. mit gpg --fingerprint "Name" oder gpg --fingerprint email@adres.se. (Nicht alle, aber viele gpg-Kommandozeilenoptionen erlauben es, den gewünschten Key über den passenden Namen, die Key-ID, die E-Mail-Adresse oder gar nur über deren local part anzusprechen – solange die Angabe eindeutig ist.)
Auch vom Fingerprint lohnt es, eine Kopie zur eigenen Vergewisserung sicher zu verwahren. Zudem kann man zum Beispiel seinen Mailclient so konfigurieren, dass er ihn in jeder ausgehenden Mail in einer benutzerdefinierten Header-Zeile, einem sogenannten X-Header (etwa: X-GPG-Fingerprint:) mitschickt. Denn an diesem Fingerabdruck hängt eigentlich alles: Um sich zu vergewissern, dass ein Schlüssel, den man vom Keyserver heruntergeladen hat, dem entspricht, was die vermutete Eigentümerin als ihren Key bezeichnet, erfragt man von gpg den Fingerprint des entsprechenden Eintrags im eigenen Schlüsselbund und vergleicht diese Reihe von Hexadezimalzahlen in der Ausgabe …
webmistress@fri:~$ gpg --fingerprint pjung@linux-user.de […] Key fingerprint = 2350 B799 81E8 B20B 3743 D541 CA1E C447 1E78 6A45
… mit dem, was die Schlüsseleignerin selbst als Fingerprint verteilt.
Deshalb gehört zur Vorbereitung der Signierparty, genügend Ausdrucke des eigenen Fingerprints zu erstellen, um sie an die Anwesenden zu verteilen. Gute Organisator(inn)en sammeln die Fingerprints im Vorfeld zusammen und geben sie an die Teilnehmenden weiter.



