20 June 2018 letzte Änderung am So 23. Sep 10:00:22 CEST 2018

Autoren:
DebXWoody

E-Mails und Dateien signieren und verschlüsseln mit GnuPG.

Einleitung

Dieser Artikel wird sicherlich nur die wichtigsten Informationen zu GnuPG beschreiben, da auf der Homepage von GnuPG schon sehr viel Dokumentation zu diesem Thema gibt, beispielsweise Das GNU-Handbuch zum Schutze der Privatsphäre.

Grundlagen

Wichtige Grundlagen zu GnuPG sind auf der Homepage: https://gnupg.org/gph/de/manual/c146.html.

Die ersten Schlüssel

$ gpg --full-gen-key  # (1)
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.

gpg: Verzeichnis `/home/devlug/.gnupg' erzeugt
gpg: Die "Keybox" `/home/devlug/.gnupg/pubring.kbx' wurde erstellt
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:  # (2)
   (1) RSA und RSA (voreingestellt)
   (2) DSA und Elgamal
   (3) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
Ihre Auswahl? 1
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (3072)
Die verlangte Schlüssellänge beträgt 3072 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"): devLUG Demo User
Email-Adresse: mail@domain.tld
Kommentar: Private E-Mail-Adresse
Sie haben diese User-ID gewählt:
    "devLUG Demo User (Private E-Mail-Adresse) <mail@domain.tld>"

