Praktischer Einsatz von GnuPG


URLs:


Ausgangssituation

3 Nutzer: hot, otto und oba

hot und otto wollen verschlüsselt/signiert kommunizieren; oba fungiert als Signierer


Online-Hilfe anzeigen

  gpg --help | less

In den ersten Zeilen der Online-Hilfe werden die verfügbaren kryptographischen Algorithmen getrennt nach unterschiedlichen Kategorien aufgelistet, z.B.

  Unterstützte Verfahren:
  Öff. Schlüssel: RSA, ELG, DSA
  Verschlü.: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, 
              CAMELLIA192, CAMELLIA256
  Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
  Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2

Diese Liste wird auch bei

  gpg --version

ausgegeben.


Schlüssel-Generierung

Generierung eines Schlüssel-Paars:

  gpg --gen-key

Es empfiehlt sich, anschließend noch ein Schlüsselwiderruf-Zertifikat zu erzeugen:

  gpg -o revok --gen-revok otto

Hier wird das File revok im GnuPG-Verzeichnis (meist ~/.gnupg) erstellt.

Beispiel eines kompletten Schlüssel-Generierungs-Dialogs


Anzeige der Schlüsselringe

Anzeige aller Schlüssel des öffentlichen Schlüsselrings:

  gpg --list-keys

Anzeige aller Schlüssel sowie aller Zertifikate des öffentlichen Schlüsselrings:

  gpg --list-sigs

Anzeige aller Schlüssel des öffentlichen Schlüsselrings zusammen mit ihren Fingerabdrücken (Fingerprints):

  gpg --fingerprint

Anzeige aller Schlüssel des privaten Schlüsselrings:

  gpg --list-secret-keys

Mit --with-colons bekommt man die lange Key-ID angezeigt, hier von UID otto:

  gpg --with-colons --list-keys otto

Die Erläuterung des Ausgabeformats findet man in der Datei doc/DETAILS jeder GnuPG-Distribution. Im Feld 2 steht der Validity-Wert eines Schlüssels, also dessen berechnete Gültigkeit. Im Feld 9 von Primär-Schlüsseln steht der Ownertrust, also das subjektive Vertrauen, das der Inhaber des Schlüsselrings dem Schlüsselbesitzer bzgl. dessen Zuverlässigkeit als Signierer (Introducer) zugeordnet hat.


Export und Import von Schlüsseln

hot und otto tauschen ihre Public Keys aus:

otto:

  gpg --export -o key.otto -a otto
  gpg -v --import key.hot

hot:

  gpg --export -o key.hot -a hot
  gpg -v --import key.otto

Anzeige eines exportierten Schlüsselblocks:

  gpg key.hot
oder etwas detaillierter:
  gpg -v key.hot
Neben den Public Keys kann man auch noch die Secret Keys exportieren:
  gpg --export-secret-keys -o seckey.otto -a otto

Signieren von Schlüsseln

oba signiert den Schlüssel von otto:

   gpg --edit-key otto

Unterkommando: sign

Sofern mehr als ein privater Schlüssel im Schlüsselring vorliegt, muss man ggf. den gewünschten Unterschriftsschlüssel explizit wählen, z.B. an Hand der Key-ID:

  gpg --default-key 826D57B9 --edit otto
  # oder
  gpg -u 826D57B9 --edit otto

Anzeige der Signaturen:

  gpg --list-sigs

Beispiel eines kompletten Signierungs-Dialogs

Mit dem Unterkommando tsign lassen sich Trust Signatures erstellen.


Erstellung und Verifikation digitaler Signaturen von Dateien

otto signiert einen Text, hot verifiziert die Signatur

verschiedene Möglichkeiten der Signatur:

  # Signatur im Binärformat, Ausgangs-Klartext wird auch binär kodiert
  gpg -s text

  # Signatur im ASCII-Armor-Format; Ausgangs-Klartext wird mit ASCII-Armor kodiert
  gpg -sa text
  
  # Signatur im ASCII-Armor-Format; Ausgangs-Klartext bleibt lesbar erhalten
  gpg --clearsign text
  
  # Erstellung einer vom Klartext getrennten Signatur (detached signature) im ASCII-Armor-Format
  gpg -ba text

Verifikation der Signatur:

  gpg text.asc
  gpg --verify text.asc
  gpg --verify text.asc text

Symmetrische Ver- und Entschlüsselung von Dateien

Verschlüsselung einen Text mittels symmetrischer Chiffre:

  # Binärformat
  gpg -c text

  # ASCII-Armor-Format
  gpg -ca text

Dechiffrierung:

  gpg text.asc
  gpg text.gpg
  gpg -d text.gpg
  gpg -d text.asc
  gpg --output text -d text.asc

Asymmetrische Ver- und Entschlüsselung von Dateien

Verschlüsselung eines Textes für hot:

  gpg -ear hot text

hot dechiffriert ihn:

  gpg text.asc
  gpg -d text.asc

Kombination von asymmetrischer Verschlüsselung und digitaler Signatur

otto verschlüsselt und signiert einen Text für hot:

  gpg -sear hot text

hot dechiffriert ihn und verifiziert die Signatur:

  gpg text.asc

Symmetrische und asymmetrische Verschlüsselung inkl. digitale Signatur lassen sich auch gemeinsam nutzen:

  gpg -seacr hot text

Beispiel-Dialog


Widerruf eines Schlüssels

otto widerruft sein Schlüsselpaar durch Aussenden eines Widerruf-Zertifikats, hot importiert das Widerruf-Zertifikat:

  gpg --import revok

  gpg --list-sigs

Löschen eines Schlüssels

hot löscht den Schlüssel von otto aus seinem Schlüsselring:

  gpg --delete-key otto

Beispiel-Dialog


Aktualisierung der Trust-Datenbank

  gpg --update-trustdb

Beispiel-Dialog


Holger Trapp

letzte Modifikation: 12.7.2018