GnuPG: Erste Schritte

Aus Wikibooks

Wechseln zu: Navigation, Suche

[Bearbeiten] Erstellung der Schlüssel

Wenn man nicht nur Signaturen verifizieren möchte, wofür man ja nur den öffentlichen Schlüssel des Empfängers benötigt, ist ein eigenes Schlüsselpaar für das Arbeiten mit GnuPG unerlässlich. Man sollte die Schlüssel auf einem vertrauenswürdigen Rechner generieren, den man physisch vor sich hat. Man sollte ganz darauf verzichten es über eine telnet-Sitzung zu machen, eine ssh-Verbindung ist auch nicht zu empfehlen (z.B. auch wegen des Zufallszahlengenerators). Um auf der Kommandozeile ein eigenes Schlüsselpaar zu generieren, startet man:

~$ gpg --gen-key --enable-dsa2
gpg (GnuPG) 1.4.6; Copyright (C) 2006 Free Software Foundation, Inc.
...
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) DSA und ElGamal (voreingestellt)
   (2) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
Ihre Auswahl? 1

Die Option --enable-dsa2 ermöglicht es uns einen DSA-Schlüssel zu erzeugen, der größer als 1024 Bit ist. Zu erwähnen ist bei DSA2 lediglich, dass es noch nicht von allen OpenPGP-Implementierungen unterstützt wird. GnuPG unterstützt es vollständig und diejenigen, die es noch nicht unterstützen werden wohl in naher Zukunft nachziehen. Generell sollten wir von dieser Erweiterung Gebrauch machen. Um ein voll funktionsfähiges Schlüsselpaar mit einem geheimen und einem öffentlichen Schlüssel zu erhalten wählt man die Option, die auch voreingestellt ist. Sie erzeugt ein DSA-Schlüsselpaar zum Signieren und ein untergeordnetes ElGamal-Schlüsselpaar zum Verschlüsseln. Danach wird man gefragt wie viele Bit der DSA-Schlüssel haben soll, in Klammern der Vorgabewert:

...
DSA keys may be between 1024 and 3072 bits long.
What keysize do you want? (1024) 2048

Wir entscheiden uns hier für eine Schlüssellänge von 2048 Bit. Es folgt die Frage nach der Größe des ElGamal-Schlüssels:

Die verlangte Schlüssellänge beträgt 2048 Bit
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096

Hier entscheiden wir uns für das Maximum. Zwar verlängert sich dadurch die Verschlüsselungszeit, aber in Anbetracht der immer schneller werdenden Rechner sollte das zu vernachlässigen sein.

Als nächstes bleibt es uns zu entscheiden wie lange unser Schlüssel gültig bleiben soll. Wählen wir eine Dauer, beispielsweise drei Jahre, so wird unser Schlüssel gänzlich ohne unser Zutun nach Ablauf dieser drei Jahre ungültig. Ist der Schlüssel erstellt, hat man keine Möglichkeit mehr die Gültigkeitsdauer zu verändern. Die feste Gültigkeitsdauer eines Schlüssels hat freilich Vorteile als auch Nachteile. Zu den Nachteilen gehört, dass wir uns am Ende der Gültigkeitsdauer unseres Schlüssels einen neuen erstellen müssen. Alle Signierungen auf unserem Schlüssel, sind hinfällig, denn sie sind ja an einen Schlüssel gebunden. Wir müssen also erneut losziehen und uns unseren neuen Schlüssel signieren lassen. Sollte man so närrisch gewesen sein kein Widerrufszertifikat zu erstellen, oder dieses verloren ging, hat man sein Passwort vergessen hat oder kam der Schlüssel bei einem Festplattencrash ums Leben, ohne das wir eine Sicherung hatten, so ist die Gültigkeitsdauer die letzte Absicherung und die letzte Möglichkeit den Schlüssel ungültig zu machen. Man muss einfach nur warten bis er abläuft. Eine zeitlich begrenzte Gültigkeit macht zum Beispiel dann Sinn wenn abzusehen ist, dass man den Schlüssel nur für eine bestimmte Zeit benötigt, beispielsweise bei einer politischen Kampagne. Der Faulheit halber werden wohl die allermeisten eine unbeschränkte Gültigkeit wählen, und damit macht man auch absolut nichts Dummes. Allerdings sollte man gerade jetzt auf eine Sicherung achten.

