# GnuPG und PGP

Grundlagen zu GnuPG und PGP

Einleitung

Jeder RegAcc muss mindestens einen Key bei DENIC hinterlegen.

Was ist GnuPG / PGP?

PGP (Pretty Good Privacy) / GnuPG (eine Open Source Open PGP Implementation) sind Programme, die es erlauben, E-Mails, Texte und Dateien zu signieren sowie zu verschlüsseln. Es gilt als sehr sicher und erlaubt daher eine sichere Kommunikation zwischen mehreren Parteien.

Unterstützte Versionen

DENIC unterstützt alle GnuPG und PGP Versionen.

Was sind Keys und wie sind sie aufgebaut?

Ein Key besteht immer aus zwei Teilen:

- dem öffentlichen Schlüssel („Public Key“) und
- dem privaten Schlüssel („Private Key“).

Aufgrund des asymmetrischen Verschlüsselungsverfahrens hat jeder Benutzer zwei zusammengehörende Schlüssel (Public und Private Key). Aus dem gewählten Passwort bildet GnuPG bzw. PGP einen Hash-Wert – den sogenannten geheimen Schlüssel – aus dem wiederum der private Schlüsselteil generiert wird.

Mit dem privaten Schlüssel ist es unter anderem möglich, Nachrichten zu signieren und zu entschlüsseln.

Mit dem öffentlichen Schlüssel können Nachrichten verifiziert und verschlüsselt werden.

Jeder Key beinhaltet verschiedene Informationen, zum Beispiel:

Länge | Schlüssellänge des Keys, z.B. 2048 Bit
Typ | Beispiel: DSA und ElGamal
KeyID | Eindeutige ID des Schlüssels, zum Beispiel 0x00F555A
Erstellungsdatum | Im Format yyyy-mm-dd
Name | Beispiel: DENIC-1000002 Produktions-Kommunikations-Key
E-Mail | Beispiel: example@denic.de
Fingerprint | Fingerabdruck des Keys, der in Verbindung mit der KeyID eine eindeutige Identifizierung ermöglicht
Expire | falls vorhanden: Gültigkeitsdatum des Keys

Sehen wir uns als Beispiel einen Key an:

    sheridan@babylon5-xs2:~/ $ gpg --fingerprint F81AE61F
    pub 2048D/F81AE61F 2001-12-11 [verfällt: 2002-12-11]
       Schl.-Fingerabdruck = 4943 3AA7 6A85 306E 23A4 A1AC D4B9 6CF6 F81A E61F
    uid          Business Services <example@denic.de>
    uid          DENICoperations <ops@denic.de>
    uid          Public Relations <presse@denic.de> sub
    2048g/839B30DB 2001-12-11 [verfällt: 2002-12-11]

In diesem Beispiel sind:

- Länge: 2048 Bit
- Typ: DSA (symbolisiert durch das "D" in 2048D; bei RSA-Keys stünde hier z.B. 2048R)
- KeyID: 0xF81AE61F
- Erstellungsdatum: 2001-12-11 (im Format YYYY-MM-DD)
- Name: Business Services
- E-Mail: example@denic.de
- Fingerprint: 4943 3AA7 6A85 306E 23A4 A1AC D4B9 6CF6 F81A E61F
- Expire: Der Key verfällt 2002-12-11

GnuPG / PGP speichern die Schlüssel im sogenannten Schlüsselbund ("Keyring") ab.

In der Regel besteht der Keyring aus den Dateien "pubring.pkr" und "secring.pkr" (PGP) bzw. pubring.gpg und secring.gpg in $HOME/.gnupg/ (GnuPG).

Master- und Kommunikations-Keys

DENIC unterscheidet zwischen zwei Arten von Schlüsseln:

- Master-Key
- Kommunikations-Key

Der Master-Key dient zur

- Signierung von E-Mails, um den Zugang zum Registrar Administration Interface (RAI) bei DENIC Business Services zu veranlassen
- Autorisierung von Änderungen an der hinterlegten RAI-Info-E-Mail-Adresse an die DENIC Benachrichtigungen über Änderungen am RegAcc-Profil sendet.
- Autorisierung bei der Bestellung zusätzlicher RegAccs/Kontingente
- Autorisierung vom Anlegen für Zugänge zu den Mitglieder-Webseiten

Der Master- und Kommunikations-Key dient zur

- Allgemeinen E-Mail-Kommunikation der Mitglieder mit DENIC

Funktion und Anforderungen an den Master-Key und Kommunikations-Key

Der Key dient zur Autorisierung und Identifizierung gegenüber DENIC eG bei der Auftragsbearbeitung und sonstiger E-Mail-Kommunikation. Jeder RegAcc muss mindestens einen Key bei DENIC hinterlegen.

- Jeder Key muss eindeutig sein. Ein bereits genutzter Key kann nicht erneut verwendet werden.
- Die Anzahl der erlaubten Keys ist nicht begrenzt
- Alle Keys müssen mit einer Gültigkeitsdauer versehen sein, die maximal 731 Tage betragen darf. Nach Ablauf der Gültigkeitsdauer wird der Key aus dem Keyring der DENIC gelöscht und kann nicht mehr verwendet werden.
- Als Schlüsselart muss DH/DSS, RSA, DSA oder DSA und Elgamal ausgewählt werden.
- Die Schlüssellänge muss mindestens 2048 Bit betragen.
- Die erlaubten Signaturalgorithmen für Aufträge sind:
  - RIPEMD160withRSA
  - RIPEMD160withECDSA
  - RIPEMD256withRSA
  - SHA256withDSA
  - SHA256withECDSA
  - SHA384withDSA
  - SHA384withECDSA
  - SHA512withDSA
  - SHA512withECDSA
  - SHA256withRSA
  - SHA384withRSA
  - SHA512withRSA
- Jeder Key sollte mit einer sicheren Passphrase versehen sein.
- DENIC empfiehlt, für jeden Key eine eindeutige Namensgebung bestehend aus RegAccId, RegAccName und ggf. Verwendungszweck zu wählen.
  - Beispiel: DENIC-99995 DENIC eG

Aktivierung eines Keys

Ein neuer Key kann über RAI eingepflegt werden. Eine Aktivierung des Keys erfolgt innerhalb von 5 Minuten.

Expire eines Keys

Abgelaufene Keys werden aus dem DENIC-Keyring gelöscht und werden im RAI nicht mehr angezeigt.

Löschen eines Keys

Wenn du einen Key aus dem DENIC-Keyring entfernen möchtest (zum Beispiel, weil der Key kompromittiert wurde), kannst du ihn jederzeit über das RAI aus dem DENIC-Keyring entfernen.

Schritt-für-Schritt -Erstellen eines Keys mit PGP

Diese Anleitung bezieht sich auf PGP-Version 9.9.1.

- Starte PGP-Desktop.

- Wähle aus dem Menü "Datei" die Option "Neuer PGP-Schlüssel"
- Gib den Namen der Person / Rolle ein, die den Key verwendet, sowie die entsprechende E-Mail-Adresse.
- Klicke auf "Erweitert".
- Prüfe, ob bei "Größe" mindestens 2048 angegeben ist.
- Klicke bei "Ablaufdatum" auf das Datum und gib ein Datum ein, welches maximal 731 Tage in der Zukunft liegt.
- Klicke auf "OK" und im Anschluss auf "Weiter" und gib nun ein sicheres Passwort ein.
- Nach einem Klick auf "Weiter" wird Ihr Schlüsselpaar erzeugt.
- Im Anschluss hast du nun noch die Möglichkeit deinen Key auf einen öffentlichen Keyserver hochzuladen, sofern du das möchtest.
- Klicke im Anschluss mit der rechten Maustaste auf deinen Key.
- Wähle "Exportieren" aus.
- Wähle einen Speicherort aus und stelle sicher, dass die Option "Private(n) Schlüssel einschließen" ausgewählt ist.
- Speicher die erzeugte Schüsseldatei an einem sicheren Ort.

Hinweis |  | Beachte, dass die Schlüsseldatei auch den privaten Schlüssel enthält. Bewahren den privaten Schlüssel sorgfältig auf, da dieser zum Signieren verwendet wird.

Einbinden des Kommunikations-Keys über das Registrar Administration Interface (RAI)

- Ein neuer Kommunikations-Key wird im RegAcc-Profil über RAI eingepflegt.
  - Detaillierte Informationen zum Thema stehen in der Dokumentation "RAI - Registrar Administration Interface",RegAcc-Profil bearbeiten, "PGPKey".
- Öffne die Schlüsseldatei mit einem Texteditor.
- Markiere und kopiere nur den Bereich des öffentlichen Schlüssels.
- Füge den Textblock im RAI unter "RegAccPGPKey" ein und speichere.

Hinweis |  | Du kannst den Key nach 5 Minuten nutzen.

Schritt-für-Schritt - Erstellen eines Keys mit GnuPG

Erstellen des Keys

Diese Anleitung bezieht sich auf GnuPG-Version 1.4.7. Erstelle den Key wie folgt:

- Linux
  Starte eine Konsole (mittels ALT+F2 und gib unter KDE konsole und unter GNOME gnome-terminal ein).
- Windows
  Öffne ein Kommando-Fenster (Start -> Ausführen -> cmd).
- Tippe "gpg --gen-key" ein.
- Wähle nun aus der entsprechenden Liste aus (DENIC empfiehlt entweder RSA und RSA oder DSA und Elgamal auszuwählen).
- Gib nun die Schlüssellänge ein. Bitte gib mindestens 2048 bis maximal 4096 ein.
- Gib nun den Gültigkeitszeittraum für den Key ein:
  - Du kannst die Gültigkeit in Tagen eingeben (Gib zum Beispiel 10 für 10 Tage ein) oder
  - in Wochen (Gib zum Beispiel 4w für 4 Wochen ein) oder
  - in Monaten (Gib zum Beispiel 12m für 12 Monate ein) oder
  - in Jahren (Gib zum Beispiel 2y für 2 Jahre ein).

    Hinweis |  | DENIC empfiehlt die maximale Gültigkeit von zwei Jahren einzugeben.

- Bestätige im Anschluss deine Eingabe.
- Gib den Namen der Person / Rolle ein, die den Key verwendet sowie die entsprechende E-Mail-Adresse.
- Im Anschluss must du deine Eingabe noch einmal bestätigen.
- Gib nun ein sicheres Passwort ein. Im Anschluss wird der Key erstellt.
- Du kannst den Key nun exportieren in dem du "gpg -a --export <KeyID> > mykey.asc" tippst. Die KeyID findest du in der Zeile "pub", oben.
- Exportiere auch den privaten Schlüssel mit "gpg -a -- export-secret-keys <KeyID> > mysecretkey.asc".
- Abschließend sollte das Schlüsselpaar an einem sicheren Ort abgelegt werden.

Hinweis |  | Beachte, dass die Schlüsseldatei den privaten Schlüssel enthält. Bewahre den privaten Teil sorgfältig auf, da dieser zum Signieren verwendet wird.

Einbinden des Kommunikations-Keys über das Registrar Administration Interface (RAI)

- Ein neuer Kommunikations-Key wird im RegAcc-Profil über RAI eingepflegt.
  - Detaillierte Informationen zum Thema stehen in der Dokumentation "RAI - Registrar Administration Interface",RegAcc-Profil bearbeiten, "PGPKey".
- Öffne die Schlüsseldatei mit einem Texteditor.
- Markiere und kopiere nur den Bereich des öffentlichen Schlüssels.
- Füge den Textblock im RAI unter "RegAccPGPKey" ein und speichere.

Hinweis |  | Du kannst den Key nach 5 Minuten nutzen.

Weiterführende Informationen zu GnuPG / PGP

Wichtige GnuPG-Befehle im Überblick

-s, --sign | Signatur erstellen
--clearsign | Klartextsignatur erstellen
-e, --encrypt | Datei / E-Mail verschlüsseln
--decrypt [Datei] | Datei entschlüsseln
--verify [Signatur] [Datei] | Signatur verifizieren
--list-keys | Alle Schlüssel auflisten
--list-public-keys | Alle öffentlichen Schlüssel auflisten
--list-secrect-keys | Alle privaten Schlüssel auflisten
--list-sigs | Alle Schlüssel nebst Signatur auflisten
--check-sigs | Wie --list-sigs, jedoch mit Verifizierung der Signaturen
--fingerprint | Wie --list-keys, jedoch mit Ausgabe des Fingerprints
--gen-key | Ein neues Schlüsselpaar erstellen
--delete-key | Schlüssel aus dem Keyring entfernen
--delete-secret-key | Public und Private Key aus dem Keyring entfernen
--export [KeyID] | Öffentlichen Schlüssel exportieren
--export-secret-keys [KeyID] | Privaten Schlüssel exportieren
--import | Public Key in den Keyring importieren
-a, --armor | Ausgabe in ‚ASCII-armor’
-o, --output [Datei] | Ausgabe in Datei umleiten
-o [Datei] –a –export [KeyID] | Public-Key als ASCII-armor in Datei ausgeben

Relevante RFCs zu GnuPG / PGP

RFC1321 | The MD5 Message-Digest Algorithm
RFC2104 | HMAC: Keyed-Hashing for Message Authentication
RFC3156 | MIME Security with OpenPGP
RFC4880 | OpenPGP Message Format