Thunderbird, GnuPG und Enigmail unter Mac OS X
9. Januar 2011 von Dietrich
Wer seine Emails signieren und/oder verschlüsseln will, kann zwischen OpenPGP und S/MIME wählen. Für den Privatanwender ist die Benutzung von OpenPGP einfacher, da kein von einer Zertifizierungsstelle beglaubigtes Zertifikat notwendig ist, sondern dieses selber erstellt werden kann.
Es empfiehlt sich, GnuPG als freie und kostenlose Implementierung von OpenPGP zu verwenden.
Unter OS X stehen als Emailprogramme Apple Mail mit dem GPGMail Plugin oder der Donnervogel (Thunderbird) mit dem Enigmail Plugin zur Auswahl.
Ich habe mich für den Donnervogel entschieden, weil dieser mit OpenGPG Chipkarten umgehen kann, siehe z.B. den Kryptostick der Gesellschaft zum Schutz der Privatsphäre (in englisch: German Privacy Foundation).
Die Installation von GnuPG, Donnervogel und Enigmail ist schnell erledigt:
- Installieren Sie GnuPG Version 2. Es kann die Version von MacPorts (Paketname: gnupg2) installiert werden oder das Komplettpaket von Mac GPG. Bei der Verwendung von MacPorts ist zusätzlich der pinentry-mac zu installieren.
- den Donnervogel von Mozilla wie üblich installieren.
- im Donnervogel dann unter Extras/Addons das Plugin Enigmail installieren.
GnuPG 2 nutzt den Hintergrundprozess gpg-agent zum Zwischenspeichern der Schlüsselparolen. Dabei (vgl. „man gpg-agent“) wird der gpg-agent einmal beim Anmelden gestartet und alle Anwendungen nutzen dann diese Instanz des GPG Agenten. Eine Anwendung erfährt den Kommunikationskanal über die Umgebungsvariable GPG_AGENT_INFO.
Damit sind unter OS X zwei Dinge zu erledigen:
- Starten von gpg-agent während des Anmeldevorganges
- Setzen der Umgebungsvariable GPG_AGENT_INFO vor dem Start des Donnervogels
Das hier beschriebene Problem hatten schon andere, z.B. Mischa Beitz – siehe seinen Artikel Thunderbird, GnuPG and Enigmail on Mac OS X.
Folgende drei Schritte sind notwendig:
- Erstellen eines LaunchAgents beim Anmelden – entweder wird ein bestehender gpg-agent genutzt oder ein neuer gestartet.
- die Datei .bash_profile wird angepasst, so daß die Variable GPG_AGENT_INFO gesetzt ist.
- ein einfaches Kommandozeilen-Skript wird verwendet, um den Donnervogel zu starten.
Das folgende Beispiel wurde unter OS X 10.6.6 und mit GnuPG 2.0.16 aus MacPorts sowie pinentry-mac Version 0.5 getestet.
(1) Erstellen eines LaunchAgents
Die folgenden Zeilen als ~/Library/LaunchAgents/org.gnupg.gpg-agent.plist speichern und die Variable $HOME mit dem benutzen Pfad ersetzen (wenn der Benutzer Meier heißt, dann wäre das /Users/Meier):
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>Label</key><string>org.gnupg.gpg-agent</string><key>ProgramArguments</key><array><string>$HOME/Documents/start-gpg-agent.sh</string></array><key>RunAtLoad</key><true/></dict></plist>
Nun eine Datei ~/Documents/start-gpg-agent.sh mit folgendem Inhalt anlegen (evtl. den Pfad für gpg-agent und pinentry-mac anpassen – hier ist eine Installation von MacPorts und pinentry-mac verwendet):
#!/bin/bashPATH=$PATH:/opt/local/bin# Sicherstellen, daß nur eine Instanz von gpg-agent# gestartet ist. Läuft keine, starte eine neue.if test -f $HOME/.gpg-agent-info && \kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; thenGPG_AGENT_INFO=`cat $HOME/.gpg-agent-info`export GPG_AGENT_INFOelseeval `/opt/local/bin/gpg-agent --pinentry-program /usr/local/libexec/pinentry-mac.app/Contents/MacOS/pinentry-mac --daemon --write-env-file`fiexport GPG_TTY=`tty`
(2) Anpassung .bash_profile
Folgendes zu ~/.bash_profile hinzufügen:
export GPG_TTY=$(tty)if [ -f "${HOME}/.gpg-agent-info" ]; then. "${HOME}/.gpg-agent-info"export GPG_AGENT_INFOfi
(3) Kommandozeilen-Skript zum Start des Donnervogels
Eine Datei start-Donnervogel.command erstellen (evtl. den Pfad zum Donnervogel anpassen, hier ist der Standardort /Applications angenommen):
#!/bin/bash# den Donnervogel von der Kommandozeile starten, damit die# Umgebungsvariable GPG_AGENT_INFO gesetzt ist./Applications/Thunderbird.app/Contents/MacOS/thunderbird-bin
Für diese Datei ist die Flagge Ausführen zu setzen: chmod +x start-Donnervogel.command.
Jetzt abmelden und wieder anmelden und im Finder die Datei start-Donnervogel.command doppelklicken. Eine Konsole sollte sich öffnen und der Donnervogel sollte starten. Signieren und Verschlüsseln von Emails sollte nun mit Kennwortverwaltung im gpg-Agenten funktionieren.
Wenn jemand einen einfacheren Weg findet, dem Donnervogel die Umgebungsvariable GPG_AGENT_INFO mitzuteilen, dann bin ich für diese Information dankbar.
Danke für die gute Zusammenfassung der notwendigen Schritte. Ich hätte mir das unter OSX leichter vorgestellt, aber die Verschlüsselung von Mails scheint auch heute noch kein Standard zu sein. Das muss man immer noch manuel nachrüsten.
Zuerst habe ich die “gpgtools” ausprobiert. Damit kann man allerdings out-of-the-box auch nicht arbeiten.
Danke für die gute Zusammenfassung der notwendigen Schritte. Ich hätte mir das unter OSX leichter vorgestellt, aber die Verschlüsselung von Mails scheint auch heute noch kein Standard zu sein. Das muss man immer noch manuel nachrüsten.
+1