Ein Jahresanfang ist immer eine gute Gelegenheit alte Zöpfe abzuschneiden und etwas Neues zu beginnen. Auch bei der Verwendung von OpenPGP/GnuPG ist dies nicht vollkommen anders. Schon vor geraumer Zeit wurde der häufig verwendete Prüfsummenalgorithmus SHA-1 auf langfristige Sicht hin als zu unsicher erkannt und deshalb nach einem Ersatz gesucht. Dieser fand sich in SHA-2 (RFC 4634), einer ganzen Familie von neuen Prüfsummenalgrorithmen, bestehend aus SHA224, SHA256, SHA384 und SHA512. Da es jedoch seine Zeit dauert bis Software ergänzt, Arbeitsabläufe umgestellt und die neuen Versionen von einer überwiegenden Anzahl der Benutzer neue Versionen aufgespielt wurden konnte nicht sofort von SHA-1 abgerückt werden.
Inzwischen sieht die Sache jedoch anders aus. Durch die neue Version von Enigmail verbreitet sich auch OpenPGP/GnuPG in der Version 2, aber auch die häufig eingsetzten Vorläuferversionen sind schon einige Jahre in der Lage mit SHA-2 zu arbeiten, so daß nur in Einzelfällen die Verwendung von SHA-2 zu Problemen führt und noch auf SHA-1 zurückgegriffen werden muss. Dazu gehören alle, die noch nicht mehr zeitgemäße 1024-Bit Schlüssel verwenden, da bei diesen der Einsatz von Prüsummenalgorithmen mit mehr als 160-Bit nicht möglich ist, selbst wenn die verwendete PGP-Version SHA-2 kann. Dennoch kommt bei allen Anderen in der überwiegenden Zahl der Fälle wie mir scheint immer noch SHA-1 als Algorithmus der ersten Wahl zum Einsatz.
Diesem Umstand kann schnell durch zwei Maßnahmen abgeholfen werden. Es müssen nur die Voreinstellungen von OpenPGP/GnuPG angepasst und diese am Besten auch über den öffentlichen Schlüssel bekannt gemacht werden. Eine Erzeugung neuer Schlüssel ist hierzu nicht notwendig, die Alten können weiter verwendet werden. Allerdings sollten diejenigen, die noch 1024er-Schlüssel verwenden die Gelegenheit nutzen und einen neuen 2048er, oder besser noch gleich einen 4096er-Schlüssel zu erstellen.
GnuPG-Voreinstellungen
Um die Voreinstellungen von OpenPGP für den Prüfsummenalgorithmus zu ändern, muß die .gupg/gpg.conf
mit einem beliebigen Texteditor um drei Zeilen ergänzt werden.
personal-digest-preferences SHA256 cert-digest-algo SHA256 default-preference-list SHA256 SHA512 SHA384 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
Berufsparanoiker können natürlich anstelle von SHA256 auch gleich SHA512 verwenden. Da SHA-1 überhaupt nicht mehr verwendet werden soll, braucht man ihn in der persönlichen Liste nicht mehr erwähnen. Ausgehende Mails werden nun ab sofort ohne weiteres Zutun immer unter Verwendung von SHA256 signiert und neue Schlüssel werden mit entsprechenden Einstellungen generiert. Mit SHA-1 signiert eingehende Mails und Dateien bleiben von den Änderungen unberührt.
Bekanntgabe
Die Voreinstellungen von OpenPGP auf dem eignen Rechner beeinflussen natürlich nicht, welche Algorithmen Dritte verwenden, die mit einem über PGP kommunizieren wollen. Daher ist es sinnvoll, die eignen Wünsche hierzu allgmein bekannt zu machen, in dem man sie über seinen öffentlichen Schlüssel auf dem Schlüsselserver hinterlegt.
Zunächst wird die Kennung des/der geheimen Schlüssel ermittelt, danach die Einstellung der Voreinstellungen für die ermittelte Schlüsselkennung angepasst:
Testnutzer@Testrechner:~>gpg --list-secret-keys sec 4096R/0xB8CBB2DE8DE07550 2015-02-27 [verfällt: 2020-02-26] Schl.-Fingerabdruck = CEA4 0760 3857 2334 7737 D392 B8CB B2DE 8DE0 7550 uid Testnutzer <Testnutzer@Test.com> ssb 4096R/0x26BE4D392D2D97AA 2015-02-27 Testnutzer@Testrechner:~>gpg --edit-key 0xB8CBB2DE8DE07550 gpg2 Geheimer Schlüssel ist vorhanden. pub 4096R/0xB8CBB2DE8DE07550 erzeugt: 2013-06-29 verfällt: 2020-06-29 Aufruf: SC Vertrauen: uneingeschränkt Gültigkeit: uneingeschränkt sub 4096R/0x26BE4D392D2D97AA erzeugt: 2013-06-29 verfällt: niemals Aufruf: E [ uneing.] (1). Testnutzer <Testnutzer@Test.com> gpg> showpref [ uneing.] (1). Testnutzer <Testnutzer@Test.com> Verschlü.: AES256, AES192, AES, CAST5, 3DES Digest: SHA1, SHA256, SHA224, Komprimierung: ZLIB, BZIP2, ZIP, nicht komprimiert Eigenschaften: MDC, Keyserver no-modify gpg> setpref SHA256 SHA512 SHA384 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed Setze die Liste der Voreinstellungen auf: Verschlü.: AES256, AES192, AES, CAST5, 3DES Digest: SHA256, SHA512, SHA384, SHA224, SHA1 Komprimierung: ZLIB, BZIP2, ZIP, nicht komprimiert Eigenschaften: MDC, Keyserver no-modify Die Voreinstellungen wirklich ändern? (j/N) j Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. Benutzer: "Testnutzer <Testnutzer@Test.com>" 4096-Bit RSA Schlüssel, ID 0x$Schlüssel-ID, erzeugt 2015-02-27 pub 4096R/0xB8CBB2DE8DE07550 erzeugt: 2013-06-29 verfällt: 2020-06-29 Aufruf: SC Vertrauen: uneingeschränkt Gültigkeit: uneingeschränkt sub 4096R/0x26BE4D392D2D97AA erzeugt: 2013-06-29 verfällt: niemals Aufruf: E [ uneing.] (1). Testnutzer <Testnutzer@Test.com> gpg> save Testnutzer@Testrechner:~>
Der öffentliche Schlüssel ist nun angepasst und kann ggf. auf den Schlüsselserver hochgeladen werden.
Testnutzer@Testrechner:~>gpg --send-key 0xB8CBB2DE8DE07550
Wer möchte, kann auch schon wie vorher SHA256 überspringen und die Voreinstellungen mit setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
gleich auf SHA512 setzen.