DEUTSCHE GNUPG ANLEITUNG

GnuPG Installation

Wer GnuPG im DOS Fenster oder über eine GnuPG-Shell einsetzen und sich mit den Kommandos von GnuPG befassen möchte, findet hier die nötigen Schritte und Informationen zur Installation und Bedienung (das GPG Manual oder das GPG-Handbuch seien hier wärmstens empfohlen).
Aber auch bei Nutzung von GnuPG Plug-Ins können folgende Kenntnisse von Nutzen sein.

Installation von GnuPG

  1. das ZIP Archiv in LW:\(Pfad)\gnupg entpacken
  2. in der Registry (regedit.exe aufrufen) im Zweig \\HKEY_CURRENT_USER\Software den Schlüssel GNU anlegen
    im neuen Zweig \\HKEY_CURRENT_USER\Software\GNU den Schlüssel GnuPG anlegen
  3. im neuen Zweig \\HKEY_CURRENT_USER\Software\GNU\GnuPG die Zeichenfolge HomeDir anlegen und als Wert den Pfad zum Verzeichnis LW:\Pfad\gnupg eintragen
    Anmerkung: HomeDir bestimmt den Ort, an dem sich die Keyringe, die Konfigurationsdatei gpg.conf, die Keytrustdatenbank trustdb.gpg und die Datei zur Speicherung der Zufallswerte random_seed befinden.
  4. auf gleiche Weise in der Registry im Zweig \\HKEY_CURRENT_USER\Control Panel zuerst den Schlüssel Mingw32 und den Unterschlüssel NLS erstellen
  5. im neuen Zweig \\HKEY_CURRENT_USER\Control Panel\Mingw32\NLS die Zeichenfolge MODir anlegen und als Wert den Pfad zum Verzeichnis LW:\Pfad\gnupg eintragen
  6. im gnupg Verzeichnis die Datei de.mo in gnupg.mo umbenennen
  7. LW:\Pfad\gnupg in die PATH Umgebungsvariable aufnehmen (autoexec.bat bei Windows 98 oder Systemsteuerung/System/Umgebungsvariablen/Systemvariablen bei Windows 2000/XP)
  8. Rechner neu starten und zum Test in der Eingabeaufforderung gpg --version eingeben.

Dem GnuPG Archiv liegt auch eine Registrydatei (*.reg) bei. Wenn man die Datei mit einem beliebigen Texteditor geöffnet und darin die Pfadangaben auf das eigene System angepasst hat, kann man die obigen Angaben zur Registry automatisch in die Registry aufnehmen lassen, indem man entweder die *.reg Datei doppelt anklickt (Win 9X) oder im Kontextmenü zur Datei den Menüpunkt "zusammenführen" wählt.

Modulinstallation

Zur Installation und Nutzung der Kryptomodule für IDEA, TIGER-192 und SHA-2 stehen zwei Wege zur Verfügung:

A

  • die Kryptomodule werden in das Verzeichnis c:\lib\gnupg kopiert
  • in die Options-Datei wird der Eintrag "load-extension kryptomodul.dll" für jedes Kryptomodul aufgenommen

B

  • die Kryptomodule werden in ein beliebiges Verzeichnis kopiert
  • in die Options-Datei wird der Eintrag "load-extension LW:\Pfad\kryptomodul.dll" für jedes Kryptomodul aufgenommen

 

GnuPG Kommandos

Hinweise:

  • die wichtigsten Kommandos werden unter Windows durch die GnuPG Shells abgedeckt
  • Key-ID = 0xNNNNNNNN
  • "User-ID" = "Zeichenkette" (Zeichenkette kann z. B. "Vorname Nachname", "email@adresse", "Begriff" sein)
  • statt GnuPG Kommandoübersicht lieber in die Manual Page von GnuPG schauen

 

Informationen zu GnuPG

Keys, Zertifikate, Fingerprints, Fotos

Keybestandteile

 

Key erzeugen

Revocation erstellen

Keys löschen

Public Key zertifizieren
Zertifizierungsrichtlinie und -anmerkung

Export und Import

Keyserver

Keybearbeitung

Trust und Trustdatenbank

 

Verschlüsseln

Entschlüsseln

Signieren
Signaturrichtlinie und -anmerkung

Überprüfen

 

Hashwerte für Dateien erzeugen

Programm zur Anzeige von Photo-ID's konfigurieren

 

Hilfe
 

gpg -h
listet die hier vorgestellten Kommandos und Optionen in Kurzform auf

 

GnuPG-Version, unterstützte Algorithmen
gpg --version

GnuPG Gewährleistungs- und Lizenzhinweis
gpg --warranty

alle Keys im Pubring
gpg --list-keys oder --list-sigs | more
einen Key im Pubring
gpg --list-keys Key-ID/"User-ID"
Pubringanzeige mit Fingerprint
gpg --list-keys/sigs --fingerprint
Pubringanzeige/einen Key mit Foto-ID, bzw. ohne Foto-ID
gpg --list-keys/sigs (Key-ID/"User-ID") --show-photos bzw. --no-show-photos

