GnuPG: Erste Schritte

Aus Wikibooks

Erstellung der Schlüssel[Bearbeiten]

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 ($ ist der Prompt und wird nicht mit eingegeben):

$ gpg --gen-key
gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) RSA und RSA (voreingestellt)
   (2) DSA und Elgamal
   (3) DSA (nur unterschreiben/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
Ihre Auswahl? 1

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 RSA-Schlüsselpaar zum Signieren und Verschlüsseln. Danach wird man gefragt wie viele Bit der RSA-Schlüssel haben soll, in Klammern der Vorgabewert:

RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (2048) 2048

Wir entscheiden uns hier für den Standardwert.

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, kann man die Gültigkeitsdauer jederzeit verlängern (gpg --edit-key und expire). Die feste Gültigkeitsdauer eines Schlüssels hat deutliche Vorteile. Sollte man so närrisch gewesen sein, kein Widerrufszertifikat zu erstellen, oder ging dieses verloren, hat man sein Passwort vergessen oder kam der Schlüssel bei einem Festplattencrash ums Leben, ohne dass man eine Sicherung hatte, 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.

Die verlangte Schlüssellänge beträgt 2048 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) 3y
Key verfällt am So 26 Jun 2016 13:44:42 CEST
Ist dies richtig? (j/N) j

Wir wählen eine Gültigkeitsdauer von 3 Jahren, diese kann jederzeit mit dem expire Befehl verlängert werden.

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.

Sie benötigen eine User-ID, um Ihren Schlüssel eindeutig zu machen; das
Programm baut diese User-ID aus Ihrem echten Namen, einem Kommentar und
Ihrer Email-Adresse in dieser Form auf:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Ihr Name ("Vorname Nachname"): John Doe
Email-Adresse: john.doe@example.org
Kommentar:
Sie haben diese User-ID gewählt:
    "John Doe <john.doe@example.org>"

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? f

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: Es soll 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. Die Passphrase soll keine Leerzeichen enthalten, weil die Leertaste der meisten Tastaturen ein charakteristisches Geräusch erzeugt. Ein Angreifer kann sonst durch bloßes Mithören Teile der Passphrase erkennen. 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.

Sie benötigen eine Passphrase, um den geheimen Schlüssel zu schützen.
Geben Sie die Passphrase ein:
Geben Sie die Passphrase nochmal ein:

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?) oder warten Sie einfach ein bisschen, 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. 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.
..+++++
...+++++
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: /home/cip/2010/he29heri/.gnupg/trustdb.gpg: trust-db erzeugt
gpg: Schlüssel 48708D86 ist als uneingeschränkt vertrauenswürdig gekennzeichnet
Öffentlichen und geheimen Schlüssel erzeugt und signiert.

gpg: "Trust-DB" wird überprüft
gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell
gpg: Tiefe: 0  gültig:   1  unterschrieben:   0  Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u
gpg: nächste "Trust-DB"-Pflichtüberprüfung am 2016-06-26
pub   2048R/48708D86 2013-06-27 [verfällt: 2016-06-26]
  Schl.-Fingerabdruck = F7C0 09A1 9C66 D991 C3EB  8D05 5F90 6FB0 4870 8D86
uid                  John Doe <john.doe@example.org>
sub   2048R/BA13BCFB 2013-06-27 [verfällt: 2016-06-26]

Erzeugen einer Widerrufsurkunde[Bearbeiten]

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. Schon bestehende Nachrichten können natürlich weiterhin entschlüsselt oder ihre Signatur geprüft werden.

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: am besten auf Papier ausdrucken. Um eine Widerrufsurkunde zu erzeugen starten sie gpg mit folgender Option:

$ gpg --gen-revoke john.doe@example.org
sec  2048R/48708D86 2013-06-27 John Doe <john.doe@example.org>

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

Ein Widerrufszertifikat für diesen Schlüssel erzeugen? (j/N) j

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 Widerrufszertifikat ausstellen. Dies sollte sich dann natürlich auch im Namen des Zertifikats widerspiegeln, 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)
Ist das OK? (j/N) j

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.

Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren.
Benutzer: "John Doe <john.doe@example.org>"
2048-Bit RSA Schlüssel, ID 48708D86, erzeugt 2013-06-27

Geben Sie die Passphrase ein:

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

Benutzer: "John Doe <john.doe@example.org>"
2048-Bit RSA Schlüssel, ID 48708D86, erzeugt 2013-06-27

Ausgabe mit ASCII Hülle erzwungen
Widerrufszertifikat wurde erzeugt.

Bitte speichern Sie es auf einem Medium welches Sie wegschließen
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.12 (GNU/Linux)
Comment: A revocation certificate should follow

iQEfBCABAgAJBQJRzCh/Ah0CAAoJEF+Qb7BIcI2GHRQH/iJQh2O7ZUqmyPfa7iyr
EYMWLW56DyN3ac3ORmZORBvF9qkIAA6sc8hVY4GCH8JErmWrzZPlvUMKWKWoF069
pGzEkYlao4Tl7tX1ONS1Emd6G6QECJf5xwyTqDUP8I00/2ML6arEhElrRndA9rJR
SypsZwIR657rY4zPb1zTSDlR7hAgwFOj2W6kB8tAwDlQwiZPRhG438YdODkAq/3k
egLQJPE7QhkQZlTYebr6TXApB2Mh9zh7CqYIR4BrYZg7fXDBtCbzZi4D/zeFY6Hi
CYeGj2+KuPQE1q5PBW/bGIrC35uLhVcn2IXoDjxkaTKUkOwgir1E+EPv2X74rZrQ
bp8=
=1yPT
-----END PGP PUBLIC KEY BLOCK-----


Nun haben Sie erfolgreich ein Widerrufszertifikat für ihr Schlüsselpaar erzeugt. Speichern Sie dies in einer Datei und drucken Sie es am besten aus.

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.