LINUXMAKER, OpenSource, Tutorials

Schlüsselgenerierung

Die Erzeugung der Schlüssel

Linux- und macOS-Anwender können alle Code-Beispiele auf der Bash-Shell in einem Terminalfenster nachvollziehen. Die Windows-Anwender können bis auf die reinen Unix-Befehle alle GnuPG-Befehle in der DOS-Box (Start => "Ausführen..." => cmd") anwenden.

Dabei halte ich diese Vorgehensweise über die Befehlseingabe für die bessere Methode, ein Programm und seine vielfältigen Funktionen kennen zu lernen. Das Umsetzen des Wissens auf die graphischen Benutzeroberflächen erfolgt dann wesentlich leichter, vor allem mit Aha-Effekten. Aus diesem Grund befinden sich hier keine Bedienungsanleitungen für die vielen unterschiedlichen Frontends.

 

Ein Schlüsselpaar wird auf der Console oder DOS-Box mit dem Befehl

# gpg --gen-key

erzeugt. Die Eingabe erzeugt dann folgende interaktive Session:

gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
Please select what kind of key you want:

(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)

Hier wird nach dem Verschlüsselungsalgorithmus gefragt. Wobei der Defaultwert bereits eine gute Wahl ist.

Your selection? 1
DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

Jetzt wird nach der Schlüssellänge gefragt. Dabei gilt, je grösser der Schlüssel ist, um so sicherer wird er. Aber die Erzeugung eines grossen Schlüssels kann auch dauern, je nachdem wie alt der Prozessor auf der Maschine ist.

Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

Hier haben wir eine unbegrenzte Lebensdauer gewählt. Etwas, das Sinn macht, denn ansonsten müssten wir den Schlüssel immer wieder verlängern. Und löschen können wir ihn vom Keyserver nicht, also warum dann nicht gleich unbegrenzt.

Jetzt folgt die Eingabe der Namen, Mailadresse und eines optionalen Kommentars.

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:

"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: Max Mustermann

Email address: Max.Mustermann@linuxmaker.com

Comment: Business

You selected this USER-ID:Max Mustermann (Business) <Max.Mustermann@linuxmaker.com>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

You need a Passphrase to protect your secret key

Mit der zweimaligen Eingabe eines guten Passwortes startet jetzt die Schlüsselgenerierung. Dafür müssen sehr viele Zufallszahlen erzeugt werden. Laufen währenddessen auf dem Rechner viele andere, möglichst zufällige Prozesse (Proxyserver oder Mailserver unter hoher Last, Mausbewegung, etc.) so sind die erzeugten Zufallszahlen wesentlich besser.

Revocation Key

Für den Fall, dass der Private Key anderen zugänglich wird oder eventuell die mit dem Schlüssel verbundene Mailadresse wegfällt, kann der Schlüssel zurück gezogen werden. Dazu muss ein Rückzugszertifikat erzeugt werden. Das geschiet mit dem Befehl

 gpg --gen-revoke UID sec  1024D/G45ZK41 2007-09-27 Max Mustermann <max.mustermann@linuxmaker.com>

Create a revocation certificate for this key? (y/N) y
Please select the reason for the revocation:
  0 = No reason specified
  1 = Key has been compromised
  2 = Key is superseded
  3 = Key is no longer used
  Q = Cancel
(Probably you want to select 1 here)
Your decision? 3
Enter an optional description; end it with an empty line:
>
Reason for revocation: Key is no longer used
(No description given)
Is this okay? (y/N) y

You need a passphrase to unlock the secret key for
user: "Max Mustermann <max.mustermann@linuxmaker.com>"
1024-bit DSA key, ID C4105093, created 2007-09-27

ASCII armored output forced.
Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: A revocation certificate should follow

iEkEIBECAAkFAkdHKaACHQzzz2398261ztzyvmuasQQUJNCpACfSuQpRQ6
OtRGSfRHQxNcop8ImdyQAoIOH1dGuWaNaMHgLFQXqSiRrS1qD
=IIIQ
-----END PGP PUBLIC KEY BLOCK-----

Nach dieser interaktiven Session wird ein Zertifikat erzeugt. Dieses, inklusive der Zeilen "-----BEGIN PGP PUBLIC KEY BLOCK-----" und "-----END PGP PUBLIC KEY BLOCK-----" werden jetzt per Copy&Paste in eine aussagekräftige Datei z.B. revoke.txt geschrieben.

Im Fall des Widerrufs des Schlüssels importiert man das Zertifikat mit

gpg --import revoke.txt

in den Schlüsselbund. Mit dem nächsten Keyserver-Abgleich steht die Information dann auch im Internet zur Verfügung. Das importierte Zertifikat ist dann Teil des Public-Keys

gpg --list-sigs G45ZK41 pub   1024D/G45ZK41 2007-09-27 [revoked]

rev         G45ZK41 2007-09-27 Max Mustermann
uid                 Max Mustermann <max.mustermann@linuxmaker.com>
sig 3       G45ZK41 2007-09-27 Max Mustermann <max.mustermann@linuxmaker.com>

sub   2048g/E2D56JJC 2007-09-27

Den Rückruf kann man an dem rev am Zeilenbeginn erkennen.