Öffentliche Bestandteile:
pub Haupt-Signaturkey
sub
Unter-Keys (Signierung und/oder Verschlüsselung)
sig
Zertifikate
sig L lokale Zertifikate
sig N Zertifikat ist mit Anmerkung versehen
sig P Zertifikat ist mit Beglaubigungsrichtlinie nach "URL" (Policy-URL) versehen
sig X Zertifikat ist verfallen
sig R (Eigensignatur) Key ist mit einem "designated revoker" versehen
sig R (Fremdsignatur) Zertifikat ist nicht-zurückziehbar
sig 3 Zertifikat mit check-level 3
sig 2 Zertifikat mit check-level 2
sig 1 Zertifikat mit check-level 1
sig    Zertifikat mit check-level 0
(check-level siehe "Public Key zertifizieren")
uid zertifizierte User-ID
rev zurückgezogener Key/Signatur

Typen:
D
DSA-Key
G
ElGamal-Key (Signierung & Verschlüsselung
g
ElGamal-Key (nur Verschlüsslung)
R
RSA-Key

Secringanzeige
gpg --list-secret-keys

Private Bestandteile:
sec
Haupt-Signaturkey
sbb
Unter-Keys

Anzeige überprüfter Signaturen
gpg --check-sigs (Key-ID/"User-ID")

sig ! korrekte Signatur
sig - falsche Signatur
sig % Fehler

Anzeige der Keypakete und -unterpakete
gpg --list-packets Keydatei

  Key erzeugen

gpg --gen-key

  1. DSA und ElGamal (DSA-Key Signatur/ElGamal-Key [ELG-E] Verschlüsselung)
  2. DSA (nur DSA Signatur)
  3. ElGamal (ElGamal [ELG] Signatur und Verschlüsselung)
  4. RSA (nur Signatur [RSA-S])
    bei RSA muss anschliessend per Key Bearbeitung mit addkey ein RSA-E (nur Verschlüsselung) Subkey hinzugefügt werden
siehe auch Schlüsselerzeugung und Empfehlungen zur Schlüssellänge der PGP Anleitung
  Revocation [Rückzugszertifikat] erzeugen

Revocation für den eigenen Key ausstellen
gpg -o revoke.asc --gen-revoke Key-ID

Mit dem obigen Befehl wird die Datei revoke.asc angelegt, die nur die Revocationsignatur enthält. Der Key an sich bleibt im Keyring ohne Revocationmarkierung.
Erst wenn der Key endgültig zurückgezogen und auch so auf den Keyservern vorliegen soll, importiert man die Revocationsignaturdatei über den Keyimportbefehl und versendet anschliessend den gesamten Public Key an den Keyserver.

Also nach der Erzeugung der Revocation:
gpg --import revocation.asc
Es ist auch möglich, nur für den Subkey oder eine Signatur eine
Revocation zu erzeugen (siehe Key Bearbeitung).

Revocation als "designated revoker" für einen fremden Key ausstellen
gpg --desig-revoke Key-ID/"User-ID"

Voraussetzung: Der Keybesitzer hat Sie mit "addrevoker" (siehe Key Bearbeitung) authorisiert.

  Key löschen

gesamten Key löschen
gpg --delete-secret-and-public-key Key-ID/"User-ID"

Public Key löschen
gpg --delete-key Key-ID/"User-ID"

Secret Key löschen
gpg --delete-secret-key Key-ID/"User-ID"

  Public Key zertifizieren/beglaubigen

mit -u Key-ID/"User-ID" kann ein spezieller Key zum zertifizieren bestimmt werden, ohne diese Angabe wird der als Standardkey bestimmte Key benutzt.

Zertifizierungsrichtlinie und -anmerkung

Werden die beiden folgenden Kommandos als Option in der gpg.conf hinterlegt, wird jedes Zertifikat mit der gleichen Anmerkung und dem gleichen Richtlinienhinweis versehen

mit --cert-notation name="ein String" --(l|nr|nrl)sign-key
kann dem Zertifikat eine Anmerkung hinzugefügt werden.
name muss dabei eine eindeutige Kennung darstellen. Abgleitet von der E-Mail Adresse der User-ID username@host.domain.tld wird für name deshalb folgende Syntax verwendet: username+meinekennung@host.domain.tld

mit --cert-policy-url URL-Adresse --(l|nr|nrl)sign-key
kann eine URL angegeben werden, in deren Dokument die eigenen Richtlinien zur Beglaubigung von Public-Keys niedergelegt sind

soll für die Zertifizierung von Public Keys die gleiche Richtlinie und/oder gleiche Anmerkung wie für die Signierung von Daten und Nachrichten verwendet werden, lautet die Syntax:
--notation-data name="ein String"
--set-policy-url URL-Adresse

Variablen, die im Anmerkung String und in der Richtlinien URL verwendet werden können:
%k  - kurze Key-ID des Keys, der zertifiziert wird
%K  - lange Key-ID des Keys, der zertifiziert wird
%f  - Fingerprint des Keys, der zertifiziert wird
%s  - kurze Key-ID des Keys, mit dem zertifiziert wird
%S  - lange Key-ID des Keys, mit dem zertifiziert wird

Zertifizierungskommandos

Public Key zertifizieren, Zertifikat exportierbar
gpg (-u Key-ID/"User-ID") --sign-key Key-ID
Public Key zertifizieren, Zertifikat nicht-exportierbar (lokal)

gpg (-u Key-ID/"User-ID") --lsign-key Key-ID
Public Key zertifizieren, Zertifikat exportierbar und nicht rückziehbar
gpg (-u Key-ID/"User-ID") --nrsign Key-ID
Public Key zertifizieren, Zertifikat nicht-exportierbar (lokal) und nicht rückziehbar
gpg (-u Key-ID/"User-ID") --nrlsign Key-ID

--default-cert-check-level n
damit wird angegeben, wie gründlich der zu zertifizierende Key vor dem Zertifizieren überprüft wurde (wird automatisch bei Zertifizieroperationen abgefragt):

(0) I will not answer. - überhaupt keine Aussage
(1) I have not checked at all - basiert auf der eigenen "Überzeugung", dass der Key echt ist
(2) I have done casual checking. - basiert auf einer oberflächlichen Überprüfung (Fingerprint, E-Mail...)
(3) I have done very careful checking. - gründliche Überprüfung der Keydetails anhand offizieller Dokumente des Keybesitzers, persönlichen Zusammentreffens und E-Mail Austausch

  Export & Import

gpg Export-Optionen Ausgabedatei Export-Kommando Key-ID/"User-ID"

Export-Optionen

gpg --export-options (no-)Parameter1,Parameter2...
wird der Präfix no- dem Parameter vorangestellt, wird die entgegengesetzte Wirkung der folgenden Parameter erzielt.

nicht-RFC komplementäre Keys einbeziehen
include-non-rfc
standardmäßig aktiviert

lokale Signaturen einbeziehen
include-local-sigs
standardmäßig deaktiviert

Attribut User-ID's (wie Photo-ID) einbeziehen
include-attributes
standardmäßig aktiviert

Informationen zum "designated revoker" einbeziehen
include-sensitive-revkeys
standardmäßig deaktiviert

Export-Kommandos

Pubkey-Export
gpg -ao pubkey.asc --export Key-ID

Seckeys-Export
gpg -o seckey --export-secret-keys User-ID

Export nicht OpenPGP kompatibler Keys
gpg -ao pubkey.asc --export-all Key-ID

gpg Import-Optionen Ausgabedatei Import-Kommando Key-ID/"User-ID"

Import-Optionen

gpg --import-options (no-)Parameter1,Parameter2...
wird der Präfix no- dem Parameter vorangestellt, wird die entgegengesetzte Wirkung der folgenden Parameter erzielt.

Import lokaler Signaturen aktivieren
allow-local-sigs
standardmäßig deaktiviert

HKP Keyserverfehler beheben, der bei mehrfachen Subkeys auftritt
repair-hkp-subkey-bug
Standard bei Anforderung eines Keys, deaktiviert bei lokalem Import

Import-Kommandos

Pub- und/oder Seckey importieren
gpg --import Keydatei (Keydatei2 Keydatein)

Pub- und/oder Seckeys importieren
gpg --fast-import Keydatei1 Keydatei2 Keydatein

  Keyserver

gpg (Keyserveradresse) (Keyserveroptionen) Keyserverkommando Key-ID/"User-ID"

Keyserver bestimmen
--keyserver Adresse

Adresse: Keyservertyp://Adresse:Port

  • hkp://Adresse:Port für Horowitz-kompatible Keyserver, die per HTTP kommunizieren
    z. B. hkp://blackhole.pca.dfn.de:11371
  • ldap://Adresse:Port für NAI LDAP-kompatible Keyserver, die per LDAP kommunizieren
    z. B. ldap://keyserver.pgp.com:389
  • mailto://Adresse:Port für Horowitz-kompatible Keyserver, die per E-mail kommunizieren
der benutzte Keyserver kann entweder in den obigen Kommandos mit angegeben werden oder als feste Option keyserver Adresse in der gpg.conf Datei.

Keyserver Optionen

--keyserver-options (no-)Parameter1,(no-)Parameter2...
Wird der Präfix no- dem Parameter vorangestellt, wird die entgegengesetzte Wirkung der folgenden Parameter erzielt.
Alle Optionen können auch mit keyserver-options (no-)paramter1,(no-)parameter2... fest in der gpg.conf angegeben werden.

Parameter

automatischer Erhalt von Keys per Keyserver bei der Überprüfung von Signaturen
auto-key-retrieve

zurückgezogene Keys werden bei Keysuche einbezogen
include-revoked
automatisch bei Suche über HKP Keyservern und bei Suche/Anforderung über LDAP Keyserver

deaktivierte Keys werden bei Keysuche einbezogen
include-disabled
nicht bei HKP Keyservern

Subkeys werden bei Keysuche einbezogen
include-subkeys
nicht bei HKP Keyservern

temporäre Dateien statt Pipes benutzen
use-temp-files
Standard bei Windows

temporäre Dateien nicht löschen
keep-temp-files
um die Kommunikation mit dem Keyserver nachzuvollziehen

ausführliche Anzeige des Outputs des Keyservermoduls
verbose
Grad der Ausführlichkeit kann durch mehrmaliges Aufführen des Parameters erhöht werden

HTTP-Proxy bei HKP Keyservern benutzen
honor-http-proxy
HTTP-Proxy muss mit Umgebungsvariable http_proxy gesetzt sein

Kommunikation mit dem Keyserver

Pubkey suchen (und importieren)
gpg (--keyserver Adresse) --search-keys Key-ID oder "User-ID"

Pubkey senden
gpg (--keyserver Adresse) --send-keys Key-ID oder "User-ID"

Pubkey anfordern
gpg (--keyserver Adresse) --recv-keys Key-ID oder "User-ID"

Pubkey mit aktuellen User-ID's und Zertifikaten aktualisieren
gpg (--keyserver Adresse) --refresh-keys Key-ID oder "User-ID"

  Key Bearbeitung

1) gpg --edit-key Key-ID

