OpenPGP Card initialisieren

Eine OpenPGP Card bzw. einen Crypto Stick für die Nutzung vorbereiten

Ziel

Hier wird ein recht aufwendigerer Weg der Initialisierung beschrieben, welcher aber alle vorhandenen Möglichkeiten optimal zu nutzen versucht und gleichzeitig eine möglichst komfortable Handhabung ermöglichen soll. Entgegen der in früheren Versionen dieser Anleitung benutzen Beschreibung der fsfe wird jetzt für jeden Zweck (C - Certify/Beglaubigen, S - Signieren, C - Crypt/Verschlüsseln, A - Authentifizieren) nur ein Schlüssel verwendet. Nur so ist eine eindeutige Schlüsselzuordnung durch verschiedene Programme möglich. Denn manche nehmen bei mehreren vorhandenen Schlüsseln mit gleichem Zweck den neuesten Schlüssel, andere den mit der längsten Laufzeit und wieder andere den ersten, der im Schlüsselbund gefunden wird.

Damit entfällt der permanente Verschlüsselungs-Schlüssel, welcher offline gespeichert wurde und ein Entschlüsseln auch nach Verlust des zur täglichen Nutzung vorgesehenen Verschlüsselungs-Schlüssel ermöglichen sollte. Deswegen ist es wichtig, den zur täglichen Nutzung vorgesehenen Verschlüsselungs-Schlüssel auch nach dessen Ablauf bzw. eventuellem Zurückziehen zu sichern. Ansonsten können damit verschlüsselte Daten nicht mehr entschlüsselt werden.

Die Schlüssel werden auf 2 unterschiedlichen Karten gespeichert, eine für die tägliche Nutzung (Usercard), die andere für administrative Zwecke (Admincard). Es entsteht folgende Struktur:

Schlüsselart Speicherort Einsatz
Hauptschlüssel Admincard Beblaubigen von anderen Schlüsseln
  • Signierungs-Schlüssel
Usercard Signieren im täglichen Gebrauch (Mails)
  • Verschlüsselungs-Schlüssel
Usercard Verschlüsseln im täglichen Gebrauch
  • Authentifizierungs-Schlüssel
Usercard Authentifizieren (z.B. SSH)

Das Speichern des Hauptschlüssels auf der Admincard, hat den Vorteil, daß alle Aktionen, welche nur mit dem Hauptschlüssel durchgeführt werden können, wesentlich komfortabler und sicherer erledigt werden können. Das betrifft vor allen das Beglaubigen anderer Schlüssel.

Im Gegensatz zur Verwendung von z.B. "gpg --card-edit" und "generate" werden alle Schlüssel außerhalb der Karte angelegt. Das ist zwar eventuell weniger sicher, hat aber den Vorteil, daß ein Backup aller Schlüssel angelegt werden kann. Damit ist bei Defekt der Karte eine komplette Wiederherstellung möglich. Auch das Anlegen eine Zweitkarte ist so möglich. Alternativ würde natürlich auch nur ein Backup des Verschlüsselungs-Schlüssels genügen, um verschlüsselte Files bzw. Mails auch nach Defekt oder Verlust der Karte wiederherstellen zu können. Signatur- und Authentifizierungs-Schlüssel werden dann einfach durch neue ersetzt.

Voraussetzungen

Beschrieben wird die Einrichtung der Smartcard unter Linux (im konkreten Beispiel: Gentoo). Sinngemäß sollte alles auch auf andere Distributionen oder sogar Windows angewendet werden können. Folgende Punkte sollten bereits erfüllt/vorhanden sein:

  • Eine OpenPGP Card Version 2, ein Crypto Stick Version 1 (dieser enthält eine OpenPGP Card Version 2) oder ein YubiKey (NEO o.ä. mit OpenPGP Applet).
  • Eingerichteter Kartenleser für die Crypto Card bzw. Hardware-Zugriff auf den Crypto Stick (i.A. genügt die Installation von ccid, pcsc-lite sowie GNUPG Version 2 mit Smartcard-Unterstützung). Im Folgenden verwenden wir einen Yubikey 4, da ist Smartcard und Kartenleser enthalten.
  • GnuPG in Version 2.2.x wurde mit SmardCard-Support installiert. Der gpg-agent läuft.

Letzteres kann z.B. unter Gentoo mit KDE durch Aktivierung von "GPG_AGENT=true" und "SSH_AGENT=gpg" in der Datei /etc/plasma/startup/10-agent-startup.sh erreicht werden:

GPG_AGENT=true
#SSH_AGENT=true
SSH_AGENT=gpg # use gpg-agent for ssh instead of ssh-agent

if [ "${GPG_AGENT}" = true ]; then
        if [ -x /usr/bin/gpgconf ]; then
                gpgconf --launch gpg-agent >/dev/null 2>&1
                if [ $? = 2 ]; then
                        eval "$(/usr/bin/gpg-agent --enable-ssh-support --daemon)"
                fi
        fi
fi

if [ "${SSH_AGENT}" = true ]; then
        if [ -x /usr/bin/ssh-agent ]; then
                eval "$(/usr/bin/ssh-agent -s)"
        fi
elif [ "${SSH_AGENT}" = gpg ] && [ "${GPG_AGENT}" = true ]; then
        if [ -e /run/user/$(id -ru)/gnupg/S.gpg-agent.ssh ]; then
                export SSH_AUTH_SOCK=/run/user/$(id -ru)/gnupg/S.gpg-agent.ssh
        elif [ -e "${HOME}/.gnupg/S.gpg-agent.ssh" ]; then
                export SSH_AUTH_SOCK=${HOME}/.gnupg/S.gpg-agent.ssh
        fi
fi

Das Homeverzeichnis von GnuPG sollte jungfräulich sein. Ist das nicht der Fall, wird (evtl. nach Backup) dieses gelöscht und neu erstellt:

$ rm -rf /home/mmustermann/.gnupg
$ gpg -k
gpg: Verzeichnis `/home/mmustermann/.gnupg' erzeugt
gpg: Die "Keybox" `/home/mmustermann/.gnupg/pubring.kbx' wurde erstellt
gpg: /home/mmustermann/.gnupg/trustdb.gpg: trust-db erzeugt
Danach am besten nochmal ab- und anmelden oder den Rechner komplett neu starten. Sind die Voraussetzungen erfüllt, sollte die Abfrage des Kartenstatus möglich sein:
$ gpg --card-status
Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006012345670000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: [nicht gesetzt]
Language prefs ...: [nicht gesetzt]
Sex ..............: unbestimmt
URL of public key : [nicht gesetzt]
Login data .......: [nicht gesetzt]
Signature PIN ....: nicht zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Das ist ein Beispiel für eine leere Karte. Sollte die Karte schon benutzt worden sein, kann sie wie folgt gelöscht werden:

$ gpg --card-edit



gpg/card> admin
Admin-Befehle sind erlaubt

gpg/card> factory-reset
gpg: OpenPGP Karte Nr. D2760001240102010006054862170000 erkannt

gpg: Hinweis: Dieses Kommando zerstört alle auf der Karte gespeicherten Schlüssel!

Fortsetzen? (j/N) j
Möchten Sie die Karte wirklich komplett löschen? ("yes" eingeben) yes

gpg/card> quit

Das funktioniert nicht mit älteren Versionen des OpenPGP-Applets auf dem Yubikey. Dann wird dessen OpenPGP-Applet bei installiertem Yubikey Manager besser mit folgendem Kommando zurückgesetzt:

$ ykman openpgp reset
WARNING! This will delete all stored OpenPGP keys and data and restore factory settings? [y/N]: y
Resetting OpenPGP data, don't remove your YubiKey...
Success! All data has been cleared and default PINs are set.
PIN:         123456
Reset code:  NOT SET
Admin PIN:   12345678

Grundkonfiguration

An dieser Stelle passen wir die Konfigurationsdateien unter "~/.gnupg" an bzw. erstellen diese, wenn sie noch nicht vorhanden sind. Im Gegensatz zu früheren Versionen dieser Anleitung sind bei aktuellen GnuPG-Versionen nur wenige Optionen erforderlich, da bereits die Default-Werte den Empfehlungen entsprechen (z.B. Anleitung zum optimalen Vorgehen auf riseup.net).

~/.gnupg/gpg.conf

# Options for GnuPG

##default-key 0xXXXXXXXXXXXXXXXX

set-policy-url http://www.musterfirma.bsp/ca/Policy_PGP_Musterfirma_CA_1234567890abcdef.txt

with-fingerprint
ask-cert-expire

"default-key" verweist auf die Id des zum Signieren bevorzugten Schlüssels. Die können wir natürlich erst konfigurieren, wenn wir den Schlüssel erzeugt haben. "set-policy-url" verweist auf die eigene Beglaubigungsrichtlinie. Der Dateiname enthält dabei am Ende (vor dem ".txt") die Schlüssel-Id. Im Beispiel handelt es sich hier um die Beglaubigungsrichtlinie der Zertifizierungsstelle einer fiktiven Firma, welche die Schlüssel zusätzlich signiert. Die Schlüssel-Id im Dateinamen ist demzufolge die des Schlüssels der Zertifizierungsstelle.

In der Regel wird keine Zertifizierungsstelle verwendet. Dann sollte hier (falls man überhaupt eine Beglaubigungsrichtlinie angeben will) die Id des eigenen Schlüssels stehen. Da dieser aber erst noch erstellt wird, kann man diese Option erst nach der Schlüsselerstellung setzen, womit der Schlüssel aber keine Policy-URL enthält. Wie diese noch eingefügt wird, ist weiter unten beschrieben.

Für den GPG-Agent werden folgende Optionen definiert:

~/.gnupg/gpg-agent.conf

enable-ssh-support
allow-mark-trusted
default-cache-ttl 18000
max-cache-ttl 86400
ignore-cache-for-signing

Um später nur verschlüsselt mit Schlüsselserver zu kommunizieren, wird eine Datei mit folgendem Inhalt angelegt:

~/.gnupg/dirmngr.conf

keyserver hkps://keys.openpgp.org

Karten personalisieren

Zuerst sollten auf beiden Karten die PINs geändert werden:

$ gpg --change-pin
gpg: OpenPGP Karte Nr. D2760001240102000005000010B10000 erkannt

1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Ihre Auswahl? 3
PIN changed.

1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Ihre Auswahl? 1
PIN changed.

1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Ihre Auswahl? q
Dabei erfolgt die PIN-Eingabe (alte und neue) im sich jeweils öffnenden Pinentry-Fenster. Die PINs einer neu initialisierten Karte lauten: > PIN: 123456 > Admin-PIN: 12345678 Nun können verschiedene Daten der Karte angepaßt werden, zuerst die Usercard:
$ gpg --card-edit

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006054862170000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: [nicht gesetzt]
Language prefs ...: [nicht gesetzt]
Sex ..............: unbestimmt
URL of public key : [nicht gesetzt]
Login data .......: [nicht gesetzt]
Signature PIN ....: nicht zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

gpg/card> admin
Admin-Befehle sind erlaubt

gpg/card> name
Familienname des Kartenbesitzers:Mustermann
Vorname des Kartenbesitzers:Max

gpg/card> url
URL um den öffentlichen Schlüssel zu holen: https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc

gpg/card> login
Logindaten (Kontenname): mmustermann

gpg/card> lang
Spracheinstellungende

gpg/card> sex
Geschlecht: (Männlich (M), Weiblich (F) oder Leerzeichen): m

