GnuPG Anleitung - Seite 5

Konfiguration und Optionen

GnuPG

Prinzipiell ist GnuPG ohne weitere Konfiguration über die Festlegung von Optionen in der gpg.conf GnuPG Konfigurationsdatei voll funktionsfähig. D. h. man kann sich eigene Schlüssel erstellen, fremde Schlüssel verwenden, verschlüsseln, entschlüsseln und signieren. GnuPG arbeitet ohne weitere Konfiguration mit einer Reihe von in GnuPG kodierten Voreinstellungen, legt die Schlüsselringdateien, die Vertrauens-Datenbankdatei und die random_seed Datei für Zufallswerte im GnuPG Heimatverzeichnis an.

Wenn jedoch z. B. ein Kryptomodul geladen werden muss, die von GnuPG genutzen Dateien an einem anderen Ort liegen sollen, die Nutzung eines bestimmten Verschlüsselungs- oder Hashalgorithmus gewünscht oder ein bestimmter Schlüsselserver regelmäßig angesprochen wird usw. ist das Editieren der gpg.conf und die Kenntnis der Bedeutung der Optionen wie auch ein tieferer Kenntnisstand über die kryptografischen Grundlagen unerlässlich.

Die gpg.conf wird von allen grafischen GnuPG Oberflächen ausgewertet. Die meisten Oberflächen bieten verständliche Elemente, mit denen wichtige Optionen in die gpg.conf gesetzt werden oder einen Editor, mit dem die gpg.conf direkt verändert werden kann.

Ist noch keine gpg.conf Datei vorhanden, wird die Datei einfach im GnuPG Heimatverzeichnis angelegt und danach mit einem Texteditor oder über die jeweilige grafische Oberfläche editiert.

Basis-Optionen

In der folgenden Tabelle sind alle Optionen aufgeführt, die allgemein und grundlegend für die Funktionsweise von GnuPG von Bedeutung sind. Weitere Optionen für andere Funktionen und spezielle Anwendungszwecke werden in den entsprechenden Kapiteln vorgestellt.

Option Parameter Erklärung
verbose ausführliche Ausgaben von GnuPG in der Konsole
quiet im Gegensatz zu verbose werden mit quiet die Ausgaben von GnuPG auf das Notwendigste beschränkt
default-key Schlüssel-ID die Schlüssel-ID des eigenen Hauptschlüssels, der standardmäßig zum Signieren und Zertifizieren verwendet werden soll. Bei einem Hauptschlüssel zum Zertifizieren und einem Unterschlüssel zum Signieren, wird auch die Schlüssel-ID des Hauptschlüssel eingetragen, denn für das Signieren wechselt GnuPG automatisch zum Unterschlüssel.
encrypt-to Schlüssel-ID bei der Verschlüsselung mit einem öffentlichen Schlüssel wird immer zusätzlich mit dem zweiten öffentlichen Schlüssel verschlüsselt, dessen Schlüssel-ID hier angegeben wird (Doppelverschlüsselung). Das kann der eigene Unterschlüssel sein, wenn man z. B. möchte, das jede E-Mail, die mit einem fremden, öffentlichen Schlüssel verschlüsselt wird, auch mit dem eigenen Schlüssel verschlüsselt wird, um die E-Mail zu einem späteren Zeitpunkt wieder selbst entschlüsseln zu können.
default-recipient-self [Schlüssel-ID] der eigene Unterschlüssel (E) wird zum Verschlüsseln benutzt, wenn keine Angabe zum Schlüssel einer anderen Person an GnuPG übergeben wird. Stattdessen kann auch „default-recipient Schlüssel-ID“ verwendet werden, wenn ein bestimmter Unterschlüssel verwendet werden soll.
hidden-encrypt-to Schlüssel-ID hat dieselbe Funktion wie encrypt-to mit dem Unterschied, dass die Schlüssel-ID des verwendeten Zweitschlüssels in Form von Schlüssel-ID: 0x0000000000000000 aufgenommen wird. Ein Angreifer, der nicht im Besitz des privaten Schlüssels ist, kann so nicht erfahren, an wen und mit welchem Schlüssel die Nachricht zusätzlich verschlüsselt wurde. Das gilt auch für den eigentlichen Nachrichtenempfänger, was zu Rückfragen führen kann.
no-default-keyring die Schlüsselringdateien im GnuPG Heimatverzeichnis werden nicht in die Liste der Schlüsselringe aufgenommen, so dass mit keyring die Schlüsselringe und der Ort für Schlüsselringe selbst definiert wird. Ohne die Option gibt es für GnuPG nur die pubring.kbx Schlüsselringdatei im GnuPG Heimatverzeichnis.
primary-keyring /pfad/pubring.kbx bei mehreren öffentlichen Schlüsselringdateien, die per keyring eingebunden wurden, werden neue Schlüssel immer in die hier angegebene Schlüsselringdatei importiert und gespeichert
keyring /pfad/pubring.kbx
/pfad/datei.[gpg|kbx]
persönliche Schlüsselringdatei für öffentliche Schlüssel
weitere Schlüsselringdatei(en) im alten oder Keybox-Format

Die privaten Schlüssel, die vom gpg-agent gemanaged werden, sind verschlüsselt in einzelnen hexadezimal(keygrip).key Dateien im /pfad/private-keys-v1.d/ Verzeichnis gespeichert.
trustdb-name /pfad/trustdb.gpg Dateiname der Vertrauens-Datenbank
auto-key-locate
no-auto-key-locate
local,methode(n) bei der Verschlüsselung an einen Empfänger mit einer E-Mail Adresse, die kein Bestandteil eines öffentlichen Schlüssels in Schlüsselringen ist, versucht GnuPG zuerst in lokalen („local“) Schlüsselringdateien und dann in Reihenfolge der angegebenen Methoden einen entsprechenden Schlüssel zu finden. Die zweite Option schaltet alle Methode außer local ab.

Methoden:
cert (DNS CERT, RFC-4398)
pka (DNS PKA)
dane (DANE)
wkd (Web Key Directory Protokoll)
ldap (auf LDAP-Servern per LDAP-Protokoll)
keyserver (OpenPGP-Schlüsselserver)
auto-key-retrieve
no-auto-key-retrieve
GnuPG speichert automatisch alle öffentlichen Schlüssel nach ihrer Suche mit den Methoden lt. auto-key-locate, wenn Signaturen überprüft werden und entsprechende Schlüssel im Schlüsselring fehlen. Die zweite Option schaltet den automatischen Erhalt ab.
display-charset Zeichensatz Vom Betriebssystem verwendeter Zeichensatz: utf-8 oder iso-8859-1
utf8-strings Argumente werden GnuPG in der Konsole als UTF8 Zeichenketten übergeben
no-utf8-strings Argumente werden GnuPG in der Konsole als Zeichenketten übergeben, die mit dem Zeichensatz kodiert sind, der mit display-charset angegeben wurde (iso-8859-1)
armor die Ausgabe von Signaturen und Geheimtexten erfolgt in ASCII kodiert und nicht als binäre Daten
no-comments
comment

Zeichenkette
ASCII Signaturen und Geheimtexten wird keine oder die angegebene Zeichenkette als Kommentar vorangestellt
no-emit-version ASCII Signaturen und Geheimtexten wird keine GnuPG Versionsangabe vorangestellt
use-agent wird ggf. unter Linux benötigt, wenn Skripte oder Anwendungen die Existenz der Option auswerten. Deshalb sollte man die Option setzen, auch wenn sie als „dummy option“ in der GnuPG man page gekennzeichnet ist

per GPA

Mit dem GPA kann man eine Reihe von Optionen setzen, die je nach ausgewähltem Erfahrungsgrad – Grundlegend, Fortgeschritten, Experte – an Umfang zunehmen. Über BearbeitenBackend Einstellungen im GPA Menü gelangt man zur Konfiguration der GnuPG Optionen. Dort wird zunächst die Stufe Grundlegend ausgewählt:

GPG-Agent

Der GPG-Agent ist ein Daemon, der u. a. einen Passphrase Zwischenspeicher verwaltet, in dem eine einmalig über das pinentry Programm eingegebene Passphrase zur erneuten Verwendung gespeichert wird. Die Optionen für den GPG-Agent, die man manuell oder per GPA setzt, werden in der gpg-agent.conf Konfigurationsdatei im GnuPG Heimatverzeichnis gespeichert.

