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.

  Supported algorithms:
  Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
  Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
  Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
  Compression: Uncompressed, 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

Bei dieser Anzeige wird für Einträge des Typs "pub" (Public Key) und "sub" (Subkey) auch der Trust-Wert angezeigt, also die berechnete Gültigkeit des betreffenden Schlüssels. Die Erläuterung der Trust-Kennzeichen findet man in den GPG-FAQ.


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

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


Holger Trapp

letzte Modifikation: 25.1.2011