Das perfekte GPG Schlüsselpaar generieren

Schritt-für-Schritt-Anleitung zum Erstellen eines sicheren GPG Schlüsselpaares mit Unterschlüsseln zur Verwendung auf dem Laptop.

vor 9 Jahren veröffentlicht unter Hacking Kryptographie.

Online findet man viele Artikel zur Generierung eines GPG Schlüsselpaars, leider sind viele davon veraltet oder empfehlen Einstellungen, die heute möglicherweise unsicher sind. Wie du deinen private Schlüssel schützen kannst, wenn er mit deinen Laptop gestohlen wird oder verloren geht, wird leider auch selten erwähnt.

Dein GPG Schlüsselpaar auf dem Laptop zu schützen ist knifflig. Einerseits benötigst du den privaten Schlüssel um Nachrichten zu entschlüsseln oder zu signieren. Andererseits besteht die Möglichkeit, dass dein Laptop gestohlen wird und du so deine komplette Online-Identität verlierst.

Generell findet man Online nicht sehr viele Informationen dazu, wie man seinen privaten Schlüssel auf Reisen schützen kann. Ich konnte nur eine Seite dazu ausmachen: der Debian Wiki Eintrag über Subkeys. Glücklicherweise finden wir auf dieser Wiki Seite auch die Lösung für unser Problem.

Unterschlüssel helfen dabei, die eigene Identität im Falle eines Schlüsselverlustes zu schützen

Bekommt ein Angreifer deinen Laptop mit deinem privaten Schlüssel in die Hand, heißt es meistens "Game Over". Der Angreifer ist dann nicht nur in der Lage, Nachrichten die für dich bestimmt sind zu entschlüsseln, sondern auch Nachrichten in deinem Namen zu signieren und somit deine Identität anzunehmen. Der einzige Ausweg ist dann das Widerrufen des Schlüssels, was den Verlust von mehreren Jahren Signaturen und sehr viel Unannehmlichkeit bedeuten kann.

Ein Teil der Lösung ist das Konzept von Unterschlüsseln. Unterschlüssel können einen Angreifer nicht davon abhalten, Nachrichten die für deinen privaten Schlüssel bestimmt waren zu entschlüsseln. Aber sie können dabei helfen den Schaden zu lindern, sollte dein privater Schlüssel verloren gehen oder gestohlen werden.

Das Konzept von Unterschlüsseln funktioniert folgendermaßen:

  1. Erstelle ein GPG Schlüsselpaar welches nur einen Zertifizierungs-Schlüssel (zum Zertifizieren weiterer Unterschlüssel) enthält.
  2. Benutze GPG um drei Unterschlüssel hinzuzufügen: Einen Signierungs-Unterschlüssel (deine Identität), einen Verschlüsselungs-Unterschlüssel (um an dich gerichtete Nachrichten zu entschlüsseln) und einen Authentifizierungs-Unterschlüssel (zur GPG Authentifizierung). Diese neuen Unterschlüssel sind mit dem Zertifizierungs-Schlüssel verbunden.
  3. Dieses Schlüsselpaar ist dein Master Schlüsselpaar. Lagere es an einem sicheren Ort in deiner Wohnung oder in einem Schließfach. Der Verlust deines Master Schlüsselpaars wäre katastrophal.
  4. Kopiere dein Master Schlüsselpaar auf deinen Laptop. Benutze dann GPG um den Zertifizierungs-Schlüssel zu entfernen. Übrig bleiben der Signatur-Unterschlüssel, der Verschlüssungs-Unterschlüssel und der Authentifizierungs-Unterschlüssel. Dieses neue Schlüsselpaar ist dein Laptop Schlüsselpaar.

Nur dieses neue Laptop Schlüsselpaar wird nun zum Entschlüsseln und Signieren von Nachrichten benutzt.

Was ist der Vorteil dieser Konfiguration? Da dein Master Schlüsselpaar nicht auf deinem Reise-Laptop gespeichert ist, musst du im Falle eines Diebstahls nur die Unterschlüssel auf deinem Laptop widerrufen. Dein Zertifizierungs-Schlüssel (den wir vom Laptop Schlüsselpaar entfernt haben) wird nicht widerrufen, deshalb sparst du dir die Arbeit ein neues Schlüsselpaar zu erstellen und Leute dazu zu finden, um es zu signieren. Du musst zwar trotzdem den gestohlenen Unterschlüssel widerrufen und der Angreifer kann Nachrichten für diesen Unterschlüssel entschlüsseln, der Schaden ist aber nicht ganz so katastrophal.

