E-Mail-Sicherheit: kmail
1. Installation
Benötigte Pakete:
- gpg
- kgpg
- kmail
Für alle Anwender von kmail bis Version 1.6 (kde 3.2) hat Gregor Waluga bereits eine ausgezeichnete und vor allem sehr ausführliche (13 Seiten) Anleitung (für kmail bis Version 1.6) ins Netz gestellt. Man findet sie im Bereich Tutorials/HowTos seiner Seite http://waluga.de/linux/linux.htm. Zum Verständnis des folgenden ist sie sehr zu empfehlen, da sie auch die Hintergründe der public key cryptography anreisst.
Mit kde 3.3 und kmail 1.7 ändert sich bezüglich der Verschlüsselung grundlegendes. Um zu erreichen, dass die kmail-Signaturen kompatibel zu etlichen anderen Mailclients (z. B. Evolution und Windowsprogrammen) werden, wurde der für die Signatur benutzte Content-Type dem vorherrschenden Standard angepaßt: statt Content-Type: Text/Plain wird nun Content-Type: application/pgp-signature benutzt. Das hat die angenehme Konsequenz, dass man als Nutzer vom kmail 1.7 nun auch die Signatur derjenigen als gültig angezeigt bekommt, die andere Mailclients einsetzen, aber die unangenehme, dass Benutzer von kmail 1.6 endgültig in die Röhre schauen: sie können die Signaturen von kmail 1.7 nicht mehr validieren. Die ganze Geschichte ist also nicht abwärtskompatibel. Trotzdem überwiegen die positiven Aspekte. Kmail 1.7 beherrscht nun auch S/MIME und ein sicheres Passwort-Cashing, das sich, analog zum ssh-agent, gpg-agent nennt.
Man installiere zunächst die aktuellen Versionen von gpg, kgpg, und natürlich kmail (und damit schlussendlich kde, wobei die ganze Geschichte natürlich auch unter Gnome oder einem x-beliebigen Windowmanager läuft, sofern man eben die notwendigen kde-Libraries und -Anwendungen installiert hat). Für die erweiterten Funktionen von kmail 1.7 benötigt man ferner gpg1.9.10 (installiert sich als parallel als gpg2) und pinentry-gtk für Gnome bzw. pinentry-qt für kde. Bevor man anfängt, diese Pakete von den Ursprungsseiten zu laden, sollte man schauen, ob diese nicht bereits von der eigenen Distribution bereitgestellt werden. Unter Mandrake z. B. lassen sich alle diese Pakete bequem mittels urpmi installieren, inklusive aller eventuellen Abhängigkeiten.
2. Konfiguration von kgpg
Nach der Installation starte man kgpg und erzeuge als erstes ein Schlüsselpaar:
[attachmentid=1035]
[attachmentid=1036]
Dem Default (DSA & El Gamal) ist zu trauen, aber man wähle auf jeden Fall die maximale Schlüssellänge (4096 bit). Man sollte ein nichttriviales Passwort (Mantra) wählen, das man aber trotzdem behalten kann. Der public key kann dann sogleich mittels des "key server dialogs" auf einen Server hochgeladen (exportiert) werden.
[attachmentid=1037]
[attachmentid=1038]
Im Gegenzug können die public keys von Freunden heruntergeladen (importiert) werden.
[attachmentid=1039]
[attachmentid=1040]
Diese Schlüssel müssen mit dem eigenen privaten Schlüssel signiert werden, um verwendbar zu sein.
[attachmentid=1041]
[attachmentid=1042]
Man achte aber zuerst auf die Problematik, ob die Keys der Freunde auch tatsächlich von diesen stammen. Archaische Medien wie das Telefon oder gar persönliche Treffen sind gute Mittel, die Authentizität eines Schlüssels zu bestätigen. Nein, das ist kein Wahnsinn und keine Paranoia: bei den heutig gängigen Schlüssellängen ist die verwundbarste Stelle der Erstaustausch.
3. Konfiguration von kmail
Nun muss kmail konfiguriert werden. Das ist einfach: man muss erstens in den kmail-Optionen unter Security/Crypto-Backends sowohl OpenPgP als auch S/MIME aktivieren.
[attachmentid=1043]
Hier kann man auch einstellen, ob alle Mails signiert oder gar verschlüsselt werden sollen...zumindest ersteres ist sicher zu bejahen, letzteres je nach Gusto.
[attachmentid=1044]
Zweitens wählt man unter Identities/Cryptography den korrekten Schlüssel aus.
[attachmentid=1045]
4. Konfiguration von gpgagent
Schließlich ist noch ein wenig Handarbeit nötig, um gpgagent zu konfigurieren. Man erstelle (hier z. B. für den User karl) eine Datei gpg-agent.conf in /home/karl/.gnupg/ mit dem folgenden beispielhaften Inhalt:
CODE
pinentry-program /usr/bin/pinentry-qt
no-grab
default-cache-ttl 28800
no-grab
default-cache-ttl 28800
Natürlich muß hier der Pfad von pinentry sowie die Zeit der Vorratshaltung des einmal eingegebenen Paßworts (in s) an die persönlichen Gegebenheiten und Bedürfnisse angepaßt werden. Schließlich muß man noch gpg-agent als daemon starten. Manuell geschieht das mit eval "$(gpg-agent --daemon)" in einer Konsole, letztendlich sollte man diesen Befehl in ein Shellskript schreiben, das man als /home/karl/.kde/env/gpgagent.sh anlegt, damit gpg-agent schon beim Start des Systems aktiv ist. Der Inhalt dieses Skripts ist einfach:
CODE
#!/bin/bash
eval "$(gpg-agent --daemon)"
eval "$(gpg-agent --daemon)"
5. Im Einsatz
Wie sieht das Verschicken und Empfangen von signierten/verschlüsselten E-mails in der Praxis aus? Nun, beim Verschicken bietet kmail dafür zwei Icons in der Toolbar, also kann man das ganz einfach und nach Belieben ein- und ausschalten:
[attachmentid=1046]
Schickt man diese E-mail los, wird bei entsprechender Einstellung in den Optionen (Always show the encryption keys for approval) der verwendete key angezeigt
[attachmentid=1047]
sowie um die Eingabe des Passworts gebeten:
[attachmentid=1048]
Beim Empfang der Mail sieht das dann so aus:
[attachmentid=1049]
[attachmentid=1050]
Das sind die Defaultfarben, wem sie zu grell sind, der kann natürlich auch liebliche Pastelltöne einstellen.
Weitere hilfreiche Details findet man auf diesen beiden Seiten:
http://kmail.kde.org/kmail-pgpmime-howto
http://savannah.gnu.org/gpg-agent-howto
Cobra für Rokop Security 2005