2) Befehl>Bearbeitungskommandos eingeben:

fpr
Fingerprint Anzeige
list
Schlüssel und User-IDs auflisten (siehe auch Anzeigen)
toggle
schaltet zwischen Anzeige der öffentlichen Bestandteile und privaten Bestanteile eines Keys um
check Pubkeybestandteile Anzeige (der Signaturen)
key Nr Auswahl eines Subkeys (Zweitschlüssel)
uid Nr
Auswahl einer User-ID
adduid User-ID hinzufügen

Primäre User-ID ändern
Eine neu hinzugefügte User-ID wird automatisch zur primären User-ID (die auch als User-ID in grafischen GnuPG Tools angezeigt wird).
Will man eine andere User-ID zur primären User-ID machen, geht man wie folgt vor:
1) mit uid Nr. die User-ID auswählen
3) mit primary die gewählte User-ID zur primären User-ID machen

uid Nr + deluid User-ID auswählen und löschen
uid Nr + delsig User-ID auswählen und Zertifikat löschen
revsig Signatur Revocation (Revocation einer User-ID)
addkey Subkey (Zweitschlüssel) hinzufügen
delkey
Subkey (Zweitschlüssel) löschen
revkey Subkey (Zweitschlüssel) Revocation erzeugen
addrevoker hinzufügen der User-ID des Keys, dessen Inhaber den eigenen Key zurückziehen kann ("designated revoker")
sign signieren, Signatur exportierbar
lsign signieren, Signatur nicht-exportierbar (lokal)
nrsignsignieren, Signatur exportierbar und nicht rückziehbar
nrlsignsignieren, Signatur nicht-exportierbar (lokal) und nicht rückziehbar
addphoto JPEG (maximal 288x240) Bilddatei wird als Foto-ID im Public Key gespeichert
showphoto Anzeige der Foto-ID (mit dem Bildbetrachter, der in der options Datei mit
photo-viewer "LW:\Pfad\programm.exe optionen" festgelegt wurde)
disable/enable Key ab-/anschalten
expire Verfallszeit ändern
passwd Passphrase des Secret Keys ändern