Das perfekte GPG Schlüsselpaar generieren

Nun werden wir ein neues Schlüsselpaar nach dieser Methode erstellen. Dazu nutzen wir GPG 1.4.16, dass mit Ubuntu 14.04 LTS distributiert wird.

Generiere dein initiales Schlüsselpaar

Benutze das gpg --expert --gen-key Kommando um ein neues GPG Schlüsselpaar zu erstellen. Der Parameter --expert stellt uns bei der Generierung zusätzliche Menüpunkte zur Verfügung.

Wähle (8) RSA (set your own capability). Entferne dann Sign und Encrypt mit s und e vom neu zu generierenden Schlüssel.

Wähle bei der Schlüssellänge (keysize) immer den höchstmöglichen Wert. Da Computer immer leistungsfähiger werden, kann eine heute als sicher eingestufte Nachricht in der Zukunft womöglich von einem Angreifer entschlüsseln werden. Eine möglichst große Schlüssellänge hilft dabei dich vor diesem Szenario zu schützen. Benutze nicht die GPG Standardeinstellung 2048!

Das Ablaufdatum (Key is valid for?) solltest du nicht zu hoch wählen. Falls wirklich der schlimmste Fall eintreten sollte und du Widerrufszertifikat sowie privaten Schlüssel verlierst, kannst du das Schlüsselpaar nicht mehr widerrufen. Die einzige Möglichkeit den Schlüssel aus dem Verkehr zu ziehen, ist dann das Ablaufdatum abzuwarten. Mit dem privaten Schlüssel kannst du das Ablaufdatum jederzeit verlängern und den Schlüssel anschließend neu publizieren.

Wähle ein möglichst langes und einzigartiges Passwort, denn falls dein Schlüssel gestohlen wird ist dies die letzte Schutzmaßnahme!

$ gpg --expert --gen-key
gpg (GnuPG) 1.4.16; Copyright (C) 2013 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.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)
Your selection? 8

Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Sign Certify Encrypt

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? s

Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Certify Encrypt

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? e

Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Certify

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? q
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 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) 6m
Key expires at Di 28 Jul 2015 07:30:57 CEST
Is this correct? (y/N) y

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: Bilbo Baggins
Email address: bilbo@shire.org
Comment:
You selected this USER-ID:
    "Bilbo Baggins <bilbo@shire.org>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.
<passphrase>

...........+++++
....+++++
gpg: key B7A6BA0F marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   7  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 7u
gpg: depth: 1  valid:   1  signed:   0  trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2015-07-28
pub   4096R/B7A6BA0F 2015-01-29 [expires: 2015-07-28]
      Key fingerprint = 77FA A030 5318 0900 22EE  2667 9B5F 38AD B7A6 BA0F
uid                  Bilbo Baggins <bilbo@shire.org>

Unterschlüssel hinzufügen

Du hast nun ein Schlüsselpaar mit einem 4096-bit RSA Zertifizierungs-Schlüssel, mit dem wir weitere Schlüssel zertifizieren können.

$ gpg -k
/home/ni-c/.gnupg/pubring.gpg
-----------------------------
pub   4096R/B7A6BA0F 2015-01-29 [expires: 2015-07-28]
uid                  Bilbo Baggins <bilbo@shire.org>

$ gpg -K
/home/ni-c/.gnupg/secring.gpg
-----------------------------
sec   4096R/B7A6BA0F 2015-01-29 [expires: 2015-07-28]
uid                  Bilbo Baggins <bilbo@shire.org>

Jetzt fügst du einen Signatur-Unterschlüssel (Sign) hinzu.

$ gpg --expert --edit-key bilbo@shire.org
gpg (GnuPG) 1.4.16; Copyright (C) 2013 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.

Secret key is available.

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
[ultimate] (1). Bilbo Baggins <bilbo@shire.org>

gpg> addkey
Key is protected.

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <bilbo@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

