URLs:
3 Nutzer: hot, otto und oba
hot und otto wollen verschlüsselt/signiert kommunizieren; oba fungiert als Signierer
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.
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 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.
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.hotoder etwas detaillierter:
gpg -v key.hotNeben den Public Keys kann man auch noch die Secret Keys exportieren:
gpg --export-secret-keys -o seckey.otto -a otto
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.
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
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
Verschlüsselung eines Textes für hot:
gpg -ear hot text
hot dechiffriert ihn:
gpg text.asc gpg -d text.asc
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
otto widerruft sein Schlüsselpaar durch Aussenden eines Widerruf-Zertifikats, hot importiert das Widerruf-Zertifikat:
gpg --import revok gpg --list-sigs
hot löscht den Schlüssel von otto aus seinem Schlüsselring:
gpg --delete-key otto