Verschlüsselung in kmail einrichten

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Standardmäßig wird die Verschlüsselung mit GnuPG in kmail (leider) nicht eingerichtet. Ich will hier zeigen wie man dies komplett, von der Installation des gpg-Agenten über das Einrichten der Verschlüsselung in kmail, hinbekommt. Ich gehe von einer funktionierenden kmail-Installation aus und das Vorhandensein von GnuPG mit einem bereits generierten Private- und Public-Key aus, wenn nicht bitte nachinstallieren und die Schlüssel generieren. Ein HowTo zur Schlüsselerzeugung liegt hier GnuPG und Keyring oder hier gnupg.org/howtows/de.

Paketinstallation

Folgende Pakete müssen installiert werden, damit das Versenden und Empfangen von verschlüsselten eMails funktioniert.

  • gnupg
  • gnupg2
  • gnupg-agent
  • gpgsm
  • kgpg
  • pinentry-qt4


Die Installation wird wie üblich mit apt-get erledigt. In der Regel sind die Pakete gnupg und kgpg schon vorinstalliert. Man braucht also nur noch die fehlenden Pakete gnupg-agent, gpgsm und pinentry-qt4 nach zu installieren.

# apt-get install gnupg gnupg2 gnupg-agent kgpg pinentry-qt4


S-Mime/X.509-Zertifikate(meist nicht nötig)

Wer noch X.509 Zertifikate auch besser bekannt als S-Mime Zertifiakte unterstützen will braucht noch folgende Pakete:

  • gpgsm
  • kleopatra


# apt-get install gpgsm  kleopatra

gpg-Agent konfigurieren

Danach müssen wir im HOME-Verzeichnis des Users in das versteckte Unterverzeichnis .gnupg wechseln und dort die Datei gpg-agent.conf anlegen bzw. editieren und folgenden Inhalt einbauen.

# ~/.gnupg/gpg-agent.conf
pinentry-program /usr/bin/pinentry-qt4
no-grab
default-cache-ttl 86400
max-cache-ttl 86400

gnupg konfigurieren

In der Konfiguartionsdatei ~/.gnupg/gpg.conf von gnupg ist eine Zeile in der zu aktivieren. Man sucht den Absatz Passphrase agent und entfernt vor use-agent das Kommentarzeichen "#".

[...]
#
# Passphrase agent
#
# We support the old experimental passphrase agent protocol as well
# as the new Assuan based one (currently available in the "newpg" package
# at ftp.gnupg.org/gcrypt/alpha/aegypten/).  To make use of the agent, you have
# to run an agent as daemon and use the option
#
use-agent
# 
[...]

Mit diesen beiden Änderungen an den Dateien ~/.gnupg/gpg-agent.conf und ~/.gnupg/gpg.conf, sollten ausreichen, dass Kmail mit gpg zusammen arbeitet.

Nach dem Ändern der Dateien ist ein Aus- & Einloggen nötig, damit der gpg-agent gestartet wird.

kmail konfigurieren

Nachdem KDE neugestartet wurde, muss man kmail starten und im Menü Einstellungen/Einrichten/Sicherheit im Reiter Kryptographie-Module die beiden Optionen unter GpgME setzen. (Natürlich ist die zweite Option ausgegraut, falls keine Unterstützung für S/MIME installiert wurde.)

Screenshot 01

Danach in der selben Dialogbox unter Identitäten die eMail Adresse, für die die Verschlüsselung aktiv werden soll, markieren und auf den Ändern Button drücken. Im sich öffnenden Dialog im Reiter Kryptographie die eigenen gpg-Key ID’s zum Signieren und Verschlüsseln der eMails eintragen.

Screenshot 02

Einige Verschlüsselungsoption kann man, wie im nachfolgenden Bild gezeigt, noch setzen. Sinnvoll halte vorallem die Option gesendete Mails nicht zu verschlüsseln um in täglichen Umgang mit kmail nicht zu sehr behindert zu werden. Wer natürlich den Sicherheitsgedanken hoch hebt sollte diese Option aktivieren.

Screenshot 03

Das war’s - viel Spass beim Signieren und Verschlüsseln von eMails.


Funktionstest

Ver- & Entschlüsseln testen