Please select what kind of key you want:
   (3) DSA (sign only)
   (4) RSA (sign only)
   (5) Elgamal (encrypt only)
   (6) RSA (encrypt only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)
Your selection? 8

Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign Encrypt

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? e

Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? q
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 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) 6m
Key expires at Di 28 Jul 2015 08:18:46 CEST
Is this correct? (y/N) y
Really create? (y/N) y
..............+++++
..+++++

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
[ultimate] (1). Bilbo Baggins <bilbo@shire.org>

Wiederhole diesen Prozess jetzt und füge deinem Schlüsselpaar einen Verschlüsselungs-Unterschlüssel (Encrypt) und einen Authentifizierungs-Unterschlüssel (Authenticate) hinzu.

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ultimate] (1). Bilbo Baggins <bilbo@shire.org>

Eine weitere Benutzer ID hinzufügen

Falls du dein Schlüsselpaar für weitere E-Mail-Adressen benutzen möchtest, kannst du mit adduid eine weitere Benutzer ID hinzufügen.

gpg> adduid
Real name: Bilbo Baggins
Email address: baggins@shire.org
Comment:
You selected this USER-ID:
    "Bilbo Baggins <baggins@shire.org>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <bilbo@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ultimate] (1)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (2). Bilbo Baggins <baggins@shire.org>

gpg> uid 2

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ultimate] (1)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (2)* Bilbo Baggins <baggins@shire.org>

gpg> trust
pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ultimate] (1)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (2)* Bilbo Baggins <baggins@shire.org>

Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ultimate] (1)  Bilbo Baggins <bilbo@shire.org>
[ultimate] (2)* Bilbo Baggins <baggins@shire.org>

Ein Foto hinzufügen

Möglicherweise möchtes du ein Foto von dir hinzufügen um das Schlüsselpaar zu komplettieren. Da das Foto in deinem öffentlichen Schlüssel gespeichert ist und dieser an viele Orte distributiert wird, solltest du ein kleines Foto verwenden um Platz zu sparen.

gpg> addphoto

Pick an image to use for your photo ID.  The image must be a JPEG file.
Remember that the image is stored within your public key.  If you use a
very large picture, your key will become very large as well!
Keeping the image close to 240x288 is a good size to use.

Enter JPEG filename for photo ID: /home/ni-c/me.jpg

