Keysigning mit caff
Wenn man von einer Keysigningparty zurückkehrt, hat man im Idealfall
viele nette und interessante Leute getroffen und sicher auch den ein
oder anderen Fingerprint austauschen können. Zu Hause angekomen gilt
es, die zu den Fingerprints gehörenden Schlüssel noch zu
unterschreiben um damit das Web of Trust zu stärken. Bei ein oder zwei
ist es schnell mit dem normalen Textinterface von gpg oder eines
netten graphischen Frontends getan. Möchte man aber mehr Schlüssel
prüfen und unterschreiben, benötigt man etwas Unterstützung
damit es nicht den ganzen Tag dauert. Ein Tool dazu ist caff.
Was is caff
caff ist die Abkürzung von "CA - fire and
forget" und ist ein Perl Skript, das einem beim Unterschreiben
und anschließenden an den Eigentümer Versenden von PGP-Schlüsseln.
Sein Vorteil ist es, dass es eine Liste mit Schlüssel-ID übernehmen
kann und diese dann seriell abarbeitet. Dabei ist es mit gpg-agent
kombinierbar und spart damit eine Menge Tipparbeit, so dass man sich wirklich
auf das Vergleichen der Fingerprints konzentrieren kann. Zusätzlich kann
es eine Mail mit den unterschriebenen Schlüssel an die angegebene Adresse senden
und so die Existenz der Adresse validieren helfen.
Installation
Unter Debian ist caff im Paket
signing-party enthalten und kann dort einfach per
apt-get, aptitude oder Synaptic installiert werden.
Für alle die kein Debian oder mit Debian verwandes System zur Verfügung haben, können sich caff zum Beispiel aus dem svn herunterladen.
Konfiguration
caff wird über die Datei .caffrc im Home-Verzeichnis
des Users gesteuert. Im Folgenden sind einige Einstellungen genauer
erläutert. Dabei reichen meist die ersten vier oder fünf genannten
Einstellungen, um caff zum Laufen zu bekommen.
$CONFIG{'owner'} = 'Max Mustermann';
$CONFIG{'email'} = 'mm@example.org';
$CONFIG{'keyid'} = [ qw{01234567890ABCDE} ];
In den beiden Variablen wird der Name, E-Mail-Adresse und die Key-ID des zu verwendenden Schlüssels fest gelegt. In der letzten Einstellung kann auch eine Liste von Schlüsseln stehen.
$CONFIG{'mail-template'} = <<'EOM'
Text der E-Mail
EOM
Diese Variable trägt den Text der E-Mail, die an die Adressaten
verschickt wird. Dort kann nahezu beliebiger Text hinein geschrieben
werden und auch Variablen lassen sich expandieren. So wird {$owner}
durch den oben festgelegten Namen ersetzt, {$key} steht
für die Key-ID und {@uids} ist ein Array über alle UIDs.
In der Beispieldatei, die mitgeliefert wird, kann man auch ein
Beispiel zur Anwendung dieser Variablen finden.
$CONFIG{'mailer-send'} = [ 'smtp', Server => 'mail.example.org', Auth => ['mm', 'GehHeim'] ];
Wenn ein lokaler Mailserver zum Einsatz kommt, dann ist die obige
Einstellung nicht nötig. Sie betrifft vielmehr Anwender, die üblicherweise
Programme wie Thunderbird, Evolution etc. nutzen und ohne lokalen Mailserver
unterwegs sind. Dann hier muss caff wissen, wie es die E-Mails
versenden soll. Meist wird zum Versand ein Smarthost des Providers
genutzt. Der Name des Mailservers wird oben eingetragen und innerhalb
der eckigen Klammern nach Auth werden die Zugangsdaten
(Benutzername und Passwort) eingetragen.
$CONFIG{'keyserver'} = 'subkeys.pgp.net';
Sollte ein anderen Keyserver als den obigen standardmäßig eingestellten genutzt werden, sollte subkeys.pgp.net durch den Keyserver der Wahl ersetzt werden. Im Allgemeinen ist dieser aber eine gute Wahl.
Caff bietet noch eine Vielzahl weiterer Möglichkeiten zur
individuellen Steuerung. Diese sind in der Handbuchseite zu caff
erklärt. Allgemein gilt: Jede Option den Aufbau
$CONFIG{'optionsname'} = 'einstellung';.
Danke an Jens für die initiale Zusammenstellung zur Konfiguration, aber der ich ich bedient habe. Das original Posting im Blog gibt es hier.
Verwendung
Caff übernimmt eine Liste mit den zu unterzeichnenden Schlüsseln.
Dies kann direkt per Kommandozeile passieren oder wenn an sie in einer
Textdatei gespeichert hat, zum Beispiel mit caff `cat
keys.txt`. Die Liste mit Schlüssel kann mit
gpg --no-default-keyring --keyring=KEYRINGDATEI \
--with-colons --list-keys | awk -F: '/^pub/ { print $5 }'
erstellt werden.
Zusammen mit gpg-agent
Debian/Ubuntu User können die benötigten Pakete mittels
apt-get install gnupg-agent
sowie dem gewünschten pinentry Pakte installieren.
Im nächsten Schritt muss use-agent in die Datei
~/.caff/gnupghome/gpg.conf. eingetragen werden. Dies
sorgt dafür, das der gerade installierte gpg-agent zur
Zwischenspeicherung des Passwortes des PGP-Schlüssels genutzt wird.
In der Datei ~/.gnupg/gpg-agent.conf können nun noch
Anpassungen vorgenommen werden. Sinnvoll ist es einen ausreichend
großen Wert für default-cache-ttl zu setzen sowie das
ausgewählte pinentry unter pinentry-program zu setzen.
Eine Beispielkonfiguration könnte so aussehen:
default-cache-ttl 600
pinentry-program /usr/bin/pinentry-gtk-2
Nachdem dies abgeschlossen ist, kann der gpg-agent mittels
$ eval `gpg-agent --daemon`
gestartet werden und steht für caff (und anderen Tools zur Verfügung)