Unter Debian wird der GPG-Agent über die /etc/X11/Xsession.d/90gpg-agent Datei oder systemd Unit-Dateien automatisch gestartet. Unter Windows muss er z. B. in einem Startskript mit dem folgenden Aufruf gestartet werden:

c:\programme\gnu\gnupg\gpg-agent.exe --daemon

Basis-Optionen

Option Parameter Erklärung
default-cache-ttl n eine Passphrase wird für n Sekunden zwischengespeichert (Standard: 600 Sekunden)
ignore-cache-for-signing x Passphrases bei Signieroperationen werden nicht zwischengespeichert
pinentry-program /usr/bin/pinentry die zu verwendende pinentry Version, zur Eingabe der Passphrase („PIN“)
scdaemon-program /usr/bin/scdaemon der zur verwendende Smartcard Daemon, wenn OpenPGP Smartcard oder Crypto Stick eingesetzt wird
keep-display unter Linux werden Anfragen zum Wechsel der DISPLAY Variable ignoriert
keep-tty unter Linux werden Anfragen zum Wechsel des Terminals ignoriert
verbose oder quiet ausführliche oder minimale Ausgaben des GPG-Agent

Optionen per GPA

Nach dem erstmaligen Setzen von Optionen im GPA wird die gpg-agent.conf Datei im GnuPG Heimatverzeichnis angelegt und darin die Optionen gespeichert.

Zwischenspeicher leeren

Um alle Passphrases vor Ablauf der Zeitdauer aus dem Zwischenspeicher zu entfernen, sendet man unter Linux das SIGHUP Signal an den GPG-Agent und unter Windows startet man den GPG-Agent neu.

kill -SIGHUP oder -1 PID

pinentry

pinentry-qt4 unter KDE
pinentry-gtk unter Win7
Windows

Unter Windows wird standardmäßig die Windows Portierung der GTK pinentry Version (pinentry-gtk-2.exe) verwendet. Alternativ kann man auch die minimalistischere Win32 pinentry Version (pinentry-w32.exe) verwenden. Dafür setzt man in die gpg-agent.conf Datei:

pinentry-program c:\programme\gnu\gnupg\pinentry-w32.exe
Linux

Unter Linux kann man entweder die pinentry-curses Anwendung in der Konsole verwenden oder die pinentry-qt4 bzw. pinentry-gtk Anwendungen als grafische Fenster. Arbeitet man primär in der Konsole bzw. ohne X, wählt man die pinentry-curses Anwendung.

Unter Ubuntu werden mit der Installation der pinentry-curses Anwendung und der beiden grafischen Versionen alle Anwendungen im Alternatives-System eingebunden und damit die beiden symbolischen Links /usr/bin/pinentry und /usr/bin/pinentry-x11 angelegt, die je nach Wahl der Alternative auf eine der pinentry Anwendungen verweisen.

sudo update-alternatives --display pinentry
sudo update-alternatives --display pinentry-x11

zeigt an, welche der installierten pinentry Anwendungen primär von allen anderen Programmen aufgerufen wird, die pinentry verwenden. Danach kann man die Einstellung der Alternativen ändern:

sudo update-alternatives --config pinentry
Es gibt 2 Auswahlmöglichkeiten für die Alternative pinentry
(welche /usr/bin/pinentry bereitstellen).
 
  Auswahl      Pfad                      Priorität Status
------------------------------------------------------------
* 0            /usr/bin/pinentry-qt4      95        Auto-Modus
  1            /usr/bin/pinentry-curses   50        manueller Modus
  2            /usr/bin/pinentry-qt4      95        manueller Modus
 
Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 1

Statt des /usr/bin/pinentry Symlinks kann man auch jenseits der Alternativen-Einstellung einen pinentry Typ fix in der gpg-agent.conf vorgeben:

pinentry-program /usr/bin/pinentry-curses oder
pinentry-program /usr/bin/pinentry-qt4 oder
pinentry-program /usr/bin/pinentry-gtk

Während für normale Benutzer /usr/bin/pinentry bzw. eine der grafischen pinentry Versionen in der gpg-agent.conf angegeben werden können, muss für root /usr/bin/pinentry-curses in dessen gpg-agent.conf eingetragen werden, wenn man GnuPG Operationen in der Konsole oder über Skripte mit „sudo -H“ ausführen will, um root seine eigenen Schlüsselringe verwenden zu lassen.

Verweise auf aktuelle Seite