(eog:8531): EOG-WARNING **: Couldn't load icon: Icon 'image-loading' not present in theme
Is this photo correct (y/N/q)? y

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <baggins@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ultimate] (1). Bilbo Baggins <baggins@shire.org>
[ultimate] (2)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (3)  [jpeg image of size 5139]
`

Hash Präferenzen stärken

Mit dem Befehl setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP konfigurieren wir unseren Schlüssel so, dass er starke Algorythmen bevorzugt. Anschliessend speichern wir unser Schlüsselpaar mit save.

gpg> setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
Set preference list to:
     Cipher: AES256, AES192, AES, CAST5, 3DES
     Digest: SHA512, SHA384, SHA256, SHA224, SHA1
     Compression: ZLIB, BZIP2, ZIP, Uncompressed
     Features: MDC, Keyserver no-modify
Really update the preferences? (y/N) y
gpg: WARNING: no user ID has been marked as primary.  This command may
              cause a different user ID to become the assumed primary.

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <baggins@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: ultimate      validity: ultimate
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ultimate] (1). Bilbo Baggins <baggins@shire.org>
[ultimate] (2)  Bilbo Baggins <bilbo@shire.org>
[ultimate] (3)  [jpeg image of size 5139]

gpg> save

Erstelle ein Widerrufs-Zertifikat

Nun erstellen wir unser Widerrufs-Zertifikat. Wenn dein Master Schlüsselpaar verloren geht oder gestohlen wird, ist dieses Zertifikat die einzige Möglichkeit deinen Gesprächspartnern mitzuteilen den gestohlenen Schlüssel zu ignorieren. Dieser Schritt ist sehr wichtig, überspringe ihn nicht!

$ gpg --output \<bilbo@shire.org\>.gpg-revocation-certificate --gen-revoke bilbo@shire.org

sec  4096R/B7A6BA0F 2015-01-29 Bilbo Baggins <baggins@shire.org>

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? 1
Enter an optional description; end it with an empty line:
>
Reason for revocation: Key has been compromised
(No description given)
Is this okay? (y/N) y

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <baggins@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

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!

Exportiere das fertige Schlüsselpaar

Nun, da das Schlüsselpaar komplett ist, exportieren wir es um es sicher aufzubewahren.

$ gpg --export-secret-keys --armor bilbo@shire.org > \<bilbo@shire.org\>.private.gpg-key
$ gpg --export --armor bilbo@shire.org > \<bilbo@shire.org\>.public.gpg-key

Dadurch werden zwei Dateien erstellt: Dein öffentlicher Schlüssel und dein privater Schlüssel. Pass so gut du kannst auf diese beiden Dateien und das Widerrufs-Zertifikat auf – speichere sie nicht auf deinem Laptop, lagere sie sicher in deiner Wohnung oder in einem Schließfach. Diese drei Dateien sind dein Master Schlüsselpaar.

Das Master Schlüsselpaar in ein Laptop Schlüsselpaar umwandeln

Nun haben wir unser Master Schlüsselpaar in unserem Schlüsselbund, sowie das Master Schlüsselpaar und das Widerrufs-Zertifikat als Dateien. Um unser Master Schlüsselpaar in unser Laptop Schlüsselpaar umzuwanden, müssen wir den Zertifizierungs-Schlüssel vom Master Schlüsselpaar entfernen.

$ gpg --export-secret-subkeys bilbo@shire.org > subkeys
$ gpg --delete-secret-key bilbo@shire.org
gpg (GnuPG) 1.4.16; Copyright (C) 2013 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.

sec  4096R/B7A6BA0F 2015-01-29 Bilbo Baggins <baggins@shire.org>

Delete this key from the keyring? (y/N) y
This is a secret key! - really delete? (y/N) y
$ gpg --import subkeys
gpg: key B7A6BA0F: secret key imported
gpg: key B7A6BA0F: "Bilbo Baggins <baggins@shire.org>" 2 new signatures
gpg: Total number processed: 1
gpg:         new signatures: 2
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
$ shred --remove subkeys
$ gpg -K
/home/ni-c/.gnupg/secring.gpg
-----------------------------
sec#  4096R/B7A6BA0F 2015-01-29 [expires: 2015-07-28]
uid                  Bilbo Baggins <bilbo@shire.org>
uid                  Bilbo Baggins <baggins@shire.org>
ssb   4096R/ED9B37EF 2015-01-29
ssb   4096R/840FFAEC 2015-01-29
ssb   4096R/EA733765 2015-01-29

Der Zertifizierungs-Schlüssel ist nun mit # markiert, was bedeuted, dass dieser Schlüssel nicht im Schlüsselpaar enthalten ist.

Was haben wir nun erreicht?

  1. Wir haben ein neues Schlüsselpaar mit den sicherst möglichen Einstellungen erstellt.
  2. Diesem Schlüsselpaar haben wir Unterschlüssel hinzugefügt.
  3. Das Schlüsselpaar haben wir in zwei Dateien plus ein Widerrufs-Zertifikat exportiert welche an einem sicheren Ort aufbewahrt werden. Das ist dein Master Schlüsselpaar
  4. Den Zertifikatschlüssel von dem Master Schlüsselpaar entfernt und so das Schlüsselpaar zu einem Laptop Schlüsselpaar gemacht. Das macht dir das Leben etwas leichter wenn dein Laptop verloren geht oder gestohlen wird.

Das Laptop Schlüsselpaar benutzen

Du kannst das Schlüsselpaar zum verschlüssel, entschlüsseln und signieren von Dateien und Nachrichten verwenden.

Um einen fremden Schlüssel zu signieren oder einen Unterschlüssel dieses Schlüsselpaars zu widerrufen, brauchst du das Master Schlüsselpaar – welches nicht auf deinem Laptop ist.

Deinen öffentlichen Schlüssel solltest du zu einem Schlüsselserver distributieren. Es gibt eine Menge Tutorials dazu, wie man das macht.

Im Falle eines Falles

Sollte der schlimmste Fall eintreten und dein Laptop mit deinem speziellen Schlüsselpaar geht verloren oder wird gestohlen (oder dein spezielles Schlüsselpaar ist anderweitig kompromittiert), müssen wir die Unterschlüssel dieses Schlüsselpaars widerrufen.

  1. Nimm dein Master Schlüsselpaar aus dem Tresor.
  2. Boote eine Live-CD oder Live-USB mit Ubuntu oder einer Distribution deiner Wahl und importiere das Master Schlüsselpaar in den Schlüsselbund.
  3. Benutze gpg --edit-key um deine Unterschlüssel zu widerrufen.
  4. Nun, da deine Unterschlüssel widerrufen sind, musst du es noch der Welt mitteilen indem du deinen neuen öffentlichen Schlüssel zu einem Schlüsselserver distributierst.
$ gpg --import /path/to/\<bilbo@shire.org\>.public.gpg-key /path/to/\<bilbo@shire.org\>.private.gpg-key
$ gpg --edit-key bilbo@shire.org
gpg (GnuPG) 1.4.16; Copyright (C) 2013 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.

Secret key is available.

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: unknown       validity: unknown
sub  4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ unknown] (1). Bilbo Baggins <baggins@shire.org>
[ unknown] (2)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (3)  [jpeg image of size 5139]

gpg> key 1

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: unknown       validity: unknown
sub* 4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub  4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ unknown] (1). Bilbo Baggins <baggins@shire.org>
[ unknown] (2)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (3)  [jpeg image of size 5139]

gpg> key 2

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: unknown       validity: unknown
sub* 4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub* 4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub  4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ unknown] (1). Bilbo Baggins <baggins@shire.org>
[ unknown] (2)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (3)  [jpeg image of size 5139]

gpg> key 3

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: unknown       validity: unknown
sub* 4096R/ED9B37EF  created: 2015-01-29  expires: 2015-07-28  usage: S
sub* 4096R/840FFAEC  created: 2015-01-29  expires: 2015-07-28  usage: E
sub* 4096R/EA733765  created: 2015-01-29  expires: 2015-07-28  usage: A
[ unknown] (1). Bilbo Baggins <baggins@shire.org>
[ unknown] (2)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (3)  [jpeg image of size 5139]

gpg> revkey
Do you really want to revoke the selected subkeys? (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
Your decision? 1
Enter an optional description; end it with an empty line:
>
Reason for revocation: Key has been compromised
(No description given)
Is this okay? (y/N) y

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <baggins@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <baggins@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

You need a passphrase to unlock the secret key for
user: "Bilbo Baggins <baggins@shire.org>"
4096-bit RSA key, ID B7A6BA0F, created 2015-01-29

pub  4096R/B7A6BA0F  created: 2015-01-29  expires: 2015-07-28  usage: C
                     trust: unknown       validity: unknown
This key was revoked on 2015-01-29 by RSA key B7A6BA0F Bilbo Baggins <baggins@shire.org>
sub  4096R/ED9B37EF  created: 2015-01-29  revoked: 2015-01-29  usage: S
This key was revoked on 2015-01-29 by RSA key B7A6BA0F Bilbo Baggins <baggins@shire.org>
sub  4096R/840FFAEC  created: 2015-01-29  revoked: 2015-01-29  usage: E
This key was revoked on 2015-01-29 by RSA key B7A6BA0F Bilbo Baggins <baggins@shire.org>
sub  4096R/EA733765  created: 2015-01-29  revoked: 2015-01-29  usage: A
[ unknown] (1). Bilbo Baggins <baggins@shire.org>
[ unknown] (2)  Bilbo Baggins <bilbo@shire.org>
[ unknown] (3)  [jpeg image of size 5139]

gpg> save

Quellen:

Willi Thiel

Geschrieben von Willi Thiel am 1. Februar 2015.


Nächster Artikel

Kommentare

Stefan
vor 7 Jahren

Hallo,

vielen Dank für die interessante Anleitung. Gehen diese Schritte auch per GPG4Win, ohne Kommandos, sondern mit Maus in der grafischen Benutzeroberfläche? Das fände ich übersichtlicher.

Viele Grüße
Stefan

Marko
vor 9 Jahren

Vielen Dank, die Anleitung hat mir sehr geholfen.
Bei der Einrichtung meiner Schlüssel habe ich mich schon gefragt, wie ich diese sauber auf mehreren Geräten nutzen kann, ohne das ich dabei meinen privaten Schlüssel überall hin mitnehme. Mit der Anleitung war's schnell zu verstehen und zu erledigen.

Marko

vor 7 Jahren

Hallo Stefan,

danke für deinen Kommentar! GPG4Win kenne ich leider nicht, ich benutze auch kein Windows, sondern arbeite komplett unter Ubuntu. Da kann ich dir leider nicht weiterhelfen, tut mir leid!

Grüße,
Willi

Gepard
vor 9 Jahren

Hallo,

viele Dank für deinen Artikel. Ich empfand die Prozedur zwar recht aufwändig, aber es hat alles geklappt. Eine Frage hätte ich da aber:
Ist es sinnvoll für berufliche und private Adressen separate Schlüsselpaare anzulegen? Letztlich handelt es sich ja um die selbe Person.

Viele Grüße

vor 9 Jahren

Hi Gepard,

da bin ich mir auch unsicher. Da es die selbe Person ist, kann man das gleiche Schlüsselpaar benutzen.

Als Nachteil sehe ich aber, dass du dadurch eine Verknüpfung zwischen deiner privaten und deiner betrieblichen E-Mail-Adresse herstellst. So kann man anhand deiner privaten E-Mail-Adresse evtl. deinen Arbeitsplatz herausfinden (über den öffentlichen Schlüssel vom Keyserver z.Bsp.). Wenn dich das aber nicht stört, spricht denke ich nichts dagegen.

Grüße,
Willi

Gepard
vor 9 Jahren

Hi Willi,

herzlichen Dank für die Antwort.

Gepard

Marcus
vor 8 Jahren

Eine wirklich tolle Anleitung. Vielen Dank. :)

Chris
vor 8 Jahren

Hallo,

vielen Dank für Deinen aufschlussreichen Artikel. Ich habe noch eine Frage:

Wenn ich das Master-Schlüsselpaar in das Laptop-Schlüsselpaar umgewandelt habe, dann kann ich das Laptop-Schlüsselpaar auch exportieren und dann auf mehreren Laptops nutzen, oder?

Chris

vor 8 Jahren

Hi Chris,

ja, du kannst das Laptop-Schlüsselpaar auf allen Laptops nutzen. Wenn es kompromittiert ist, musst du das Laptop-Schlüsselpaar dann aber auch auf allen Laptops ersetzen.

Grüße,
Willi

Stefan
vor 7 Jahren

Hallo Willi,
der GUI-Teil heißt Kleopatra, das gibt es auch für Linux.
Es wäre sehr hilfreich bei dem komplexen Thema, wenn man ohne Kommandozeile auskommen könnte.

Viele Grüße
Stefan

Stefan
vor 6 Jahren

Hallo Willi,

so, jetzt hab ich mich nochmal mit GPG beschäftigt. Die Schlüsseloperationen, die du hier durchführst, beherrscht keine GUI, egal ob unter Linux und Windows. Also werde ich mich durch Kommandozeilen kämpfen müssen...

Eine Frage noch: Wenn man das Notebook-Schlüsselpaar erstellt hat, also den geheimen Teil des Hauptschlüssels entfernt hat, kann man dann mit dem Notebook noch fremde Schlüssel unterschreiben, um sie im eigenen Schlüsselbund als vertrauenswürdig zu kennzeichnen? Oder muß man dazu das Master-Schlüsselpaar aus dem Schrank holen?

Gruß
Stefan

vor 5 Jahren

Hallo Willi!
erstmal vielen Dank für diesen so ausführlichen Artikel! Hat mir sehr geholfen!

Doch nach 4 Jahren und etlichen neuen Versionen hat sich ab GnuPG 2.1 das "finale" Entfernen des private-Keys geändert. Entsprechende Informationen wurden im Debian-Wiki aktualisiert. Kurz: Das Löschen des Schlüssels und das anschließende "reimportieren" der Subkeys fällt weg und es ist aussreichend, den private-Key im gnupg-Verzeichnis zu entfernen.

Die lange Version gibt's unter https://wiki.debian.org/Subkeys

Viele Grüße!,
tjarbo

Hinterlasse einen Kommentar: