My GnuPG configuration

An overview of noteworthy GnuPG configuration options, including instructions on having strong ciphers and group encryption

Following my recent blogpost series about Thunderbird, I’d like to show you my GnuPG configuration today. I’m for sure no expert, so feedback on improvements is highly welcome. I run GPGTools on OS X, but this guide should be applicable to all recent versions of GnuPG.

Generating a safe key pair

For generating a safe key pair, I recommend reading Alex Cabal’s blogposting, which was a tremendous help to me.

The GnuPG configuration

GnuPG’s configuration is done in ~/.gnupg/gpg.conf, a file that is read each time GnuPG is started. Note that external wrappers like Enigmail can overwrite some of the settings at runtime by using individual command-line parameters.

GnuPG configuration in an editor
GnuPG configuration in an editor

Let’s now have a look at my configuration file, line by line:

charset utf-8

This sets the character set of the input files to UTF-8, which should be the default encoding on most modern systems.

keyserver hkps://hkps.pool.sks-keyservers.net

This configures a default keyserver for public key retrieval.

personal-digest-preferences SHA512
cert-digest-algo SHA512
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

This configures SHA512 hashing, to avoid using weak algorithms.

no-emit-version
no-comments

Agreeably a bit of security by obscurity, this disables not only the output of GnuPG’s version, but also completely disables the comment field that is used to display the software’s name and operating system.

no-greeting

This omits the greeting message when GnuPG is invoked on the command line.

default-key 0x12345678

This sets the default key used for signing messages. 0x12345678 should be replaced by your key ID, of course. Note: You can also use the 16-character display of your key here, as provided by the 0xlong keyid-format.

default-recipient-self

With the help of this option, your own key (see above) is used as default recipient for encrypted messages in case no other one is provided.

encrypt-to 0x12345678

This setting can be used to encrypt all messages additionally with your own key, next to the original recipient one’s. 0x12345678 should be replaced by your key ID, of course. Note: You can also use the 16-character display of your key here, as provided by the 0xlong keyid-format.

keyid-format 0xlong

To display key IDs in their long format (16 instead of 8 characters), use this setting.

How to group recipients

When you regularly encrypt files for the same recipients, like your colleagues, the group feature comes in handy. In gpg.conf you can define a set of keys and assign an identifier to them:

group colleagues=0x12345678 0x23456789 0x34567890

This creates the group colleagues with three keys. To now encrypt files with these keys, you can use

gpg --always-trust --recipient colleagues --encrypt-files file1 file2 file3

What else?

Right now, I’m looking into using my external key token as storage for my private key. An interesting side-effect of this is to use the same key as SSH authentication token – but those topics will most likely be covered in a separate blogpost in the future.

Florian Effenberger

Autor: Florian Effenberger

Florian engagiert sich seit über 14 Jahren für freie Software und ist einer der Gründer der The Document Foundation, der Stiftung hinter LibreOffice