3) save
4) quit

  Änderung der kryptografischen Präferenzen

 

  1. gpg --edit-key Key-ID ruft den Bearbeitungsmodus auf
  2. showpref zeigt die aktuellen Präferenzen mit Nennung der verwendeten Algorithmen an
    pref zeigt die aktuellen Präferenzen in der Kurzform Kürzel ID an.
  3. setpref S(1-10) H(1-3) Z(1-2) stellt die Reihenfolge um (man orientiere sich bei der Eingabe an der Ausgabeform von pref und der Algorithmen-Tabelle)
  4. updpref aktualisiert die gespeicherten Präferenzen mit der neuen Reihenfolge
  5. save speichert die vorgenommenen Änderungen

die Präferenzen können auch dauerhaft in der gpg.conf mit default-preference-list S(1-10) H(1-3) Z(1-2) festgelegt werden

  Trust und Trust-Datenbank

(Owner) Trust einstellen

der Ownertrust Wert gibt wieder, wie gross das Vertrauen in das verantwortliche Handeln und die Fähigkeit eines Keybesitzers, selbst wiederum für die Gültigkeit eines anderen Public Keys zeugen zu können, ist. Die Eingaben werden in der Trust Datenbank gespeichert.

1) gpg --edit-key Key-ID oder "User-ID"
2) Befehl>trust

Befehlseingabe
Anzeige
Ich vertraue dem Keybesitzer
- -/- nicht berechnet
1 q/- unbekannt/nicht genug Infos zur Berrechnung
2 n/- nein
3 m/- marginal
4 f/- voll
5 u/- ultimativ

Pflege der Trust Datenbank

Owner Trust für Backup sichern
gpg --export-ownertrust > otrust.asc

Owner Trust importieren
gpg --import-ownertrust otrust.asc

Trust Datenbank aktualisieren
gpg --update-trustdb

Trust Datenbank aktualisieren (unbeaufsichtigt)
gpg --check-trustdb

automatisierte Trust Datenbank Aktualisierung aktivieren
gpg --auto-check-trustdb

Trust Datenbank reparieren
gpg --fix-trustdb

Zertifizierungskette

in der Optionendatei options kann man festlegen, ab wann ein Userkey, bzw. dessen Zertifikat als neuer Keyzertifizierer gelten kann (die Standardeinstellungen sind allerdings schon sinnvoll)

Anzahl der Zertifikate von den Usern, die als voll vertrauenswürdig eingestuft wurden (Standard: 1)
completes-needed n

Anzahl der Zertifikate von Usern, die als marginal vertrauenswürdig eingestuft wurden (Standard: 3)
marginals-needed n

Maximale Zertifizierungstiefe (Standard 5)
max-cert-depth n

  Verschlüsseln

Option -a (ASCII Hülle) zum Versand per E-Mail

an eine Person (Klartext- oder Binärdatei)
gpg -ao datei.(ext).asc -er Key-ID datei.ext
mehrere Dateien an eine Person
gpg -ar Key-ID/User-ID --enrypt-files datei1.ext datei2.ext datein.ext
oder
gpg -afr Key-ID/User-ID datei1.ext datei2.ext datein.ext

an mehrere Personen (Klartext- oder Binärdatei)
gpg -ao datei.(ext).asc -er Key-ID1 -er Key-ID2 datei.ext

an mehrere Personen durch Gruppenbildung
gpg --group Gruppenname="0xKeyID1 0xKeyID2 0xKeyIDn"

group Gruppenname="KeyID's" kann auch dauerhaft in der gpg.conf gespeichert werden, wenn man z. B. regelmässig über eine Kontaktgruppe des E-Mail Client Adressbuches Nachrichten versendet.

mehrere Dateien an mehrere Personen
gpg -afr Key-ID1/User-ID1 -afr Key-ID2/User-ID2 datei1.ext datei2.ext datein.ext

konventionelle Verschlüsselung (mit Passphrase)
gpg -ao datei.(ext).asc -c --cipher-algo XY --digest-algo XY datei.ext

Anonyme Verschlüsselung (Beispiel Klartext)
gpg -ao datei.asc --throw-keyid --no-version -er Key-ID datei.ext
Der Befehl nullt die Angaben zur Empfänger Key-ID aus, unterdrückt die Versionszeile und es wird keine Kommentarzeile erzeugt.
Kann dazu benutzt werden, um über Newsgroups anonym per Mail2News Gateways/Remailer miteinander zu kommunizieren

Verschlüsselung mit Aufforderung, entschlüsselten Inhalt nicht zu speichern
gpg --for-your-eyes-only -er Key-ID datei.ext
Zur Speicherung muss GnuPG mit gpg -o datei.ext datei.asc explizit eine Ausgabedatei mitgeteilt werden und PGP wird zur Anzeige den Secure Viewer verwenden.

  Entschlüsseln

Entschlüsselung einer Datei
gpg -o datei.ext datei.(ext).asc

Entschlüsselung mehrerer Dateien
gpg --decrypt-files datei1.(ext).asc datei2.(ext).asc datein.(ext).asc

Entschlüsseln einer Nachricht, die keine oder eine falsche Key-ID enthält
siehe --throw-keyid
gpg --try-all-secrets datei.(ext).asc

Entschlüsseln und CRC Fehler ignorieren
manchmal wird die CRC Prüfsumme der ASCII Hülle während des Mailtransportes beschädigt.
gpg --ignore-crc-error datei.(ext).asc

Entschlüsselung einer Datei (automatisch mit lokaler Passwortdatei)
das Passwort wird in der Datei 'passwort.txt' gespeichert
gpg -o datei.ext --passphrase-fd 0 --decrypt datei.ext.asc < passwort.txt

  Signieren

Option -a (ASCII Hülle) zum Versand per E-Mail.

mit -u Key-ID/"User-ID" kann ein spezieller Key zum signieren bestimmt werden, ohne diese Angabe wird der als Standardkey bestimmte Key benutzt.

Signaturrichtlinie und -anmerkung

Werden die beiden folgenden Kommandos als Option in der gpg.conf hinterlegt, wird jede Signatur mit der gleichen Anmerkung und dem gleichen Richtlinienhinweis versehen.

mit --sig-notation name="ein String" --(l|nr|nrl)sign-key
kann der Signatur eine Anmerkung hinzugefügt werden.
name muss dabei eine eindeutige Kennung darstellen. Abgleitet von der E-Mail Adresse der User-ID username@host.domain.tld wird für name deshalb folgende Syntax verwendet: username+meinekennung@host.domain.tld

mit --sig-policy-url URL-Adresse --(l|nr|nrl)sign-key
kann eine URL angegeben werden, in deren Dokument die eigenen Richtlinien zur Signierung von Daten und Nachrichten niedergelegt sind

soll für die Signierung von Daten und Nachrichten die gleiche Richtlinie und/oder gleiche Anmerkung wie für die Zertifizierung von Public Keys verwendet werden, lautet die Syntax:
--notation-data name="ein String"
--set-policy-url URL-Adresse

Variablen, die im Anmerkung String und in der Richtlinien URL verwendet werden können:
%s  - kurze Key-ID des Keys, mit dem signiert wird
%S  - lange Key-ID des Keys, mit dem signiert wird

