http://www.net-tex.de

Eine kurze Einfürung in gpg

Erstellen und Bearbeiten von Schlüsseln

Erzeugung eines Schlüsselpaares: (Index)

$ gpg --gen-key aufrufen

Im Allgemeinen bietet es sich an einen DSA / El Gamal Schlüssel zu erzeugen, da einfache DSA oder RSA Schlüssel nur zum Signieren verwendet werden können.




die Größe für einen DSA / El Gamal Schlüssel sollte z. Zt. bei 1024 Bit liegen,
RSA Schlüssel erfordern z. Zt. wenigstens 2048 Bit



Man kann ein Verfallsdatum für einen Schlüssel vergeben, nach Ablauf des Datums wird der Schlüssel ungültig, man kann ihn nicht mehr zum verschlüsseln verwenden. Entschlüsseln und Signaturverifikation sind mit abgelaufenen oder zurückgerufenen Schlüsseln noch möglich.
Ob man ein Verfallsdatum angibt, liegt im Ermessen des Benutzers.




Nachdem die Parameter des Schlüssels übergeben wurden, müssen nun die Benutzerdaten eingegeben werden. Hierbei sind der korrekte Vor- und Nachname sowie die eMailadresse und wahlweise ein Kommentar (z. B. eine Webseite oder ein Hinweis auf Firmenzugehörigkeit) anzugeben. Die wenigsten Benutzer akzeptieren übrigens Schlüssel mit Pseudonymen statt Realnamen.
Anschließend wird eine Passphrase verlangt, die zweimal eingegeben werden muss. Diese Passphrase sollte sorgfältig gewählt werden, da mit ihr der Zugriff auf den privaten Schlüssel möglich ist.




Abschließend wird der Schlüssel mit den entsprechenden Eigenschaften generiert und dem Keyring hinzugefügt. Je nach Systemleistung und gewählter Schlüsselgröße dauert die Generierung entsprechende Zeit.
Da GnuPG hierbei große und vor allem echte Zufallsdaten erzeugen muss, kann es vorkommen das eine Warnmeldung ausgegeben wird, die dazu auffordert das System zu benutzen um weitere Randomseed zu generieren. Hierbei reicht es meist einfach ein größeres Programm wie GIMP oder LaTeX anzuwerfen oder profanerweise "find /" laufen zu lassen.




Der Inhalt des Keyrings lässt sich mit $ gpg --list-keys abrufen.
gpg zeigt hier die Daten des erzeugten Schlüssels an. Hierbei bedeutet:
  pub  1024D/F610A67A 2004-04-21 Max Mustermann (Testschluessel!) <max@mustermann.local>
  sub  1024g/37E3FBE1 2004-04-21
  
pub = öffentlicher Schlüssel
1024D = 1024 bittiger DSA Schlüssel
F610A67A = hexadezimale Schlüssel-ID
2004-04-21 = Datum der Erstellung des Schlüssels
sub = Unterschlüssel (Subkey)
1024g = 1024 bittiger El Gamal Schlüssel
37E3FBE1 = hexadezimale Subschlüssel-ID

Schlüssel extrahieren (Index)






gpg ist selbstverständlich auch in der Lage einen Schlüssel aus dem Ring in eine Datei zu exportieren. Dies geschieht mit:
$ gpg -a --export 0xF610A67A > key
Die Option --export erwartet die Schlüssel-ID des zu exportierenden Schlüssels, die Option -a schaltet das sogenannte ASCII-Armoring an. Da der Schlüssel Zufallsdaten repräsentiert, kommen in ihm auch nichtdruckbare Zeichen (bspw. CR/LF oder Alarm) vor, übergibt man -a werden diese Zeichen durch druckbare ersetzt und die Handhabung des Schlüssels vereinfacht sich erheblich. Durch die Angabe der Umleitung wird der Schlüssel in die Datei ./key geschrieben, ohne Umleitung gibt gpg den Schlüssel auf stdout, was im Bild dargestellt wurde.
Die so erzeugte Datei lässt sich bspw. auf einem httpd oder ftpd zum Download anbieten oder problemlos per eMail verschicken.
Möchte man die Kommunikation mit anderen, evtl unbekannten, Kommunikationspartnern erleichtern, sollte man den öffentlichen Schlüssel auf einen Keyserver einspielen. Dazu verwendet man ein angebotenese Webinterface wie bspw. http://pgp.mit.edu:11371/#submit oder aber direkt gpg. Dazu muss in der ~/.gnupg/options lediglich ein Keyserver angegeben werden (z.B. so: keyserver http://pgp.mit.edu:11371/), der verwendet werden soll. Möchte man nun Schlüssel ex-/importieren, geschieht dies einfach mit:
$ gpg --send-key 0xF610A67A
$ gpg --recv-key 0xb3fbae33
Damit man nicht jeden neuen Schlüssel von Hand importieren muss, kann man in ~/.gnupg/options "keyserver-options auto-key-retrieve" setzen.

Bestehenden Schlüssel manipulieren (Index)






gpg bietet vielfältige Möglichkeiten einen bestehenden Schlüssel zu manipulieren. Dazu ruft man lediglich
$ gpg --edit-key 0xF610A67A
auf und gelangt so in die gpg-shell. Das Bild zeigt die Optionen die gpg bietet. Wir können bspw. eine ID ändern (Kommentar, eMail), löschen oder hinzufügen oder andere Schlüssel signieren. Eine neue ID können wir mit adduid hinzufügen, das Prozedere gleicht dem der Schlüsselerstellung (außer das kein neuer Schlüssel generiert wird). Löschen oder Ändern einer ID geschieht analog mit deluid bzw. revuid
Auf die Arbeit mit Signaturen werde ich später genauer eingehen.

Um einen Schlüssel zu widerrufen (also als nicht mehr benutzbar zu markieren) ist das Senden eines Revocation certificates an einen Keyserver erforderlich.
Widerrufen sollte man einen Schlüssel, wenn dieser kompromittiert oder anderweitig unbrauchbar wurde.
Es bietet sich an ein Revocation certificate sofort nach Erstellung des Schlüssels zu generieren und geeignet abzulegen, um bei Verlust des privaten Schlüssels einen nötigen Widerruf durchführen zu können. Hierzu ruft man gpg --gen-revoke auf, beantwortet zwei Fragen zum Grunde des Widerrufs und erhält das gewünschte Zertifikat, welches danach bspw. verschlüsselt auf Diskette oder als Ausdruck an geeigneter Stelle gesichert werden sollte.

$Id: 1-erstellen.html,v 1.2 2004/04/25 09:48:27 stefan Exp $