noqqe


blog | sammelsurium | projects | about

Enlarge your P..GP Key

Mittlerweile ist mein 2048bit PGP Key mit ein paar Signaturen ca. 4 Jahre alt und auch etwas kurz. State of the Art ist wohl 4096bit. Der Migrationspfad auf einen neuen Key.

Sicherung

Sichern des alten Key Environments

$ cp -a ~/.gnupg ~/.gnupg-old

Neuen Key generieren

Wesentlich für einen tollen neuen 4096bit Key ist ausreichend Entropy. Für aus der CPU generierte Entropie, kann havege installiert werden.

$ cat /proc/sys/kernel/random/entropy_avail
> 153
$ aptitude install havege
$ /etc/init.d/havege start
$ cat /proc/sys/kernel/random/entropy_avail
> 1649

und anschliessend den Key erstellen

$ gpg --gen-key

Der interaktive Dialog sollte einen eigentlich halbwegs verständlich durch die Generierung führen.

Alten Key revoken

Beim Revoken des alten Keys, ist es sinnvoll die korrekte Begründung auszuwählen. In meinem Fall Ersetzung durch einen neuen Key, also superseded.

$ gpg --gen-revoke oldkeyid

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? 2
Enter an optional description; end it with an empty line:
> replaced by newkeyid
>
Reason for revocation: Key is superseded
replaced by newkeyid

Heraus fällt ein Public-Key Block, der in einer Datei importiert werden kann.

$ gpg --import revoke.txt

Migration

Auf meinem alten Key befinden sich wie gesagt ein paar Unterschriften. Auch deswegen macht es Sinn den neuen Key mit dem Alten zu unterschreiben.

$ gpg --default-key oldkeyid --sign-key newkeyid

Dadurch wird nicht nur die Referenzkette gebildet, sondern auch gleich nachvollziehbar, dass der neue Key wirklich der Nachfolger meiner “originalen” KeyID ist.

Keyserver aktualisieren

Wenn der alte Publickey nun revoked ist, kann es auf den Keyserver geladen werden.

$ gpg --list-key oldkeyid
$ gpg --send-keys oldkeyid

Genauso der neue Publickey.

$ gpg --list-key newkeyid
$ gpg --send-keys newkeyid

Nacharbeiten

  • Default Key in der gpg.conf ändern default-key newkeyid
  • PGP Plugin in mutt (oder Mailclient) updaten
  • Zum Austausch des Fingerprints fürs einfaches Signing, gibt es im Debian Paket signing-party die entsprechende key2ps Tools. Diese kann dann zum PDF umgewandelt und ausgedruckt werden.
$ aptitude install signing-party ghostscript
$ gpg-key2ps -p a4 CDA4B775 > key.ps
$ ps2pdf key.ps
  • Signatur im Mailclient updaten
  • Informationen auf der Website updaten
  • caff Konfiguration anpassen