Ä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.
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: /home/devlug/.gnupg/trustdb.gpg: trust-db erzeugt
gpg: Schlüssel 3F038A28BF946007 ist als ultimativ vertrauenswürdig gekennzeichnet
gpg: Verzeichnis `/home/devlug/.gnupg/openpgp-revocs.d' erzeugt
gpg: Widerrufzertifikat wurde als '/home/devlug/.gnupg/openpgp-revocs.d/6ECA93643D09E55EB49323313F038A28BF946007.rev' gespeichert.
Öffentlichen und geheimen Schlüssel erzeugt und signiert.

pub   rsa3072 2018-10-06 [SC]
      6ECA93643D09E55EB49323313F038A28BF946007
uid                      devLUG Demo User (Private E-Mail-Adresse) <mail@domain.tld>
sub   rsa3072 2018-10-06 [E]
  1. Mit dem Befehl gpg --full-gen-key kann man ein Schlüsselpaar erzeugen.

  2. Als nächstes wählt man die Art der Schlüssel.

$ gpg --expert --key-edit 6ECA93643D09E55EB49323313F038A28BF946007
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  rsa3072/3F038A28BF946007
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: SC
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa3072/7606F08F088E8A04
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: E
[ ultimativ ] (1). devLUG Demo User (Private E-Mail-Adresse) <mail@domain.tld>

gpg> addkey
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? (3072)
Die verlangte Schlüssellänge beträgt 3072 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)
Schlüssel verfällt nie
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  rsa3072/3F038A28BF946007
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: SC
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa3072/7606F08F088E8A04
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: E
ssb  rsa3072/A5EF6DA4E8B58F22
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: A
[ ultimativ ] (1). devLUG Demo User (Private E-Mail-Adresse) <mail@domain.tld>

gpg> list

sec  rsa3072/3F038A28BF946007
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: SC
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa3072/7606F08F088E8A04
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: E
ssb  rsa3072/A5EF6DA4E8B58F22
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: A
[ ultimativ ] (1). devLUG Demo User (Private E-Mail-Adresse) <mail@domain.tld>

gpg> adduid
Ihr Name ("Vorname Nachname"): Demo User
Email-Adresse: work@domain.tld
Kommentar: Berufliche E-Mail-Adresse
Sie haben diese User-ID gewählt:
    "Demo User (Berufliche E-Mail-Adresse) <work@domain.tld>"

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

sec  rsa3072/3F038A28BF946007
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: SC
     Vertrauen: ultimativ     Gültigkeit: ultimativ
ssb  rsa3072/7606F08F088E8A04
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: E
ssb  rsa3072/A5EF6DA4E8B58F22
     erzeugt: 2018-10-06  verfällt: niemals     Nutzung: A
[ ultimativ ] (1)  devLUG Demo User (Private E-Mail-Adresse) <mail@domain.tld>
[ unbekannt ] (2). Demo User (Berufliche E-Mail-Adresse) <work@domain.tld>

gpg> save

OpenPGP Smart Card V3.3

IMG 0118

OpenPGP

IMG 0114
IMG 0117

Yubikey 4

YubiKey 4 der Firma Yubico.

GPG OpenKeychain
[  202.470118] usb 1-7: new full-speed USB device number 5 using xhci_hcd
[  202.619564] usb 1-7: New USB device found, idVendor=1050, idProduct=0407, bcdDevice= 4.37
[  202.619570] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  202.619574] usb 1-7: Product: Yubikey 4 OTP+U2F+CCID
[  202.619578] usb 1-7: Manufacturer: Yubico
[  202.623103] input: Yubico Yubikey 4 OTP+U2F+CCID as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:1050:0407.0005/input/input21
[  202.682544] hid-generic 0003:1050:0407.0005: input,hidraw4: USB HID v1.10 Keyboard [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:00:14.0-7/input0
[  202.683442] hid-generic 0003:1050:0407.0006: hiddev2,hidraw5: USB HID v1.10 Device [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:00:14.0-7/input1

scdaemon - GNU Privacy Guard - Unterstützung für Chipkarten

Zu Beginn ist die Karte noch sehr leer. Werder persönliche Daten noch Schlüssel sind auf der Karte vorhanden.

% gpg --card-status
Reader ...........: 1050:0407:X:0
Application ID ...: D1234567890123456789012345678890
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 12345678
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]

Persönliche Daten können nur im Admin-Modus gesetzt werden. Somit muss man zunächst mit dem Befehl 'admin' in den Admin-Modus wechseln. Danach können persönliche Daten auf der Karte über die Befehle

  • 'name' Kartenbesitzernamen ändern

  • 'lang' - Ändern der Spracheinstellungen

  • 'sex' - Ändern des Geschlechts des Kartenbesitzers

gesetzt werden.

% gpg --card-edit
gpg/card> admin

nur-Admin Befehl

gpg/card> name
Familienname des Kartenbesitzers:Nachname
Vorname des Kartenbesitzers:Vorname

Schlüssel direkt auf der Karte erzeugen.

gpg/card> generate

Danach kann man die Information der Karte abrufen.

% gpg --card-status
Reader ...........: 1050:0407:X:0
Application ID ...: D1234567890123456789012345678890
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 12345678
Name of cardholder: Vorname Nachname
Language prefs ...: de
Sex ..............: männlich
URL of public key : http://www.daistmeinkey.de
Login data .......: [nicht gesetzt]
Signature PIN ....: nicht zwingend
Key attributes ...: rsa3072 rsa2048 rsa3072
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 8
Signature key ....: 1234 1234 1234 1234 1234  1234 1234 1234 1234 1230
      created ....: 2018-09-22 18:01:52
Encryption key....: 2234 1234 1234 1234 1234  1234 1234 1234 1234 1231
      created ....: 2018-09-01 06:00:00
Authentication key: 3234 1234 1234 1234 1234  1234 1234 1234 1234 1232
      created ....: 2018-09-01 06:00:00
General key info..: pub  rsa3072/123456789ABCDEF0 2018-09-01 Vorname Nachname (Kommentar) <mailbox@domain.tld>
sec>  rsa3072/123456789ABCDEF0  erzeugt: 2018-09-01  verfällt: niemals
                                Kartennummer:1234 12345678
ssb>  rsa3072/9876543123123223  erzeugt: 2018-09-01  verfällt: niemals
                                Kartennummer:1234 12345678
ssb>  rsa2048/1234567654312345  erzeugt: 2018-09-01  verfällt: niemals
                                Kartennummer:1234 12345678

E-Mail Verschlüsselung auf dem Handy

Android + OpenKeyChain + K-9 Mail

GPG OpenKeychain

Gemalto Shell Token