Wenn alle Konfigdateien editiert sind und die KDE Session neugestart ist, kann man auch einen Funktionstest auf der Komandozeile machen.

Zum Test natürlich den eigenen gpg Schlüssel verwenden und nicht meinen ;-)

$ echo “test” | gpg -ase -r 0xDCEAAC02 | gpg
Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren.
Benutzer: "Michael Singer <michael.singer@sinweb.de>"
1024-Bit DSA Schlüssel, ID DCEAAC02, erzeugt 2003-05-19

Beim letzten Befehl muss im Hintergrund sich eine KDE-Dialogbox von pinentry-qt4 öffnen, die die gpg-Passphrase abfrägt. Wenn dies richtig eingegeben wurde muss wiederum im Konsolenfenster nachfolgender Text von gpg erscheinen (natürlich mit den eigenen gpg Daten).

gpg: verschlüsselt mit 2048-Bit ELG-E Schlüssel, ID A1B951AD, erzeugt 2003-05-19
     "Michael Singer <michael.singer@sinweb.de>"
“test”
gpg: Unterschrift vom Do 07 Okt 2010 14:18:32 CEST mittels DSA-Schlüssel ID DCEAAC02
gpg: Korrekte Unterschrift von "Michael Singer <michael.singer@sinweb.de>"


Ver- & Entschlüsseln testen ohne die KDE-Session neuzustarten

Wir killen evtl. gpg-agent Prozesse, starten den Agenten neu und testen das Zusammenspiel mit unseren eigenen gpg-Key. Dazu bitte eine Konsole öffnen und als der Benutzer der später die Verschlüsselung von eMails nutzen soll, die Befehle absetzen.

$ killall gpg-agent
$ eval "$(gpg-agent --daemon)"

Danach geht es wie beim vorherigen Punkt weiter.

$ echo “test” | gpg -ase -r 0xDCEAAC02 | gpg
Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren.
Benutzer: "Michael Singer <michael.singer@sinweb.de>"
1024-Bit DSA Schlüssel, ID DCEAAC02, erzeugt 2003-05-19

Beim letzten Befehl muss im Hintergrund sich eine KDE-Dialogbox von pinentry-qt4 öffnen, die die gpg-Passphrase abfrägt. Wenn dies richtig eingegeben wurde muss wiederum im Konsolenfenster nachfolgender Text von gpg erscheinen (natürlich mit den eigenen gpg Daten).

gpg: verschlüsselt mit 2048-Bit ELG-E Schlüssel, ID A1B951AD, erzeugt 2003-05-19
     "Michael Singer <michael.singer@sinweb.de>"
“test”
gpg: Unterschrift vom Do 07 Okt 2010 14:18:32 CEST mittels DSA-Schlüssel ID DCEAAC02
gpg: Korrekte Unterschrift von "Michael Singer <michael.singer@sinweb.de>"

Fehlersuche

Läuft der gpg-agent?

Den Status des Agenten kann man auch so abfragen.

$ gpg-agent status
gpg-agent: gpg-agent running and available

Läuft der gpg-agent? 2. Variante

Standardmäßig wird bei einem aktuellen System der gpg-agent automatisch gestartet, wenn es eine Zeile mit use-agent in der Datei ~/.gnupg/gpg.conf, oder ~/.gnupg/options gibt. Ob ein gpg-agent läuft lässt sich einfach mit ps überprüfen.

$ ps -C gpg-agent u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
user     3616  0.0  0.0   4704   788 ?        Ss   20:17   0:00 /usr/bin/gpg-agent --daemon --sh --write-env-file=/home/user/.gnupg/gpg-agent

/etc/X11/Xsession.d/90gpg-agent

überprüfen der Startdatei für den gpg-agent, ob sie die richtigen Rechte besitzt. Sie muss für alle ausführbar sein und root gehören.

# ls -ld /etc/X11/Xsession.d/90gpg-agent 
-rwxr-xr-x 1 root root 591 2007-09-30 09:53 /etc/X11/Xsession.d/90gpg-agent

Wenn nicht bitte mit folgenden zwei Kommandos nachholen.

# chmod 755 /etc/X11/Xsession.d/90gpg-agent
# chown root:root /etc/X11/Xsession.d/90gpg-agent