gpg/card> forcesig

gpg/card> list

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006054862170000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: Max Mustermann
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc
Login data .......: mmustermann
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

gpg/card> quit

Unter der URL wird der noch zu erzeugende öffentliche Schlüssel abgelegt. Dieser kann dann (z.B. auf einem anderen PC) mittels "fetch" (auch ein card-edit Befehl, s.o.) abgeholt werden. "forcesig" schaltet das Erzwingen der Eingabe der Signatur-PIN um. Der Default-Wert unterscheidet sich bei den verschiedenen Karten-Versionen. Beim abschließenden "list" sollte hinter "Signature PIN ....:" "zwingend" stehen.

Die Admincard wird genauso personalisiert, lediglich beim Namen kann zur Unterscheidung noch ein "(Admin)" hinzugefügt werden:

gpg/card> name
Familienname des Kartenbesitzers:Mustermann (Admin)
Vorname des Kartenbesitzers:Max

Ein Login muß bei der Admincard auch nicht angegeben werden.

GnuPG-Hauptschlüssel erstellen

Der Schlüssel wird nicht einfach auf der Karte erstellt, was zwar prinzipiell sicherer wäre, allerdings nicht die Möglichkeit bietet, von allen Schlüsseln ein Backup anzulegen. Deswegen wird der Schlüssel so erstellt, wie man es auch ohne Karte tun würde:

$ gpg --expert --full-gen-key
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) RSA und RSA (voreingestellt)
   (2) DSA und Elgamal
   (3) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
   (7) DSA (Nutzung selber einstellbar)
   (8) RSA (Nutzung selber einstellbar)
   (9) ECC und ECC
  (10) ECC (nur signieren)
  (11) ECC (Nutzung selber einstellbar)
   (13) Vorhandener Schlüssel
Ihre Auswahl? 8

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Zertif. Verschl. Authentisierung 
Derzeit erlaubte Vorgänge: Signieren Zertif. Verschl. 

   (S) Umschalten der Signaturnutzbarkeit
   (V) Umschalten der Verschlüsselungsnutzbarkeit
   (A) Umschalten der Authentisierungsnutzbarkeit
   (Q) Beenden

Ihre Auswahl? s

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Zertif. Verschl. Authentisierung 
Derzeit erlaubte Vorgänge: Zertif. Verschl. 

   (S) Umschalten der Signaturnutzbarkeit
   (V) Umschalten der Verschlüsselungsnutzbarkeit
   (A) Umschalten der Authentisierungsnutzbarkeit
   (Q) Beenden

Ihre Auswahl? v

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Zertif. Verschl. Authentisierung 
Derzeit erlaubte Vorgänge: Zertif. 

   (S) Umschalten der Signaturnutzbarkeit
   (V) Umschalten der Verschlüsselungsnutzbarkeit
   (A) Umschalten der Authentisierungsnutzbarkeit
   (Q) Beenden

Ihre Auswahl? q

RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (2048) 2048
Die verlangte Schlüssellänge beträgt 2048 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
      <n>  = Schlüssel verfällt nach n Tagen
      <n>w = Schlüssel verfällt nach n Wochen
      <n>m = Schlüssel verfällt nach n Monaten
      <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 0
Schlüssel verfällt nie
Ist dies richtig? (j/N) j

GnuPG erstellt eine User-ID, um Ihren Schlüssel identifizierbar zu machen.

Ihr Name ("Vorname Nachname"): Max Mustermann
Email-Adresse: 
Kommentar: born 1976-02-01 in Musterstadt, Germany
Sie haben diese User-ID gewählt:
    "Max Mustermann (born 1976-02-01 in Musterstadt, Germany)"

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? f
Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
gpg: Schlüssel 2F2C4B05C56A12D3 ist als ultimativ vertrauenswürdig gekennzeichnet
gpg: Verzeichnis `/home/mmustermann/.gnupg/openpgp-revocs.d' erzeugt
gpg: Widerrufzertifikat wurde als '/home/mmustermann/.gnupg/openpgp-revocs.d/2F2D806B6B5802FDA5E7D9302F2C4B05C56A12D3.rev' gespeichert.
Öffentlichen und geheimen Schlüssel erzeugt und signiert.

pub   rsa2048 2019-04-29 [C]
      2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3
uid                      Max Mustermann (born 1976-02-01 in Musterstadt, Germany)

Bei der Schlüsselerstellung wird die gewünschte Passphrase zur Absicherung des Schlüsselbundes im Pinentry-Fenster abgefragt.

Im Beispiel wurde der Hauptschlüssel mit dem Fingerprint "2F2D 806B 6B58 02FD A5E7 D930 2F2C 4B05 C56A 12D3"erzeugt. Der Fingerprint des Hauptschlüssels wird im Folgenden häufig als Parameter angegeben und muß dann durch den Fingerprint des eigenen Hauptschlüssels ersetzt werden.

Es wird ein 2048 Bit langer RSA-Schlüssel erstellt. Prinzipiell könnte auch ein anderes Format oder eine andere Länge gewählt werden, falls die verwendete OpenPGP-Card das unterstützt.

Eine Email-Adresse wurde nicht eingegeben, da die erzeugte Identität als Haupt-/Default-Identität nicht an eine (evtl. nicht permanente) Email-Adresse gebunden werden soll. Ob überhaupt ein Kommentar und falls ja mit solchem Inhalt (born 1976-02-01 in Musterstadt, Germany) angegeben werden sollte, muß jeder selbst entscheiden. S. dazu z.B.: Verwende keinen “Kommentar” in Deiner Benutzer-ID.

Hier nochmal die Auflistung mit allen Parametern:

$ gpg --list-sigs --keyid-format 0xlong --list-options show-policy-urls "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3"
pub   rsa2048/0x2F2C4B05C56A12D3 2019-04-29 [C]
  Schl.-Fingerabdruck = 2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3
uid                [ ultimativ ] Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
sig 3        0x2F2C4B05C56A12D3 2019-04-29  Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
   Beglaubigungsrichtlinie: http://www.musterfirma.bsp/ca/Policy_PGP_Musterfirma_CA_1234567890abcdef.txt

Im Beispiel hat der Hauptschlüssel die Id 0x2F2C4B05C56A12D3. Hier ist auch bereits die Beglaubigungsrichtlinie der Zertifizierungsstelle eingetragen (s. ~/.gnupg/gpg.conf). Soll die Beglaubigungsrichtlinie stattdessen die Id des gerade erstellten Schlüssels enthalten, trägt man nun erst den Parameter "set-policy-url" in die gpg.conf ein:

set-policy-url http://www.musterfirma.bsp/ca/Policy_PGP_Musterfirma_CA_827D473281CC3929.txt

Um dies dann auch an die Schlüssel anzufügen, geht man wie folgt vor:

$ gpg --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3"

Geheimer Schlüssel ist vorhanden.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)

gpg> uid *

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1)* Max Mustermann (born 1976-02-01 in Musterstadt, Germany)

gpg> delsig
uid  Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
sig!3        2F2C4B05C56A12D3 2019-04-29  [Eigenbeglaubigung]
Diese korrekte Beglaubigung entfernen? (j/N/q)j
Eigenbeglaubigung wirklich entfernen? (j/N)j
1 Beglaubigung entfernt.

gpg> sign

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
 Haupt-Fingerabdruck  = 2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3

     Max Mustermann (born 1976-02-01 in Musterstadt, Germany)

Sind Sie wirklich sicher, daß Sie vorstehenden Schlüssel mit Ihrem
Schlüssel "Max Mustermann (born 1976-02-01 in Musterstadt, Germany)" (2F2C4B05C56A12D3) beglaubigen wollen

Dies wird eine Eigenbeglaubigung sein.

Wirklich signieren? (j/N) j

gpg> save

Damit wird die Eigensignatur aller vorhandenen Identitäten erst gelöscht und dann (inkl. URL der Beglaubigungsrichtlinie) wieder angefügt.

Zusätzliche Identitäten

Als Beispiel erstellen wir nun 2 weitere Identitäten - für die private und die Firmen-Email-Adresse:

$ gpg --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3"
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)

gpg> adduid
Ihr Name ("Vorname Nachname"): Max Mustermann
Email-Adresse: mmustermann@unitas-network.de
Kommentar: Unitas Network
Sie haben diese User-ID gewählt:
    "Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>"

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? f

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1)  Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ unbekannt ] (2). Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>

gpg> adduid
Ihr Name ("Vorname Nachname"): Max Mustermann
Email-Adresse: maxm@mustermann-privat.de
Kommentar: privat
Sie haben diese User-ID gewählt:
    "Max Mustermann (privat) <maxm@mustermann-privat.de>"

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? f

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1)  Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ unbekannt ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ unbekannt ] (3). Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> uid 1

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1)* Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ unbekannt ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ unbekannt ] (3). Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> primary

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1)* Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ unbekannt ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ unbekannt ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> save

Nach der Erstellung der beiden zusätzlichen User-IDs wurde die erste wieder als primäre markiert. Das Angeben eines Kommentars ist wieder Ermessenssache (s.o.).

Unterschlüssel für die Usercard erstellen

Signatur-Schlüssel

$ gpg --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3" addkey
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

gpg: "Trust-DB" wird überprüft
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: Tiefe: 0  gültig:   1  signiert:   0  Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u
sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (3) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
   (5) Elgamal (nur verschlüsseln)
   (6) RSA (nur verschlüsseln)
Ihre Auswahl? 4
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (2048) 2048
Die verlangte Schlüssellänge beträgt 2048 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
       <n> = Schlüssel verfällt nach n Tagen
      <n>w = Schlüssel verfällt nach n Wochen
      <n>m = Schlüssel verfällt nach n Monaten
      <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 2y
Key verfällt am Mi 28 Apr 2021 10:10:11 CEST
Ist dies richtig? (j/N) j
Wirklich erzeugen? (j/N) j
Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> save

Es wurde also ein RSA-Schlüssel mit einer Länge von 2048 Bit und einer Gültigkeitsdauer von 2 Jahren mit der Id 0x865E873CCE925644 erstellt.

Verschlüsselungs-Schlüssel

$ gpg --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3" addkey
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (3) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
   (5) Elgamal (nur verschlüsseln)
   (6) RSA (nur verschlüsseln)
Ihre Auswahl? 6
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (2048) 2048
Die verlangte Schlüssellänge beträgt 2048 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
       <n> = Schlüssel verfällt nach n Tagen
      <n>w = Schlüssel verfällt nach n Wochen
      <n>m = Schlüssel verfällt nach n Monaten
      <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 2y
Key verfällt am Mi 28 Apr 2021 10:12:08 CEST
Ist dies richtig? (j/N) j
Wirklich erzeugen? (j/N) j
Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> save

Der Verschlüsselungs-Schlüssel hat die Id 0xB36554A953282A98 bekommen.

Authentifizierungs-Schlüssel

Dafür muß der Expert-Mode genutzt werden, um die sogenannte Leistungsfähigkeit (besser Schlüsselfunktion) umschalten zu können:

$ gpg --expert --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3" addkey
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (3) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
   (5) Elgamal (nur verschlüsseln)
   (6) RSA (nur verschlüsseln)
   (7) DSA (Nutzung selber einstellbar)
   (8) RSA (Nutzung selber einstellbar)
  (10) ECC (nur signieren)
  (11) ECC (Nutzung selber einstellbar)
  (12) ECC (nur verschlüsseln)
   (13) Vorhandener Schlüssel
Ihre Auswahl? 8

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung 
Derzeit erlaubte Vorgänge: Signieren Verschl. 

   (S) Umschalten der Signaturnutzbarkeit
   (V) Umschalten der Verschlüsselungsnutzbarkeit
   (A) Umschalten der Authentisierungsnutzbarkeit
   (Q) Beenden

Ihre Auswahl? s

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung 
Derzeit erlaubte Vorgänge: Verschl. 

   (S) Umschalten der Signaturnutzbarkeit
   (V) Umschalten der Verschlüsselungsnutzbarkeit
   (A) Umschalten der Authentisierungsnutzbarkeit
   (Q) Beenden

Ihre Auswahl? v

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung 
Derzeit erlaubte Vorgänge: 

   (S) Umschalten der Signaturnutzbarkeit
   (V) Umschalten der Verschlüsselungsnutzbarkeit
   (A) Umschalten der Authentisierungsnutzbarkeit
   (Q) Beenden

Ihre Auswahl? a

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung 
Derzeit erlaubte Vorgänge: Authentisierung 

   (S) Umschalten der Signaturnutzbarkeit
   (V) Umschalten der Verschlüsselungsnutzbarkeit
   (A) Umschalten der Authentisierungsnutzbarkeit
   (Q) Beenden

Ihre Auswahl? q
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (2048) 2048
Die verlangte Schlüssellänge beträgt 2048 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
       <n> = Schlüssel verfällt nach n Tagen
      <n>w = Schlüssel verfällt nach n Wochen
      <n>m = Schlüssel verfällt nach n Monaten
      <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 2y
Key verfällt am Mi 28 Apr 2021 10:15:13 CEST
Ist dies richtig? (j/N) j
Wirklich erzeugen? (j/N) j
Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> save

Der Authentisierungsschlüssel wurde mit Id 0xA4625D4AE8D91416 erstellt. Damit sind alle benötigten Schlüssel erzeugt (s. Funktion hinter "Nutzung:" in obiger Ausgabe):

  • Hauptschlüssel (Id 0x2F2C4B05C56A12D3) zur Beglaubigung von Schlüsseln
    • Signatur-Schlüssel (Id 0x865E873CCE925644)
    • Verschlüsselungs-Schlüssel (Id 0xB36554A953282A98)
    • Authentifizierungs-Schlüssel (Id 0xA4625D4AE8D91416)

Alle Schlüssel befinden sich im lokalen Schlüsselbund (Keyring) auf der Festplatte des PC.

Backup

Nun wird ein Backup des Schlüsselbundes angelegt:

$ cp ~/.gnupg/openpgp-revocs.d/2F2D806B6B5802FDA5E7D9302F2C4B05C56A12D3.rev .
$ gpg --export --armor "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3" > 2F2D806B6B5802FDA5E7D9302F2C4B05C56A12D3.pub.asc
$ gpg --export-secret-keys --armor "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3" > 2F2D806B6B5802FDA5E7D9302F2C4B05C56A12D3.priv.asc
$ gpg --export-secret-subkeys --armor "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3" > 2F2D806B6B5802FDA5E7D9302F2C4B05C56A12D3.priv_sub.asc

Damit werden das automatisch erstellte Widerufszertifikat, der öffentliche Hauptschlüssel, der private Hauptschlüssel und die privaten Unterschlüssel ins aktuelle Verzeichnis kopiert. Daraus wird eine verschlüsselte ZIP-Datei erstellt:

$ 7z a -tzip -mem=AES256 -p PGP-MMustermann.zip 2F2D806B6B5802FDA5E7D9302F2C4B05C56A12D3.*
$ rm 2F2D806B6B5802FDA5E7D9302F2C4B05C56A12D3.*

Die ZIP-Datei (PGP-MMustermann.zip) kann auf ein sicheres Offline-Medium (z.B. USB-Stick) verschoben werden, welches dann im Tresor gelagert wird.

Ein Ausdruck auf Papier ist auch sinnvoll, z.B. mit PaperKey:

$ gpg --export-secret-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3" | paperkey --output paperkey.asc

Schlüssel auf die Karte verschieben

Usercard

Hier werden die für den täglichen Gebrauch vorgesehenen Unterschlüssel auf die Usercard verschoben. Zuerst der Signatur-, dann der Verschlüsselungs und zuletzt der Authentisierungs-Schlüssel. Bitte vorher auf das Einstecken der richtigen Karte achten (jetzt also die Usercard).

Bitte im Folgenden nicht blind den Befehl zur Schlüsselauswahl (z.B. "key 2") kopieren, sondern an Hand der Id und z.B. "Aufruf" und "verfällt" den korrekten Schlüssel wählen!

$ gpg --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3"
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> key 1

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb* rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
   (1) Signatur-Schlüssel
   (3) Authentisierungs-Schlüssel
Ihre Auswahl? 1                                                                                                                                       

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb* rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> key 1

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> key 2

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb* rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
   (2) Verschlüsselungs-Schlüssel
Ihre Auswahl? 2

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb* rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> key 2

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> key 3

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb* rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
   (3) Authentisierungs-Schlüssel
Ihre Auswahl? 3

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
ssb* rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> save

Die Usercard sieht nun wie folgt aus:

$ gpg --card-status

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006054862170000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: Max Mustermann
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc
Login data .......: mmustermann
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: D5EA 30A8 FDF4 39AB E231  B145 865E 873C CE92 5644
      created ....: 2019-04-29 08:09:06
Encryption key....: 5D9C D1AE 6362 0E55 52D4  DA8E B365 54A9 5328 2A98
      created ....: 2019-04-29 08:11:24
Authentication key: 372A DBDF 4147 4169 47C5  E6AB A462 5D4A E8D9 1416
      created ....: 2019-04-29 08:14:01
General key info..: sub  rsa2048/865E873CCE925644 2019-04-29 Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
sec   rsa2048/2F2C4B05C56A12D3  erzeugt: 2019-04-29  verfällt: niemals   
ssb>  rsa2048/865E873CCE925644  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/B36554A953282A98  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/A4625D4AE8D91416  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217

Man sieht also, daß hinter "Signature key", "Encryption key" und "Authentication key" die jeweiligen Schlüssel eingetragen sind. Die unteren Zeilen (nach "General key info") zeigen den aktuellen Schlüsselbund auf dem PC an. Das ">" hinter "ssb" zeigt an, daß diese Schlüssel auf eine Karte verschoben wurden. Die Nummer der Karte steht in der nächsten Zeile.

Admincard

Momentan befinden sich die 3 Unterschlüssel auf der Usercardarte, der Hauptschlüssel befindet sich noch im lokalen Schlüsselbund. Dieser wird nun auf die Admincard verschoben (diese also statt der Usercard auch einstecken):

$ gpg --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3"
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
     Kartennummer:0006 05486217
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
     Kartennummer:0006 05486217
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
     Kartennummer:0006 05486217
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> keytocard
Den Hauptschlüssel wirklich verschieben? (j/N) j
Wählen Sie den Speicherort für den Schlüssel:
   (1) Signatur-Schlüssel
   (3) Authentisierungs-Schlüssel
Ihre Auswahl? 1

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
     Kartennummer:0006 05486217
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
     Kartennummer:0006 05486217
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
     Kartennummer:0006 05486217
[ ultimativ ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ ultimativ ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ ultimativ ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> save

Die Admincard sieht nun wie folgt aus:

$ gpg --card-status

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006052274280000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05227428
Name of cardholder: Max Mustermann (Admin)
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc
Login data .......: [nicht gesetzt]
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: 2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3
      created ....: 2019-04-29 07:00:49
Encryption key....: [none]
Authentication key: [none]
General key info..: pub  rsa2048/2F2C4B05C56A12D3 2019-04-29 Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
sec>  rsa2048/2F2C4B05C56A12D3  erzeugt: 2019-04-29  verfällt: niemals   
                                Kartennummer:0006 05227428
ssb>  rsa2048/865E873CCE925644  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/B36554A953282A98  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/A4625D4AE8D91416  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217

Hier ist also nun hinter "Signature key" der Hauptschlüssel eingetragen. Die unteren Zeilen (nach "General key info") zeigen wieder den aktuellen Schlüsselbund auf dem PC an. Dort steht nun auch das ">" hinter "sec", also wurde auch dieser Schlüssel auf eine Karte verschoben. Die Kartennummer für den ersten Schlüssel ist die der Admincard, die der anderen Schlüssel die der Usercard.

Anpassen Konfiguration

Mittels "default-key" wird der zum Signieren standardmäßig zu verwendende Schlüssel festgelegt. Das ist der Signaturschlüssel auf der Usercard.

Durch Hinzufügen der weiteren Einträge wird sichergestellt, daß alle von uns verschlüsselten Daten zusätzlich zum öffentlichen Schlüssel des Empfängers auch mit dem eigenen Verschlüsselungsschlüssel verschlüsselt werden. Damit können die verschlüsselten Daten auch selbst wieder entschlüsselt werden.

~/.gnupg/gpg.conf

default-key 0x865E873CCE925644

try-secret-key 0xB36554A953282A98
hidden-encrypt-to 0xB36554A953282A98!
default-recipient 0xB36554A953282A98!

Test

Ver- und Entschlüsseln

Wir erstellen eine Testdatei:

$ echo "Das ist ein Test" > ~/Test.txt

und verschlüsseln diese an uns selbst (kein Empfänger angegeben). Die dabei entstandene ASCII-Datei zeigen wir uns an:

$ gpg -a -e ~/Test.txt
gpg: übersprungen: öffentlicher Schlüssel bereits als Standardempfänger gesetzt

$ cat ~/Test.txt.asc
-----BEGIN PGP MESSAGE-----

hQEMAwAAAAAAAAAAAQf/S79Iom6vkvsD/w5SxhRE0yC/3ME2OvAULue19YazM1lr
U94+zvxuAPkKS6pI0LffXzH3FtMzsyBdJ5RJwZrOQp5WJH80ZJNLZpfntUiMpDKX
iRGOmeOgBN+cVErlZuxTxhf7jKqeOngKkJwPok4LoIN+1gtU+Y3c7FQjhZzXi1ls
RoDTmqtR1tUkVSUw3P53v53FNU1OFUDeqGJZu9chXTV34ZiYy5Ew4Ff5QdfF1F8K
AU3rYMv/cgafokdDgqY15kWSLHABFsohEZtLP+zjAKJe7ZJJM17j6Ix8N7Ef5bYB
ktU0jUTWXN1oe9Y16l45GLQ3LdHUh+Se8omH7EaujdJSAe2ms3eEl6jP8bpSH7fk
xZmybdwolR8SyuxIuDkr56BTBeEkuWXtN7ZNNb7MMeXuzHrRg4OWQ5n5wcTxJJ9w
oQvY0ZbKqwVKIr5ABK34qK5AqQ==
=3Qml
-----END PGP MESSAGE-----

Nun wird wieder entschlüsselt:

$ gpg -d ~/Test.txt.asc
gpg: "0x865E873CCE925644" wird als voreingestellter geheimer Signaturschlüssel benutzt
gpg: Ungenannter Empfänger; Versuch mit geheimen Schlüssel B36554A953282A98 ...
gpg: Alles klar, wir sind der ungenannte Empfänger.
gpg: verschlüsselt mit RSA Schlüssel, ID 0000000000000000
Das ist ein Test
$ rm ~/Test.txt.asc

Dabei sollte nach der PIN der Karte gefragt werden. Es werden die verschiedenen Schlüssel durchprobiert und bei Erfolg der unverschlüsselte Inhalt der Datei ausgegeben. Das Entschlüsseln sollte nun nochmal ohne eingelegte Karte getestet werden, das darf dann nicht funktionieren.

Signieren

Nun signieren wir die Testdatei mit dem privaten Schlüssel und lassen uns das Ergebnis anzeigen:

$ gpg --clearsign ~/Test.txt
gpg: "0x4D4A32F1E8CABE19" wird als voreingestellter geheimer Signaturschlüssel benutzt

$ cat ~/Test.txt.asc 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Das ist ein Test
-----BEGIN PGP SIGNATURE-----

iQGBBAEBCABrFiEE1eowqP30OaviMbFFhl6HPM6SVkQFAlzGwG9NGmh0dHA6Ly93
d3cubXVzdGVyZmlybWEuYnNwL2NhL1BvbGljeV9QR1BfTXVzdGVyZmlybWFfQ0Ff
ODI3RDQ3MzI4MUNDMzkyOS50eHQACgkQhl6HPM6SVkQgCgf+PdHOFcYLRO4i3cl5
zvHgtvssHdQ34dacZArOdFiZ5MwyTW8FHbOOhr4bY0SPNTNgxANmVqPxbeEvAgiX
rmUdP5vChB2TFp5dMNuojZyA8n3cJJjV9tQfWb1rILUpZax7lv82bz+3o4QvVajJ
NrONf4Mb9Dd2xXUxQvb+cM2BiguDAyuKBd3N4eYCo5HtO1VkD5M9uDM0LnTJiSrs
9XZlJvxADDLexShRNuyss2Dl0wXVF2VjRgYYLMUscNz2+bnHTCIIldD3lN1edcaC
Zii64kGZJcsQueGvOvaFGarl2X1TtdAo0alNcrXuCdNIMjKAnegN58on/cHIDEQk
I/OvLw==
=vx/R
-----END PGP SIGNATURE-----

Dabei sollte wieder nach der Karten-PIN gefragt werden. Zur Kontrolle auch diesen Test ohne Karte wiederholen.

Zuletzt wird die korrekte Signatur überprüft:

$ gpg --verify ~/Test.txt.asc
gpg: Signatur vom Mo 29 Apr 2019 11:14:23 CEST
gpg:                mittels RSA-Schlüssel D5EA30A8FDF439ABE231B145865E873CCE925644
gpg: Korrekte Signatur von "Max Mustermann (born 1976-02-01 in Musterstadt, Germany)" [ultimativ]
gpg:                     alias "Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>" [ultimativ]
gpg:                     alias "Max Mustermann (privat) <maxm@mustermann-privat.de>" [ultimativ]
gpg: Beglaubigungsrichtlinie: http://www.musterfirma.bsp/ca/Policy_PGP_Musterfirma_CA_827D473281CC3929.txt
Haupt-Fingerabdruck  = 2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3
Unter-Fingerabdruck  = D5EA 30A8 FDF4 39AB E231  B145 865E 873C CE92 5644

gpg: WARNUNG: Keine abgetrennte Signatur; die Datei '/home/mmustermann/Test.txt' wurde NICHT überprüft!

Schlüssel veröffentlichen

Der öffentliche Schlüssel wird im Textformat exportiert:

$ gpg --export --armor --output /tmp/mmustermann-pgp.asc "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3"

Die entstandene Datei /tmp/mmustermann-pgp.asc wird dann unter der auf der Karte angegebenen URL (https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc) veröffentlicht. Zusätzlich kann auch noch eine Veröffentlichung auf den Schlüsselservern erfolgen.

Tipps & Tricks

Karte auf anderem Computer verwenden

Soll die Usercard auf einem weiteren PC genutzt werden, erstellt man auf diesem zuerst, wie oben beschrieben, die Voraussetzungen und die Grundkonfiguration bzw. paßt die vorhandene Umgebung entsprechend an.

Dann wird die Karte bekanntgegeben. Zuerst wird der öffentliche Schlüssel geholt:

$ gpg --card-edit

gpg: Die "Keybox" `/home/mmustermann/.gnupg/pubring.kbx' wurde erstellt

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006054862170000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: Max Mustermann
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc
Login data .......: mmustermann
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 1
Signature key ....: D5EA 30A8 FDF4 39AB E231  B145 865E 873C CE92 5644
      created ....: 2019-04-29 08:09:06
Encryption key....: 5D9C D1AE 6362 0E55 52D4  DA8E B365 54A9 5328 2A98
      created ....: 2019-04-29 08:11:24
Authentication key: 372A DBDF 4147 4169 47C5  E6AB A462 5D4A E8D9 1416
      created ....: 2019-04-29 08:14:01
General key info..: [none]

gpg/card> fetch
gpg: fordere Schlüssel von https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc an
gpg: /home/mmustermann/.gnupg/trustdb.gpg: trust-db erzeugt
gpg: Schlüssel 2F2C4B05C56A12D3: Öffentlicher Schlüssel "Max Mustermann (born 1976-02-01 in Musterstadt, Germany)" importiert
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg:                              importiert: 1

gpg/card> quit

Alternativ kann der öffentliche Schlüssel auch von einem Schlüsselserver oder dem anderen Computer kopiert werden.

Nach dem folgenden Kommando weiß der neue Computer dann auch, welche geheimen Schlüssel sich auf der Usercard befinden:

$ gpg --card-status

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006054862170000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: Max Mustermann
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc
Login data .......: mmustermann
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 1
Signature key ....: D5EA 30A8 FDF4 39AB E231  B145 865E 873C CE92 5644
      created ....: 2019-04-29 08:09:06
Encryption key....: 5D9C D1AE 6362 0E55 52D4  DA8E B365 54A9 5328 2A98
      created ....: 2019-04-29 08:11:24
Authentication key: 372A DBDF 4147 4169 47C5  E6AB A462 5D4A E8D9 1416
      created ....: 2019-04-29 08:14:01
General key info..: sub  rsa2048/865E873CCE925644 2019-04-29 Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
sec#  rsa2048/2F2C4B05C56A12D3  erzeugt: 2019-04-29  verfällt: niemals   
ssb>  rsa2048/865E873CCE925644  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/B36554A953282A98  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/A4625D4AE8D91416  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217

Der Hauptschlüssel ist noch unbekannt ("#" hinter "sec"). Abhilfe schafft bei Bedarf ein "gpg --card-status" mit eingesteckter Admincard.

Dem neuen Schlüssel sollten wir uneingeschränkt vertrauen:

$ gpg --edit-key "2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3"
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Kartennummer:0006 05227428
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
     Kartennummer:0006 05486217
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
     Kartennummer:0006 05486217
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
     Kartennummer:0006 05486217
[ unbekannt ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ unbekannt ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ unbekannt ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

gpg> trust

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Kartennummer:0006 05227428
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
     Kartennummer:0006 05486217
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
     Kartennummer:0006 05486217
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
     Kartennummer:0006 05486217
[ unbekannt ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ unbekannt ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ unbekannt ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>

Bitte entscheiden Sie, in wieweit Sie diesem User zutrauen,
Schlüssel anderer User korrekt zu prüfen (durch Vergleich
mit Lichtbildausweisen, Vergleich der Fingerabdrücke aus
unterschiedlichen Quellen ...)?


 1 = Weiß nicht so recht
 2 = Nein, ihm traue ich NICHT
 3 = Ich vertraue ihm marginal
 4 = Ich vertraue ihm vollständig
 5 = Ich vertraue ihm absolut
 m = Zurück zum Menü

Ihre Auswahl? 5
Wollen Sie diesem Schlüssel wirklich ultimativ vertrauen? (j/N) j

sec  rsa2048/2F2C4B05C56A12D3
     erzeugt: 2019-04-29  verfällt: niemals     Nutzung: C   
     Kartennummer:0006 05227428
     Vertrauen: ultimativ     Gültigkeit: unbekannt
ssb  rsa2048/865E873CCE925644
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: S   
     Kartennummer:0006 05486217
ssb  rsa2048/B36554A953282A98
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: E   
     Kartennummer:0006 05486217
ssb  rsa2048/A4625D4AE8D91416
     erzeugt: 2019-04-29  verfällt: 2021-04-28  Nutzung: A   
     Kartennummer:0006 05486217
[ unbekannt ] (1). Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
[ unbekannt ] (2)  Max Mustermann (Unitas Network) <mmustermann@unitas-network.de>
[ unbekannt ] (3)  Max Mustermann (privat) <maxm@mustermann-privat.de>
Bitte beachten Sie, daß ohne einen Programmneustart die angezeigte
Schlüsselgültigkeit nicht notwendigerweise korrekt ist.

gpg> quit

Damit sollte die Karte auch auf diesem PC normal genutzt werden können.

Neue Karte mit alten Schlüsseln

Nach einem Tausch der Karte (z.B. nach Defekt) muß GnuPG wissen, daß sich die Schlüssel nun auf einer anderen Karte befinden. Sonst wird bei jeder Aktion mit den geheimen Schlüsseln nach der alten Karte verlangt. Dazu löscht man einfach die privaten Schlüssel. Das folgende Kommando aber nur so ausführen, wenn keine anderen privaten Schlüssel vorhanden sind! Ansonsten nur den einzelnen Hauptschlüssel der Karte löschen. Anschließend liest man die Karte neu ein:

$ rm ~/.gnupg/private-keys-v1.d/*
$ gpg --card-status

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006054862170000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: Max Mustermann
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc
Login data .......: mmustermann
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 1
Signature key ....: D5EA 30A8 FDF4 39AB E231  B145 865E 873C CE92 5644
      created ....: 2019-04-29 08:09:06
Encryption key....: 5D9C D1AE 6362 0E55 52D4  DA8E B365 54A9 5328 2A98
      created ....: 2019-04-29 08:11:24
Authentication key: 372A DBDF 4147 4169 47C5  E6AB A462 5D4A E8D9 1416
      created ....: 2019-04-29 08:14:01
General key info..: sub  rsa2048/865E873CCE925644 2019-04-29 Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
sec#  rsa2048/2F2C4B05C56A12D3  erzeugt: 2019-04-29  verfällt: niemals   
ssb>  rsa2048/865E873CCE925644  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/B36554A953282A98  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/A4625D4AE8D91416  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217

Das kann dann noch mit der Admincard wiederholt werden:

$ gpg --card-status

Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006052274280000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05227428
Name of cardholder: Max Mustermann (Admin)
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://www.unitas-network.de/unternehmen/mitarbeiter/mmustermann-pgp.asc
Login data .......: [nicht gesetzt]
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: 2F2D 806B 6B58 02FD A5E7  D930 2F2C 4B05 C56A 12D3
      created ....: 2019-04-29 07:00:49
Encryption key....: [none]
Authentication key: [none]
General key info..: pub  rsa2048/2F2C4B05C56A12D3 2019-04-29 Max Mustermann (born 1976-02-01 in Musterstadt, Germany)
sec>  rsa2048/2F2C4B05C56A12D3  erzeugt: 2019-04-29  verfällt: niemals   
                                Kartennummer:0006 05227428
ssb>  rsa2048/865E873CCE925644  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/B36554A953282A98  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217
ssb>  rsa2048/A4625D4AE8D91416  erzeugt: 2019-04-29  verfällt: 2021-04-28
                                Kartennummer:0006 05486217