Die verlangte Schlüssellänge beträgt 4096 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
        0 = Schlüssel verfällt nie
     <n>  = Schlüssel verfällt nach n Tagen
     <n>w = Schlüssel verfällt nach n Wochen
     <n>m = Schlüssel verfällt nach n Monaten
     <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0)
Schlüssel verfällt nie
Ist dies richtig? (j/N) j

Wir belassen es bei der voreingestellten zeitlich unbegrenzten Gültigkeit. Es folgt die Erstellung der Benutzeridentität. Es muss mindestens eine Benutzeridentität mit einem Schlüssel verbunden sein. Später kann man noch weitere IDs hinzufügen, ebenso wie subkeys. In Kapitel GnuPG: GnuPG benutzen wird dies näher erläutert. Eine ID besteht aus dem Namen, einer Email-Adresse und einem optionalen Kommentar. Dies ist also korrekt auszufüllen. Im Kommentar kann man seinen Spitznamen, Zusätze wie z.B. „university“ (also es handelt sich um die E-Mail-Adresse, die man von der Universität hat) oder „sign only“ (der Schlüssel wird nur zum Signieren verwendet) benutzen, oder man lässt ihn einfach leer.

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>"
Ihr Name ("Vorname Nachname"): John Doe
Email-Adresse: john.doe@doe.net
Kommentar: master john
Sie haben diese User-ID gewählt:
   "John Doe (master john) <john.doe@doe.net>"

Nach der Bestätigung oder Korrektur folgt die Frage nach der „Passphrase“ (in älteren Versionen auch „Mantra“). Trotz des anderen Namens ist dies nichts anderes als ein Passwort (außer dass Leerzeichen vorkommen dürfen und es länger als ein normales Passwort sein sollte), das den geheimen Schlüssel zusätzlich schützt. Trotz des anderen Namens gelten auch hier die allgemeinen Empfehlungen für ein sicheres Passwort. Das bedeutet, es sollte ein möglichst abstraktes Zeichengewirr sein, sprich: kein Name, kein Gegenstand, nicht erratbar, nicht zu kurz, und soll möglichst Zahlen, Buchstaben (klein und groß) und Sonderzeichen enthalten. Eine einfache Methode ein völlig willkürliches Passwort zu erstellen, ist einfach ein mal willkürlich auf der Tastatur herumtippen. Dabei drauf achten, dass man nicht nur Buchstaben erwischt. Anschließend kann man sein Werk etwas kürzen (aber keine Angst ein Zeichenfolge von 26 Zeichen, läßt sich leicht merken, wenn man sie 20x eingegeben hat), baut hier ein Großbuchstaben ein und dort. Man bastelt so lange dran rum, bis man das Gefühl hat, das es echt zufällig ist und man alles drin hat, Sonderzeichen, Groß-/Klein-, Zahlen. Empfohlen wurde schon öfters ein ganzer Satz, allerdings sollte auch hier kreatives Chaos gemacht werden, da es nicht gut ist, wenn man die Wörter in einem Wörterbuch finden kann. Die Passphrase muss man – sofern man keinen Agenten benutzt – immer eingeben, wenn man auf den geheimen Schlüssel zugreifen will, also z.B. wenn Sie eine für Sie verschlüsselte Nachricht lesen wollen oder etwas signieren. Denken Sie also bei der Wahl einer sicheren Passphrase auch daran, dass Sie sich nicht jedes mal tottippen wollen.

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? f
Sie benötigen eine Passphrase, um den geheimen Schlüssel zu schützen.

