Mit
gpg --gen-key
wird ein neues Schlüsselpaar erzeugt. Als Erstes wird man nach dem zu
verwendenden Algorithmen gefragt. Genaueres zu den Algorithmen steht
in der
PGP DH vs. RSA FAQ oder in
Applied Cryptography.
Man kann (und sollte) einfach den default Wert (DSA/ ElGamal) nehmen.
Bei der Schlüssellänge muß man zwischen Sicherheit und Rechenzeit abwägen. Je länger ein Schlüssel, desto sicherer ist er, desto länger dauern aber auch Operationen mit ihm. Bei der Rechenzeit muß man aber berücksichtigen, daß der Schlüssel möglicherweise auch noch in einigen Jahren benutzt werden soll, wenn die durchschnittliche Rechenleistung stark angewachsen sein wird. GnuPG fragt ab einer Schlüssellänge von mehr als 1536 Bits, ob ein so großer Schlüssel wirklich nötig sei, andere Leute empfehlen mindestens 2048 Bits. Für DSA ist 1024 Bits Standard.
Dann wird nach Namen, Kommentar und Email Adresse gefragt. Anhand dieser Angaben wird der Schlüssel identifiziert. Man kann die Angaben aber später noch ändern beziehungsweise ergänzen. Siehe Schlüsselbund verwalten Man sollte eine länger gültige Email Adresse wählen, da die komplette Benutzerkennung unterschrieben wird. Wird dann etwas geändert, gelten die Unterschriften unter die geänderten Angaben nicht mehr.
Als letztes wird nach dem Passwort (beziehungsweise Passsatz (in der deutschen Übersetzung: Mantra) denn es können Leerzeichen vorkommen) gefragt, mit dem der private Schlüssel gesichert werden soll. Verwenden sie ein gutes Mantra. Ein gutes Mantra ist
Mit
gpg --export [UID]
wird der Schlüssel mit der User ID UID exportiert. Wird keine UID
angegeben, so wird der ganze Schlüsselbund exportiert. Voreingestellt
ist Ausgabe auf stdout
, man kann aber mit der Option -o
[Datei]
in eine Datei ausgeben. Es empfiehlt sich noch, mit der
Option -a
(--armor
) zu arbeiten, da ich andernfalls
Probleme hatte. Mit dieser Option werden die Schlüssel nicht im
Binärformat ausgegeben, sondern als ASCII (7 Bit) Dateien.
Den exportierten Schlüssel kann man dann in der Welt verbreiten, wahlweise auf der Homepage, via finger, über Keyserver, ... .
Wenn man von irgendwoher einen öffentlichen Schlüssel bekommen hat, sollte man ihn in sein Schlüsselbund aufnehmen. Das wird mit
gpg --import [Datei]
erreicht. Wenn man den Dateinamen weglässt, wird von
stdin
gelesen.
Es gibt verschiedene Gründe, einen alten Schlüssel zu widerrufen: Er könnte in fremde Hände geraten sein, die UID stimmt nicht mehr oder er ist einfach zu klein geworden. In all diesen Fällen ist der Befehl der Wahl
gpg --gen-revoke
Damit wird ein Schlüsselwiderruf-Zertifikat
erzeugt. Dafür braucht man den privaten
Schlüssel, denn sonst könnten solche Zertifikate auch
von Fremden erzeugt werden. Das hat aber einen Nachteil: Ein
Schlüssel, dessen Mantra ich nicht weiß, ist offensichtlich
nutzlos. Aber weil ich das Mantra nicht weiß, kann ich ihn nicht
widerrufen. Deshalb ist es geschickt, sich gleich bei der Erzeugung
des Schlüssels ein Widerruf-Zertifikat zu erzeugen. Das sollte
dann aber sicher verwahrt werden, am besten auf Diskette und auf
Papier, damit es nicht in falsche Hände gerät.
Der Schlüsselbund ist eine Datei, in der alle Schlüssel mit den dazugehörigen Informationen (bis auf die Ownertrust Werte, was das ist steht in Schlüssel signieren) gespeichert werden. Mit
gpg --list-keys
können alle Schlüssel des öffentlichen Schlüsselbundes angezeigt
werden. Mit
gpg --list-sigs
werden zusätzlich noch die Signaturen angezeigt (siehe
Schlüssel signieren). Mit
gpg --fingerprint
werden die Schlüssel mit ihren "Fingerabdrücken"
aufgelistet. Das sind (verhältnismäßig) kurze Zahlenfolgen, an denen
sich der Schlüssel identifizieren läßt. Das kann praktisch sein, um
sich über Telefon zu vergewissern, daß ein öffentlicher Schlüssel vom
Gesprächspartner stammt. Fingerabdrücke im Abspann von Email oder
Usenet Artikeln zu verschicken ist übrigens nicht sinnvoll.
gpg --list-secret-keys
listet die Schlüssel des privaten Schlüsselbundes auf. Unterschriften
und Fingerabdrücke von privaten Schlüsseln haben keinen
Informationswert.
Mit dem Befehl
gpg --delete-key UID bzw. gpg --delete-secret-key
kann man Schlüssel aus dem entsprechenden Schlüsselbund
löschen.
Der letzte wichtige Befehl für den Umgang mit Schlüsseln lautet
gpg --edit-key UID
In dem dann folgenden Menü kann man unter anderem das Mantra
und das Verfallsdatum ändern, Fingerabdrücke anzeigen lassen
und Schlüssel signieren, womit wir beim nächsten Abschnitt
wären.
Wie in der Einleitung erwähnt, ist die Echtheit eines öffentlichen Schlüssels die Achillesferse des Systems. Deshalb gibt es die Möglichkeit, Schlüssel zu unterschreiben. Damit bestätigt der Unterzeichnende, daß der in der User ID angegeben User tatsächlich der Besitzer des Schlüssels ist.
Nachdem man mit gpg --edit-key UID
den zu unterzeichnenden
Schlüssel ausgewählt hat, kann man ihn mit dem Kommando sign
unterschreiben.
Unterschreiben Sie nur Schlüssel von deren Echtheit sie sich überzeugt haben. Das kann geschehen, in dem man entweder den Schlüssel persönlich bekommen hat (zum Beispiel auf einer Keysigning Party), oder man über Telefon den Fingerprint vergleicht. Man sollte keinen Schlüssel nur deshalb unterschreiben, weil man den anderen Unterschriften vertraut.
Anhand der Unterschriften und des "ownertrusts" ermittelt GnuPG die Gültigkeit des Schlüssels. Der Ownertrust ist ein Wert mit dem der Benutzer festlegt, in welchem Maße er dem Schlüsselinhaber zutraut, andere Schlüssel verläßlich zu unterzeichnen. Die möglichen Abstufungen sind "gar nicht", "weiß nicht", "teilweise" und "vollständig". Wenn der Benutzer also einem anderem nicht traut, kann er GnuPG über diesen Mechanismus anweisen, dessen Unterschrift zu ignorieren. Der Ownertrust wird nicht im Schlüsselbund gespeichert, sondern in einer separaten Datei.