Signier-Party
The Answer Girl: Umgang mit GnuPG-Schlüsseln
Partytime
Leider erlaubt der Vergleich der Fingerabdrücke lediglich Rückschlüsse darauf, ob der Schlüssel selbst in Ordnung ist. Ob seine Besitzerin auch tatsächlich diejenige ist, deren Name im Schlüssel verzeichnet steht, lässt sich erst kontrollieren, wenn sie sich ausweisen kann. Aus diesem Grund muss man zu jeder Signierparty mit Personalausweis, Reisepass oder einer anderen amtlichen Legitimation anreisen – denn wie sollte sonst eine bislang Unbekannte tatsächlich darauf vertrauen können, dass Patricia Jung tatsächlich Patricia Jung ist?
Hat man sich auf der Party davon überzeugt, dass die Person, die den Fingerprint auf dem Zettel ausgehändigt hat, tatsächlich so aussieht, wie sich ihr Ausweis einen Menschen ihres Namens vorstellt, kann man sich – wieder zu Hause (oder am Netz) – den entsprechenden public key herunterladen und dessen Fingerprint mit dem erhaltenen vergleichen.
Schlüssel geprüft, Mensch ebenso – doch woher soll man jetzt wissen, dass Mail an die im Schlüssel angegebenen E-Mail-Adressen tatsächlich bei der verifizierten Person ankommen? Damit Adressen im Laufe eines Schlüssellebens hinzukommen oder zurückgezogen werden können, dürfen sie (wie übrigens auch Schlüsselsignaturen) keinen Einfluss auf den Fingerprint haben. Wer also mit seiner Unterschrift seiner Überzeugung Ausdruck verleihen will, dass Mensch, E-Mail-Adresse und Schlüssel zusammenpassen, kommt an einer Überprüfung der Mail-Adressen nicht vorbei.
Zu diesem Zweck schickt man eine mit dem verifizierten öffentlichen Schlüssel verschlüsselte Mail an die zu signierenden Adressen der Inhaberin. Die Nachricht enthält die Bitte, den Mail-Inhalt signiert zurückzuschicken. Um sicherzustellen, dass die Empfängerin den Inhalt dieser "Challenge-Mail" nicht erraten kann, sondern ihn wirklich entschlüsseln muss, schickt man im Mail-Text einen Zufallsstring mit. Einen solchen erzeugt zum Beispiel der Befehl
dd if=/dev/random bs=1 count=10 2>/dev/null | uuencode -m - | sed -n 2p
Im Netz finden sich Skripte wie [4], die – nach einer gewissen Anpassungsarbeit – dabei helfen, dieses Prozedere zu automatisieren.
Kommt die (hoffentlich notierte) Zeichenkette signiert zurück, weiß man, dass die Empfängerin die Nachricht dechiffrieren konnte; stimmt die Signatur dieser Antwort, wurde die Mail auf dem Weg nicht verändert.
Listing 2
Signieren eines fremden Keys
webmistress@fri:~$ gpg --edit pjung@linux-user.de
gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
Secret key is available.
pub 1024D/1E786A45 created: 2003-01-17 expires: never trust: u/u
sub 2048g/62D4F0F4 created: 2003-01-17 expires: never
(1) Patricia Jung <pjung@linux-user.de>
(2) Patricia Jung <pjung@linux-magazin.de>
[…]
(5). Patricia Jung <pjung@linux-magazine.com>
Command> 1
pub 1024D/1E786A45 created: 2003-01-17 expires: never trust: u/u
sub 2048g/62D4F0F4 created: 2003-01-17 expires: never
(1)* Patricia Jung <pjung@linux-user.de>
(2) Patricia Jung <pjung@linux-magazin.de>
[…]
(5). Patricia Jung <pjung@linux-magazine.com>
Command> sign
pub 1024D/1E786A45 created: 2003-01-17 expires: never trust: u/u
Primary key fingerprint: 2350 B799 81E8 B20B 3743 D541 CA1E C447 1E78 6A45
Patricia Jung <pjung@linux-user.de>
How carefully have you verified the key you are about to sign actually belongs
to the person named above? If you don't know what to answer, enter "0".
(0) I will not answer. (default)
(1) I have not checked at all.
(2) I have done casual checking.
(3) I have done very careful checking.
Your selection? 3
Are you really sure that you want to sign this key
with your key: "Webmistress <webmistress@answergirl.de>"
I have checked this key very carefully.
Really sign? y
You need a passphrase to unlock the secret key for
user: "Webmistress <webmistress@answergirl.de>"
1024-bit DSA key, ID 2F0F137E, created 2003-04-28Geheime Passphrase des eigenen secret keys
Command> quit
Save changes? y
Erst dann beginnt die Unterschriftszeremonie. Dabei kommt der Befehl gpg --edit email@adres.se zum Einsatz und öffnet ein interaktives Tool, das die zu diesem Schlüssel gehörenden Adressen listet (Listing 2). Auf der internen Kommandozeile eingegeben, zeigt der Befehl help [Enter] an, welche Möglichkeiten der Nutzerin jetzt offen stehen. Will sie alle Adressen signieren, gibt sie einfach sign [Enter] ein; ist Beschänkung angesagt, wählt sie vor diesem Kommando die passende Zahl aus und bestätigt sie mit [Enter]. In ersterem Fall fragt gpg noch einmal nach ("Wirklich alle?") – für ja heißt die Antwort [y], für nein [n].
Dann kommt die Vertrauensfrage: "Haben Sie eine gründliche Überprüfung vorgenommen (Antwort: [3]) oder nur eben so la la ([2])?" Diese Angabe legt die Stufe des Vertrauens fest, den die Antwortende einer Signatur mit diesem Schlüssel entgegenbringt. Eine letzte Bekräftigung wird fällig, dann kommt die Stunde der Wahrheit: Das Tool fragt die Passphrase des eigenen geheimen Schlüssels ab. Dann befindet sich die Anwenderin wieder auf der eingebauten Kommandozeile, auf der sie zum Abschied quit sagt. Erst wenn sie jetzt noch einmal bestätigt, dass sie die Änderungen abspeichern will, speichert gpg den fremden Schlüssel tatsächlich mit Signatur ab.
Natürlich nützt das nur dann etwas, wenn diese Unterschrift auch veröffentlicht wird. Denn an ihrer Hand werden alle, die der Signierenden vertrauen, die Schlüsselinhaberin jedoch nicht kennen, ihren Vertrauenswert in den Schlüssel der letzteren festlegen. Dazu kann die Signatorin entweder den neu signierten Schlüssel exportieren und an die Eigentümerin zurückschicken (und ihr das Verteilen überlassen) – oder sie lädt die Signatur einfach mit gpg --send-keys "Name" auf den Keyserver. Ein gpg --refresh-keys bringt dann jeweils den eigenen Schlüsselbund auf den neuesten Stand – und der Run auf die Top 1000 im Web of Trust [5] kann beginnen.
Glossar
PGP-/GnuPG-Schlüssel
Der "GNU Privacy Guard" (http://www.gnupg.org/) ist eine patentfreie Open-Source-Implementierung des OpenPGP-Standards, der wiederum auf dem (mittlerweile kommerziellen) Tool "Pretty Good Privacy" beruht. Um GnuPG oder PGP zum Verschlüsseln oder Signieren einsetzen zu können, benötigt man ein Schlüsselpaar, das aus einem privaten (streng geheimzuhaltenden und mit einer Passphrase zu schützenden) sowie einem öffentlichen (an andere zu verteilenden) Schlüssel besteht. Möchte man eine Nachricht an jemanden mit einem GnuPG- oder PGP-Briefumschlag versehen, verschlüsselt man sie mit dem öffentlichen ("public") Schlüssel des Empfängers. Sie kann nur mit dessen privatem Schlüssel dechiffriert ("decrypted") werden. Beim Signieren benutzt man seinen eigenen privaten Schlüssel. Der Empfänger kann dann mit Hilfe des öffentlichen Schlüssels der Absenderin überprüfen, ob die Nachricht unversehrt und unverändert ankam.
Key-Signing
Wie bei so vielen computertechnischen Themen kommt man auch beim Thema Verschlüsselung nicht an englischsprachigem Vokabular vorbei: Key == Schlüssel, to sign == unterschreiben, signieren. Beim Key-Signing unterschreibt man den öffentlichen Schlüssel eines Gegenübers mit Hilfe seines eigenen privaten Keys und bezeugt damit, dass man sicher ist, dass Schlüsselinhaber und Schlüssel zusammengehören. Damit entsteht ein "Web of Trust", ein Vertrauensnetz: Ist der öffentliche Schlüssel einer Fremden von jemandem signiert, dem ich vertraue, werde ich in der Regel davon ausgehen können, dass sich diese Person ordentlich davon überzeugt hat, dass die Fremde und ihr Schlüssel zusammengehören. Somit kann ich auch den Schlüssel der Fremden als vertrauenswürdig einstufen.
local part
Der Teil einer E-Mail-Adresse, der links neben dem @-Zeichen steht. Klassischerweise war dies der Username der Benutzerin auf dem Mail-System. Heute bedeutet es lediglich, dass dieser Teil lokal, also innerhalb des entsprechenden Rechners oder der jeweiligen Domain (dem Teil, der rechts vom @ steht) eindeutig sein muss.
Hexadezimalzahlen
Zahlensystem auf der Basis von Sechzehnerpotenzen (statt zur Basis 10 wie beim herkömmlichen Dezimalsystem). Als Ziffern kommen 0--9 und anschließend A (entspricht 10) bis F (15) zum Einsatz.
Infos
[1] Andrea Müller, Patricia Jung: "Einfach nur ein Mail-Programm", LinuxUser 03/2003, Tabelle 1, S. 32 f.
[2] Andrea Müller: "Mail und mehr", LinuxUser 03/2003, Tabelle 1, S. 38
[3] Jörg Mudrack, Patricia Jung: "Schloss für die Post", LinuxUser 05/2002, S. 28 f.
[4] Automatisierung des Challenge-Response-Verfahrens: http://www.lysator.liu.se/~jc/verifygpgmail.sh
[5] Top 1000: http://skylane.kjsl.com/~jharris/ka/2003-04-20/top1000table.html