Bevor Sie die Passphrase bestätigen: Setzen Sie ihr System unter Last, bewegen Sie nach der Bestätigung exzessiv die Maus oder drücken Sie irgendwelche Tasten oder alles zusammen (vielleicht auch schnell irgendein Spiel zwischendurch spielen?), denn nun werden die Zufallswerte erzeugt. Hierzu legt GnuPG Wert auf genügend „Zufälligkeit“, und die ist durch pure Werte von Software-Zufallsgeneratoren nicht ausreichend, denn diese sind mit mehr oder weniger aufwändigen Mitteln reproduzierbar. Daher ist Ihre „Interaktion“ über z.B. irgendwelche (möglichst) zufälligen Eingaben notwendig. Nach Auflistung des erstellten öffentlichen Schlüssels mit Ihrer ersten „Benutzer-ID“ (uid) ist der Prozess abgeschlossen und sollte gpg sich beenden. Das sollte dann so aussehen:

Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
gpg: WARNING: some OpenPGP programs can't handle a DSA key with this digest size
.+++++..+++++.+++++.+++++++++++++++++++++++++..++++++++++++++++++++..++++++++++...+++++.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>.++++++++++.+++++..+++++.+++++>  
+++++........................>.+++++.<+++++...+++++
Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
+++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++..+++++.....+++++++++++++++....++++++++++++++++++++
.+++++.+++++.++++++++++...+++++.++++++++++.+++++++++++++++.+++++..+++++.+++++...+++++>.++++++++++.+++++.+++++.++++++++++..
++++++++++++++++++++>+++++>.....+++++......>+++++.............................<....+++++.....................................>+++++......<+++++.......................>...+++++.....>..
+++++.......<+++++........<+++++.....>.+++++........................................................................................................................................................+++++^^^
gpg: key FDB14FB5 marked as ultimately trusted
Öffentlichen und geheimen Schlüssel erzeugt und signiert.
gpg: "Trust-DB" wird überprüft
gpg: 3 marginal-needed, 1 complete-needed, classic Vertrauensmodell
gpg: depth: 0  valid:   4  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 4u
pub   2048D/FDB14FB5 2007-02-15
  Schl.-Fingerabdruck = 2DD1 B54B 1597 9397 31E1  3123 DFD2 A96F FDB1 4FB5
uid                  John Doe (master john) <john.doe@doe.net>
sub   4096g/28146056 2007-02-15

[Bearbeiten] Erzeugen einer Widerrufsurkunde

Nachdem man nun erfolgreich sein Schlüsselpaar erzeugt hat, sollte man gleich im Anschluß daran eine Widerrufsurkunde erzeugen. Mit einer Widerrufsurkunde kann man seinen Schlüssel im Bedarfsfall als ungültig markieren. Kommunikationspartner können dann mit diesem als ungültig markierten Schlüssel keine Emails mehr an Sie verschlüsseln, ebenso wenig können Sie mit diesem Schlüssel weiterhin Dateien oder Emails signieren. Der Bedarfsfall kann zum Beispiel ein kompromittierter Schlüssel sein, also ein Schlüssel dem sie nicht mehr vertrauen. Es kann auch etwas ganz profanes, wie das vergessene Passwort sein. Oder vielleicht haben Sie sich nach einigen Jahren einfach nur entschieden, sich einen neuen, stärkeren Schlüssel zuzulegen. Ein Bedarfsfall der unbedingt in Betracht gezogen werden sollte ist ein verloren gegangener Schlüssel, beispielsweise durch eine dahingeschiedene Festplatte, Zerstörung der Partitionstabelle durch Virus oder Fehlbedienung von fdisk. Ein weiterer Grund ist das Verhalten der Schlüsselserver: Diese synchronisieren untereinander, d.h. wird auf einem Server ein Schlüssel hinzugefügt, so ist er auch bald auf allen anderen zu finden. Würde man seinen Schlüssel einfach von einem Schlüsselserver löschen, so würde dieser sich nach der nächsten Synchronisation wieder auf dem Server befinden. Also setzt man statt dem Löschen eben das Widerrufszertifikat ein. Für das Widerrufszertifikat gilt übrigens das gleiche wie für den Schlüssel selbst: Sichern. Um eine Widerrufsurkunde zu erzeugen starten sie gpg mit folgender Option:

gpg -o ~/.gnupg/Email-adresse_revoke.asc --gen-revoke <user-ID>

Es folgt eine Abfrage, ob sie dieses Zertifikat wirklich erzeugen wollen:

gpg --gen-revoke john.doe@doe.net
sec  2048D/FDB14FB5 2007-02-15 John Doe (master john) <john.doe@doe.net>
Create a revocation certificate for this key? (y/N) y

Danach werden sie gefragt, welcher Grund für den Widerruf mit diesem Zertifikat vorliegt:

Grund für den Widerruf:
 0 = Kein Grund angegeben
 1 = Hinweis: Dieser Schlüssel ist nicht mehr sicher
 2 = Schlüssel ist überholt
 3 = Schlüssel wird nicht mehr benutzt
 Q = Abbruch
(Wahrscheinlich möchten Sie hier 1 auswählen)
Ihre Auswahl? 1

Im Beispiel benutzen wir einfach einmal den voreingestellten Wert. Natürlich können sie für jeden dieser Gründe ein eigenes Widerrufszertifiakt ausstellen. Dies sollte sich dann natürlich auch im Namen des Zertifikats wiederspiegeln, damit sie im Falle des Falles wissen, welches Sie benutzen wollen. Nun können Sie noch eine optionale Beschreibung eingeben, in der sie beispielsweise genauer erläutern warum Sie ihren Schlüssel widerrufen.

Geben Sie eine optionale Beschreibung ein. Beenden mit einer leeren Zeile:
>
Grund für Widerruf: Hinweis: Dieser Schlüssel ist nicht mehr sicher
(Keine Beschreibung angegeben)
Is this okay? (y/N)y

Nun werden Sie noch nach dem Passwort für ihren geheimen Schlüssel gefragt, denn natürlich sollen nur Sie in der Lage sein ein Widerrufszertifikat für ihren Schlüssel auszustellen, denn könnte das jeder wäre das kaum als sinnvoll zu bezeichnen.

You need a passphrase to unlock the secret key for
user: "John Doe (master john) <john.doe@doe.net>"
2048-bit DSA key, ID FDB14FB5, created 2007-02-15

Nachdem man sein Passwort erfolgreich eingegeben hat, wird das Widerrufszertifikat erzeugt und gpg endet mit den folgenden Zeilen:

Ausgabe mit ASCII-Hülle erzwungen
Widerrufszertifikat wurde erzeugt.
Bitte speichern Sie es auf einem Medium welches sie wegschliessen
können; falls Mallory (ein Angreifer) Zugang zu diesem Zertifikat
erhält, kann er Ihren Schlüssel unbrauchbar machen. Es wäre klug,
dieses Widerrufszertifikat auch auszudrucken und sicher aufzubewahren,
falls das ursprüngliche Medium nicht mehr lesbar ist. Aber Obacht: Das
Drucksystem kann unter Umständen eine Kopie anderen Nutzern zugänglich 
machen.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: A revocation certificate should follow
iFkEIBELAAkFAkXU5cgCHQIACgkQ39Kpb/2xT7XZtwDgj2jSj/X1IncCBKgOp4hY 
HsKPu7xqqCeEVxzGCADglv4gafSZMTeZnOH8LvESKh/c12RyOd2bkd5L5g==
=uYlc
-----END PGP PUBLIC KEY BLOCK-----

Nun haben Sie erfolgreich ein Widerrufszertifikat für ihr Schlüsselpaar erzeugt. Damit haben Sie die den Einstieg in die Welt des Verschlüsselns und Signierens gemeistert. Im nächsten Kapitel GnuPG: GnuPG benutzen erfahren Sie, wie Sie ihren Schlüssel handhaben.


Wikibooks buchseite.svg Zurück zu Installation | One wikibook.svg Hoch zu Inhaltsverzeichnis | Wikibooks buchseite.svg Vor zu GnuPG benutzen
Persönliche Werkzeuge