Signierkommandos

Signierung (Dateiinhalt mit Signaturhülle)
gpg (-u Key-ID/"User-ID") -s datei.ext (Ausgabe als 'datei.ext.asc')

Signierung (Binärdatei angehängt)
gpg (-u Key-ID/"User-ID") -ao datei.ext.sig -b datei.ext

Signierung (Klartext)
gpg (-u Key-ID/"User-ID") --clearsign datei.ext
oder
gpg (-u Key-ID/"User-ID") -asto datei.asc datei.ext

Signierung (Klartext angehängt)
gpg (-u Key-ID/"User-ID") -ato datei.ext.sig -b datei.ext

Signierung & Verschlüsselung (Klartext)
gpg (-u Key-ID/"User-ID" -ato datei.ext.asc -ser Empfänger-Key-ID datei.ext

Signierung (Klartext, automatisch mit lokaler Passwortdatei)
das Passwort wird in der Datei 'passwort.txt' gespeichert
gpg -ao datei.ext.asc --passphrase-fd 0 -st datei.ext < passwort.txt

  Überprüfen

Signatur ist angehängt & Datei liegt als 'datei.ext' vor oder ist in der Datei enthalten
gpg --verify datei(.ext).sig

Datei liegt mit beliebigem Dateinamen vor - 'datei' oder 'datei.ext'
gpg --verify datei(.ext).sig datei

mehre Dateien - Signaturen sind in den Dateien enthalten
gpg --verify datei1(.sig) datei2(.sig) datein(.sig)

 

Hashwert mittels eines Hashalgorithmus für Dateien erzeugen
gpg --print-md Algo datei.ext/*.ext/*.* > name.md
für Algo kann MD5,SHA1,RIPEMD eingesetzt werden

Hashwerte mittels aller verfügbaren Hashalgorithmen für Dateien erzeugen
gpg --print-mds datei.ext/*.ext/*.* > name.mds

Programm zur Anzeige der Fotos/Photo-User-ID konfigurieren
--photo-viewer Programm String

Stringvariablen:

"%i" - temporäre Bilddatei
"%I" - temporäre Bilddatei, die nach Anzeige nicht gelöscht wird
"%k" - Key-ID
"%K" - lange Key-ID
"%f" - Fingerprint
"%t" - Extension des Bildtyps (z. B. "jpg")
"%T" - MIME Typ des Bildes (z.B. "image/jpeg")
"%%" - Prozentzeichen

Sinnvollerweise wird die Anweisung in die Konfigurationsdatei gpg.conf gesetzt.
Die Nutzung der Stringvariablen ist vom eingesetzten Bildbetrachtungsprogramm abhängig.

Die Auflistung der Kommandos und Optionen mit gpg -h

 

 
Aufruf: gpg [Optionen] [Dateien] 
Signieren, prüfen, verschlüsseln, entschlüsseln 
Die voreingestellte Operation ist abhängig von den Eingabedaten 
 
Befehle: 
  
-s, --sign [Datei]               Eine Unterschrift erzeugen 
    --clearsign [Datei]          Eine Klartextunterschrift erzeugen 
-b, --detach-sign                Eine abgetrennte Unterschrift erzeugen 
-e, --encrypt                    Daten verschlüsseln 
-f, --encrypt-files [files]      encrypt files 
-c, --symmetric                  Daten symmetrisch verschlüsseln 
    --store                      Nur speichern 
-d, --decrypt                    Daten entschlüsseln (Voreinstellung) 
    --decrypt-files [files]      decrypt files 
    --verify                     Signatur prüfen 
    --list-keys                  Liste der Schlüssel 
    --list-sigs                  Liste der Schlüssel und ihrer Signaturen 
    --check-sigs                 Signaturen der Schlüssel prüfen 
    --fingerprint                Liste der Schlüssel und ihrer "Fingerabdrücke" 
    --list-secret-keys           Liste der geheimen Schlüssel 
    --gen-key                    Ein neues Schlüsselpaar erzeugen 
    --delete-keys                remove keys from the public keyring 
    --delete-secret-keys         remove keys from the secret keyring 
    --sign-key                   Schlüssel signieren 
    --lsign-key                  Schlüssel nur auf diesem Rechner signieren 
    --nrsign-key                 sign a key non-revocably 
    --nrlsign-key                sign a key locally and non-revocably 
    --edit-key                   Unterschreiben oder Bearbeiten eines Schl. 
    --gen-revoke                 Ein Schlüsselwiderruf-Zertifikat erzeugen 
    --export                     Schlüssel exportieren 
    --send-keys                  Schlüssel zu einem Schlü.server exportieren 
    --recv-keys                  Schlüssel von einem Schlü.server importieren 
    --search-keys                search for keys on a key server 
    --refresh-keys               update all keys from a keyserver 
    --import                     Schlüssel importieren/kombinieren 
    --list-packets               Lediglich Struktur der Datenpakete anzeigen 
    --export-ownertrust          Exportieren der "Owner trust" Werte 
    --import-ownertrust          Importieren der "Owner trust" Werte 
    --update-trustdb             Ändern der "Trust"-Datenbank 
    --check-trustdb              unattended trust database update 
    --fix-trustdb                Reparieren einer beschädigten "Trust"-Datenb. 
    --dearmor                    Datei oder stdin von der ASCII-Hülle befreien 
    --enarmor                    Datei oder stdin in eine ASCII-Hülle einpacken 
    --print-md algo [Dateien]    Message-Digests für die Dateien ausgeben 
Optionen: 
 
-a, --armor                    Ausgabe mit ASCII-Hülle versehen 
-r, --recipient NAME           Verschlüsseln für NAME 
    --default-recipient NAME   NAME als voreingestellten Empfänger benutzen 
    --default-recipient-self   Den Standardschlüssel als voreingestellten 
                               Empfänger benutzen 
-u, --local-user               Mit dieser User-ID signieren 
-z                             Kompressionsstufe auf N setzen (0=keine) 
    --textmode                 Textmodus benutzen 
-o, --output                   Als Ausgabedatei benutzen 
-v, --verbose                  Detaillierte Informationen 
-q, --quiet                    Etwas weniger Infos 
    --no-tty                   das Terminal gar nicht benutzen 
    --force-v3-sigs            v3 Signaturen erzwingen 
    --no-force-v3-sigs         do not force v3 signatures 
    --force-v4-certs           force v4 key signatures 
    --no-force-v4-certs        do not force v4 key signatures 
    --force-mdc                Beim Verschlüsseln ein Siegel (MDC) verwenden 
    --disable-mdc              never use a MDC for encryption 
-n, --dry-run                  Keine wirklichen Änderungen durchführen 
    --use-agent                verwende den GPG-Agent 
    --batch                    Stapelmodus: Keine Abfragen 
    --yes                      "Ja" als Standardantwort annehmen 
    --no                       "Nein" als Standardantwort annehmen 
    --keyring                  Als öffentlichen Schlüsselbund mitbenutzen 
    --secret-keyring           Als geheimen Schlüsselbund mitbenutzen 
    --show-keyring             show which keyring a listed key is on 
    --default-key NAME         NAME als voreingestellten Schlüssel benutzen 
    --keyserver HOST           Schlüssel bei diesem Server nachschlagen 
    --charset NAME             Terminalzeichensatz NAME benutzen 
    --options                  Optionen aus der Datei lesen 
    --status-fd FD             Statusinfo auf FD (Dateihandle) ausgeben 
    --trusted-key KEYID        ultimately trust this key 
    --load-extension DATEI     Erweiterungsmodul DATEI laden 
    --rfc1991                  Den in RFC1991 beschriebenen Modus nachahmen 
    --openpgp                  alle Paket-, Verschlüsselungs- und 
                               Hashoptionen auf OpenPGP-Verhalten einstellen 
    --pgp2                     set all packet, cipher and digest options  
                               to PGP 2.x behavior 
    --s2k-mode N               Verwenden des Mantra-Modus N 
    --s2k-digest-algo NAME     Hashverfahren NAME für Mantras benutzen 
    --s2k-cipher-algo NAME     Verschlü.verfahren NAME für Mantras benutzen 
    --cipher-algo NAME         Verschlü.verfahren NAME benutzen 
    --digest-algo NAME         Hashverfahren NAME benutzen 
    --compress-algo N          Komprimierverfahren N benutzen 
    --throw-keyid              Entferne Empfänger-ID verschlüsselter Pakete 
    --show-photos              Show Photo IDs 
    --no-show-photos           Don't show Photo IDs 
    --photo-viewer             Set command line to view Photo IDs 
-N, --notation-data NAME=WERT  verwende diese "notation"-Daten 
 
(Auf der "man"-Seite ist eine vollständige Liste  
aller Kommandos und Optionen) 
 
Beispiele: 
 
-se -r Bob [Datei]         Signieren und verschlüsseln für Benutzer Bob 
--clearsign [Datei]        Eine Klartextsignatur erzeugen 
--detach-sign [Datei]      Eine abgetrennte Signatur erzeugen 
--list-keys [Namen]        Schlüssel anzeigen 
--fingerprint [Namen]      "Fingerabdrücke" anzeigen

 

Anzeige der Keybestandteile und Präferenzen

Es gibt zwei Möglichkeiten, um sich die Bestandteile und Vorgaben der eigenen Keys anzeigen zu lassen:

1. mit dem GnuPG Befehl "gpg --list-packets Keydatei"
hier ein Ausschnitt:

:public key packet: 
version 4, algo 1, created 984919053, expires 0 
pkey[0]: [3100 bits] 
pkey[1]: [17 bits] 
:user ID packet: "Kai Raven <k.raven@freenet.de>" 
:signature packet: algo 1, keyid CB30CEBA4C213383 
version 4, created 984919053, md5len 0, sigclass 10 
digest algo 2, begin of digest ae 49 
hashed subpkt 2 len 5 (sig created 2001-03-18) 
hashed subpkt 9 len 5 (key expires after 1y0d0h0m) 
hashed subpkt 11 len 6 (pref-sym-algos: 10 9 8 7 1) 
hashed subpkt 25 len 2 (primary user ID) 
hashed subpkt 27 len 5 (key flags: 03 00 00 00) 
subpkt 16 len 9 (issuer key ID CB30CEBA4C213383) 
data: [3099 bits] 
             

2. Mit dem PGPdump Web-Interface
oder dem PGPdump Programm.
Weitere Informationen zu PGPdump auf der PGPdump Homepage von Kazu Yamamoto.
In dem Eingabeformular wird der Inhalt des in eine Datei exportierten Public Keys eingegeben und abgesendet (man füge nie den Inhalt seines Private Keys ein!).
Die Syntax für das PGPdump Programm ist
- pgpdump -h zur Anzeige der Kommandooptionen
- pgpdump Keydatei.asc zur Anzeige der Pakete eines Keys

Das Interface bietet noch umfangreichere Inhaltsausgaben als der GPG Befehl.
Hier ein Ausschnitt:

Old: Public Key Packet(tag 6)(401 bytes) 
Ver 4 - new 
Public key creation time - Sun Mar 18 13:37:33 CET 2001 
Pub alg - RSA Encrypt or Sign(pub 1) 
RSA n(3100 bits) - ... 
RSA e(17 bits) - ... 
Old: User ID Packet(tag 13)(33 bytes) 
User ID - Kai Raven <k.raven@freenet.de> 
Old: Signature Packet(tag 2)(438 bytes) 
Ver 4 - new 
Sig type - Generic certification of a User ID and Public Key packet(0x10). 
Pub alg - RSA Encrypt or Sign(pub 1) 
Hash alg - SHA1(hash 2) 
Hashed Sub: signature creation time(sub 2)(4 bytes) 
Time - Sun Mar 18 13:37:33 CET 2001 
Hashed Sub: key expiration time(sub 9)(4 bytes) 
Time - Mon Mar 18 13:37:33 CET 2002 
Hashed Sub: preferred symmetric algorithms(sub 11)(5 bytes) 
Sym alg - Twofish with 256-bit key(sym 10) 
Sym alg - AES with 256-bit key(sym 9) 
Sym alg - AES with 192-bit key(sym 8) 
Sym alg - AES with 128-bit key(sym 7) 
Sym alg - IDEA(sym 1) 
Hashed Sub: primary user id(sub 25)(1 bytes) 
Primary - Yes 
Hashed Sub: key flags(sub 27)(4 bytes) 
Flag - This key may be used to certify other keys 
Flag - This key may be used to sign data 
Sub: issuer key ID(sub 16)(8 bytes) 
Key ID - cb 30 ce ba 4c 21 33 83  
Hash left 2 bytes - ae 49  
RSA m^d mod n(3099 bits) - ... 
-> PKCS-1 

Bei beiden Auszügen sind die Präferenzen für den zu verwendenden Verschlüsselungsalgorithmus klar erkennbar.
Der Key wurde mit PGP 7.X, bevorzugter Algorithmus: Twofish, erlaubte Algorithmen: AES, IDEA und Twofish, erstellt und mit GnuPG importiert.
Wenn man auf die gleiche Weise den Secret Key untersucht, entdeckt man, dass PGP 7.X den Key nur mit der Passphrase und MD5, während GnuPG die Passphrase mit Salt und RIPEMD-160 schützt.
Der untere, mit GnuPG erstellte Key zeigt, dass standarmässig AES-128, gefolgt von Twofish-256, CAST5-128 und Blowfish-128 festgelegt werden. Im Gegensatz zum PGP-Key sind hier auch der Kompressions- und der Hashalgorithmus näher spezifiziert.

Zum Vergleich ein mit GnuPG erstellter Key:

Old: Public Key Packet(tag 6)(418 bytes) 
Ver 4 - new 
Public key creation time - Sat May 5 16:48:57 CEST 2001 
Pub alg - DSA Digital Signature Standard(pub 17) 
DSA p(1024 bits) - ... 
DSA q(160 bits) - ... 
DSA g(1023 bits) - ... 
DSA y(1024 bits) - ... 
Old: User ID Packet(tag 13)(19 bytes) 
User ID - Kai Test <kai@test> 
Old: Signature Packet(tag 2)(87 bytes) 
Ver 4 - new 
Sig type - Positive certification of a User ID and Public Key packet(0x13). 
Pub alg - DSA Digital Signature Standard(pub 17) 
Hash alg - SHA1(hash 2) 
Hashed Sub: signature creation time(sub 2)(4 bytes) 
Time - Sat May 5 16:48:57 CEST 2001 
Hashed Sub: preferred symmetric algorithms(sub 11)(4 bytes) 
Sym alg - AES with 128-bit key(sym 7) 
Sym alg - Twofish with 256-bit key(sym 10) 
Sym alg - CAST5(sym 3) 
Sym alg - Blowfish(sym 4) 
Hashed Sub: preferred hash algorithms(sub 21)(2 bytes) 
Hash alg - RIPEMD160(hash 3) 
Hash alg - SHA1(hash 2) 
Hashed Sub: preferred compression algorithms(sub 22)(2 bytes) 
Comp alg - ZLIB <RFC1950>(comp 2) 
Comp alg - ZIP <RFC1951>(comp 1)