13 Gedanken zu „My GnuPG configuration“

  1. Ich muss da nochmal eine Stufe vorher ansetzen. Ich denke, ich verstehe das Problem, um dass es im Artikel von Alex Cabal geht.

    Er schreibt, der Schlüssel soll nicht zu lange gültig sein. Kann ich denn nach Anlauf des Schlüssels meine E-Mails noch lesen im Posteingang und Ausgang? (Wenn ich die E-Mail lokal speichere (*.eml). wirkt dann die Verschlüsselung auch noch?)

    Damit jemand anderes Unfug machen kann, brauch er aber das Passwort für meinen privaten Schlüssel, oder? Dann kann er aber das Passwort ändern und mich so aussperren und gleichzeitg als ich mailen?

    Bekommt man nach Ablauf des Schlüssels einer anderen Person dann automatisch den Neuen von dieser, wenn diese einen erstellt haben sollte?

    1. Dann versuche ich mal, etwas Licht ins Dunkel zu bringen :-)

      – Wenn der Schlüssel abgelaufen ist, kannst du damit nicht mehr unterschreiben und andere können damit nicht mehr verschlüsseln, bestehende Mails kannst du aber problemlos entschlüsseln und deine Signatur auf alten Mails kann ebenfalls verifiziert werden.

      – Wenn du die Mails lokal speicherst sind sie ebenfalls verschlüsselt, außer du entschlüsselst dauerhaft – das geht in neueren Enigmail-Versionen.

      – Um deinen Schlüssel zu benutzen wird sowohl die Schlüsseldatei als auch das Passwort benötigt. Die Schlüsseldatei ist lokal damit verschlüsselt, d.h. eine Änderung auf einem anderen Rechner wirkt sich nicht auf deine gespeicherte Kopie aus. Du könntest sogar im Büro ein anderes Passwort als zuhause haben, bei jeweils demselben Schlüssel.

      – Man kann Schlüssel wohl auch verlängern, das hab ich aber noch nie probiert – meiner hat kein Ablaufdatum drin. Ein Grund ist, dass die Leute den neuen Schlüssel dann erst aktiv holen müssen, indem sie den Keyserver befragen. Ich bekomme heute teils noch E-Mails, die mit meinem alten Schlüssel verschlüsselt werden, obwohl er als zurückgezogen gelistet ist. Die Absender haben einfach ihren Schlüsselbund noch nicht aktualisiert, automatisch passiert das nicht.

      1. Dann versuche ich mal, etwas Licht ins Dunkel zu bringen

        Danke :-)

        – Wenn der Schlüssel abgelaufen ist, kannst du damit nicht mehr unterschreiben und andere können damit nicht mehr verschlüsseln, bestehende Mails kannst du aber problemlos entschlüsseln und deine Signatur auf alten Mails kann ebenfalls verifiziert werden.

        Also muss man die Passphrase ein leben lang behalten … Uiuiui

        – Um deinen Schlüssel zu benutzen wird sowohl die Schlüsseldatei als auch das Passwort benötigt. Die Schlüsseldatei ist lokal damit verschlüsselt, d.h. eine Änderung auf einem anderen Rechner wirkt sich nicht auf deine gespeicherte Kopie aus. Du könntest sogar im Büro ein anderes Passwort als zuhause haben, bei jeweils demselben Schlüssel.

        Ah, ok. Das heißt der böse Bube muss also dann dass passende Passwort haben und nicht eins von einem anderen Rechner …

        – Man kann Schlüssel wohl auch verlängern, das hab ich aber noch nie probiert – meiner hat kein Ablaufdatum drin. Ein Grund ist, dass die Leute den neuen Schlüssel dann erst aktiv holen müssen, indem sie den Keyserver befragen. Ich bekomme heute teils noch E-Mails, die mit meinem alten Schlüssel verschlüsselt werden, obwohl er als zurückgezogen gelistet ist. Die Absender haben einfach ihren Schlüsselbund noch nicht aktualisiert, automatisch passiert das nicht.

        Aber es heißt doch, dass man mit dem Zurückziehschlüssel es unmöglich macht, ihn noch zu verwenden …

      2. Die Passphrase kannst du jederzeit ändern. Die hat aber auch nichts mit dem Ablauf des Schlüssels zu tun, das sind zwei verschiedene Dinge. ;-)
        Und, ja, das Zurückziehen soll ja gerade dafür sorgen, dass er nicht mehr genutzt wird.

      3. Also muss man die Passphrase ein leben lang behalten … Uiuiui

        Die Passphrase kannst du jederzeit ändern. Die hat aber auch nichts mit dem Ablauf des Schlüssels zu tun, das sind zwei verschiedene Dinge. ?

        Behalten meinte nicht “muss die gleiche bleiben” sondern man muss immer die passende Passphrase behalten.

        Und, ja, das Zurückziehen soll ja gerade dafür sorgen, dass er nicht mehr genutzt wird.

        Und wie können dann Leute die noch nutzen?

  2. Ich hab ja mehrere E-Mail-Konten. Nehmen ich da aus deiner persönlichen Sicht besser einen Schlüssel mit lauter Unterschlüsseln für die einzelnen E-Mail-Konten (jeweils für jeden Rechner eigene wiederum) und packe den Hauptschlüssel dann mit dem Rückrufschlüssel auf einen USB-Stick o. ä. und verstecke das irgendwo?

    1. Was mich gerade auch noch wundert ist, dass ich mit dem Schlüssel einer anderen E-Mail-Adresse unterschreiben kann und den Schlüssel anhängen kann. Wobei ich auch noch herausfinden muss, was der Unterschied der beiden Funktionen ist.

      Das Thema wirklich zu durchdringen, um es wirklich richtig anwenden zu können (nicht, dass man sich in falscher Sicherheit wiegt), ist gar nicht so einfach. Vor 10 Jahren oder mehr wollte ich das schon angehen, aber es war nicht mal so eben getan.

      1. Du musst unterscheiden zwischen öffentlichem und privatem Schlüssel – nur der öffentliche wird an die Mail angehängt. Der Unterschied zwischen Public und Private Key ist essentiell. ;-) Besser als den Schlüssel anhängen ist ohnehin, ihn auf einen Keyserver zu laden.

      2. Der Unterschied ist mir schon klar, keine Sorge. Ich sinniere noch über den Unterschied von Schlüssel anhängen/mit Key-Server zur Verfügung stellen und Unterschreiben nach. Auch das werde ich noch herausfinden …

    2. Ich hatte früher die Variante mit einem Schlüssel pro Konto, mittlerweile füge ich das als Identitäten zu einem Hauptschlüssel hinzu. Ich arbeite allerdings anhand der verlinkten Anleitung von Alex Cabal, mit verschiedenen Unterschlüsseln. Doppelt und dreifach gesichert an sicheren Orten. ;-)

      1. Also für mich fasse ich das so zusammen:

        1) E-Mail-Adresse wie gnupg@wasanderesalseffenberger.org anlegen. Wenn sich jemand die Adresse aus dem Keyserver fischt, kann er die zuspammen wie er will, weil ich sie eh nicht weiter abrufe oder nur gelegentlich von einer Live-CD um den Spam zu löschen. Oder ist es wichtig, dass man diese Adresse regelmäßig liest?
        2) Unterschlüssel anlegen nach der Anleitung jeweils für den Laptop und den PC.
        3) Privaten und öffentlichen Hauptschlüssel und die jeweiligen Subschlüssel auf CD brennen und in ein Tresor o. ä. packen und die beiden Hauptschlüssel von des Festplatte löschen. Die Subschlüssel für den Laptop auf den Laptop verschieben. Zur Sicherheit eine zweite CD brennen als Absicherung gegen eine defekte CD. Wenn man ein gutes Gedächtnis hat, verschlüsselt man den Key noch mit einem anderen Passwort in einem TrueCrypt-Container o. ä. Die Passphrase von GNU speichert man nirgends und schreibt sie nirgends auf.
        4) Wenn was schief geht oder so, widerrufe ich z. B. die Laptop-Subschlüssel vom PC aus wenn der Laptop gestohlen wird oder umgekehrt vom Laptop die PC-Subschlüssel wenn während meiner Abwesenheit der Geheimdienst an meinem PC war. Dann kann man mit den Subschlüsseln nichts mehr verschlüsseln, nur noch lesen.
        5) Auf einen Keyserver packe ich den einen öffentlichen Hauptschlüssel und Flo ist zufrieden. Und den kommuniziere ich dann unabhängig von der e-Mail-Adresse?

        Jetzt muss ich mir nur noch überlegen wie ich über die vielen Mailkonten jeweils zwei Passphrasen behalten soll … Oder habe ich das falsch verstanden und es bleibt eine Passphrase?

Schreibe einen Kommentar