Kleopatra/GnuPG auf SHA-2 umstellen

Ich stecke gerade in Diskussion und Bugreports fest, weil Thunderbird (zumindest unter Windows 10) meine aktuellen PGP-Schlüssel nicht mehr akzeptiert.

Es wird empfohlen auf SHA-2 umzustellen. Ich finde hierzu jedoch weder entsprechende Einstellungsmöglichkeiten in Thunderbird, noch in Kleopatra? Es heißt, ich solle die gnupg.conf editieren. Kann mir vielleicht jemand Tipps geben, was ich hier genau eintragen muss und wie ich dann vorzugehen habe?

Meine Schlüssel sind ursprünglich von 2007. Problem war bislang immer, dass ich die mit Kleopatra gar nicht ordentlich verlängert bekommen habe, nur über Enigmail in Thunderbird. Jetzt war ich schon die ganze Zeit darauf gespannt, wie sich Thunderbird mit der integrierten Verschlüsselung dieses Problems annimmt. Offenbar hat man sich diesbezüglich noch überhaupt keine Gedanken gemacht? Eigentlich wären meine Schlüssel noch bis Anfang 2023 gültig gewesen.

Frohe Ostern,
Fips

Zu diesem Thema gibt es einen ausführlichen Artikel von Heise.de:
https://www.heise.de/security/artikel/Aufpoliert-Alte-PGP-Schluessel-mit-neuen-Signaturen-4331048.html

Generell empfehle ich aus Sicherheitsgründen das regelmässige Verfolgen (1x pro Woche) der unter:
https://www.heise.de/security/news/7_tage_news/
veröffentlichten Beiträge.

Generell sollte regelmässig kontrolliert werden (mindestens 1x pro Jahr) ob die OpenPGP-Installation, zum Beispiel GnuPG, und das eingesetzte OpenPGP-Schlüsselmaterial die Sicherheitsempfehlungen vom BSI vollständig einhält. Die Sicherheitsempfehlungen vom BSI findet man im TR-03116-4:
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03116/BSI-TR-03116-4.html

Generell verwendet ich für das OpenPGP-Schlüsselmanagement die Anleitung unter:
https://wiki.ubuntuusers.de/GnuPG/

Einige Hinweise von SLED15SP3, welche auch für OpenSUSE Leap 15.3 gelten sollten:

ls -alh /etc/skel/.gnupg/

insgesamt 4.0K
drwxr-xr-x 2 root root 22 15. Mär 14:13 .
drwxr-xr-x 9 root root 248 11. Feb 15:20 …
-rw-r–r-- 1 root root 451 15. Mär 14:09 gpg.conf

more /etc/skel/.gnupg/gpg.conf

Verschlüsselungsmethode für neue Schlüssel

s2k-cipher-algo AES256

Hashalgorithmus für neue Schlüssel

s2k-digest-algo SHA512

#Bevorzugte Verschlüsselungsalgorithmen
personal-cipher-preferences AES256

#Bevorzugte Hashalgorithmen
personal-digest-preferences SHA512

Verschlüsselungsmethoden für neue Schlüssel

default-preference-list AES256 SHA512 BZIP2 ZLIB ZIP

Hashalgorithmus zur Signatur von Schlüsseln

cert-digest-algo SHA512


Installationshinweise:

[LEFT] GnuPG kontrollieren[/LEFT]
[LEFT]- GnuPG: gpg.conf im Unterverzeichnis ~/.gnupg muss der Vorlage
/etc/skel/.gnupg/gpg.conf entsprechen.
[/LEFT]
[LEFT]

  • GnuPG: Zugriffsrechte auf gpg.conf im Unterverzeichnis ~/.gnupg kontrollieren.
    [/LEFT]

Anleitung zur Erstellung eines neuen GnuPG-Schlüsselpaars

1.) Neues GnuPG-Schlüsselpaar erstellen:

# gpg --gen-key 
-> (5) RSA (nur signieren/beglaubigen) 
-> Welche Schlüssellänge wünschen Sie? (2048) 4096 
-> Ihr Name ("Vorname Nachname"): Hans Muster
-> Email-Adresse: [EMAIL="hans.muster@mycompay.com"]hans.muster@mycompay.com[/EMAIL] 

2.) Verschlüsselungs-Schlüsselpaar zum GnuPG-Schlüsselpaar
hinzufügen:

# gpg --edit-key <Schlüssel-ID> 
addkey 
-> (4) Elgamal (nur verschlüsseln) 
Welche Schlüssellänge wünschen Sie? (2048) 4096 

3.) Schlüsseleinstellungen kontrollieren:

# gpg --edit-key <Schlüssel-ID> 
showpref 
 
=>   uneing.] (1). Hans Muster <hans.muster@mycompany.com> 
     Verschlü.: AES256, 3DES 
     Digest: SHA512, SHA1 
     Komprimierung: BZIP2, ZLIB, ZIP, nicht komprimiert 
     Eigenschaften: MDC, Keyserver no-modify 

4.) Eventuell müssen die Schlüsseleinstellungen angepasst werden:

# gpg --edit-key <Schlüssel-ID> 
setpref AES256 SHA512 BZIP2 ZLIB ZIP 
save 

# gpg --edit-key <Schlüssel-ID>     
showpref 

5.) Verschlüsselungs- und digitale Signatureinstellungen kontrollieren:

Eine sehr kleine Textdatei verschlüsseln und signieren. 

Die verschlüsselte Datei entschlüsseln: 

# gpg --decrypt -v /tmp/test.txt.pgp 

Wird die richtige Verschlüsselung verwendet? 
=> gpg: AES256 verschlüsselte Daten 

Wird die richtige Hashmethode verwendet? 
=> gpg: Binäre Unterschrift, Hashmethode "SHA512" 

6.) GnuPG: Signaturmethode der Signierung des eigenen Schlüssels kontrollieren:

# gpg --export --armor <myKeyID> > mykey.asc 
# gpg --list-packets mykey.asc | grep -A2 ':signature packet:.*<myKeyID>' 

digest algo  2     => SHA-1    => Nicht in Ordnung! 
digest algo  8    => SHA-256 
digest algo  9    => SHA-384 
digest algo 10     => SHA-512 

7.) Exportieren des neuen GnuPG-Schlüsselpaars in eine ASCII-Textdatei:

Die GPG-Parameter "export" und "export-secret-keys" exportieren den Signatur-Schlüssel (RSA) und den  
Verschlüsselungsschlüssel (ElGamal) in eine ASCII-Textdatei. Ob die Schlüssel-ID des Signatur-Schlüssels oder des  
Verschlüsselungsschlüssel angegeben wird, ist egal. 

Exportieren des öffentlichen GnuPG-Schlüssels: 
# gpg --armor --output hans_muster_at_mycompany_com_Dateiverschluesslung_PublicKey_<Ablaufdatum>.asc --export <Schlüssel-ID> 

Exportieren des privaten GnuPG-Schlüssels: 
# gpg --armor --output hans_muster_at_mycompany_com_Dateiverschluesslung_PrivateKey_<Ablaufdatum>.asc --export-secret-keys <Schlüssel-ID> 

8.) Privater GnuPG-Schlüssel mit einer symmetrischen Verschlüsselung schützen:

gpg --symmetric --cipher-algo AES256 --armor hans_muster_at_mycompany_com_Dateiverschluesslung_PrivateKey_<Ablaufdatum>.asc
→ Passwort für PGP-Schlüssel für symmetrische Datenverschlüsselung eingeben
→ Passwort muss mindestens 20 Zeichen lang sein!

<Verschlüsselte Datei “hans_muster_at_mycompany_com_Dateiverschluesslung_PrivateKey_<Ablaufdatum>.asc.asc” kontrollieren>

<Unverschlüsselte Datei “hans_muster_at_mycompany_com_Dateiverschluesslung_PrivateKey_<Ablaufdatum>.asc” löschen>

Und der Vollständigkeitshalber:

Der sicherste Aufbewahrungsort für einen privaten OpenPGP-Schlüssel ist das HSM. Siehe dazu:
https://www.lancom-forum.de/lancom-allgemeine-fragen-f23/lancom-ca-auch-fuer-smartcard-zertifikate-zu-gebra-t16635.html#p93970

HSM für OpenPGP erhält man von Herstellern wie Nitrokey und Yubico.
https://www.nitrokey.com/de

https://www.yubico.com/?lang=de

Dieser Artikel scheint wirklich sehr gut zu sein! Bin gerade am Umsetzen. Später mehr…

Vielen Dank!

Folgendes Problem: ich habe die Schlüssel aktualisiert wie bei Heise angegeben. In Kleopatra werden sie offenbar korrekt angezeigt. Aber in Thunderbird lassen sie sich nicht importieren (das hat ja jetzt offenbar eine eigene Schlüsselverwaltung?).

Beim Hochladen auf den Schlüsselserver kommt folgende Fehlermeldung:

Die Ausgabe von /usr/bin/gpg2 lautet: *gpg: WARNUNG: Unsichere Zugriffsrechte des Home-Verzeichnis `/home/fips/.gnupg' gpg: sende Schlüssel CEF760F286FAEF27 auf hkps://hkps.pool.sks-keyservers.net gpg: Senden an Schlüsselserver fehlgeschlagen: Server zeigt einen unbestimmten Fehler *


Nebenbei bemerkt: nach einem Reboot konnte ich mich mit meinem Nutzer auch nicht mehr einloggen. Erst als ich als root die alte Konfiguration von .gnupg wieder hergestellt hatte.

WAS SAGT UNS DAS?

Der Key enthält offenbar noch immer algo 2?

Problem gelöst: in der Standardinstallation existiert KEINE gpg.conf. Ich hatte deshalb die gpg-agent.conf editiert. Unter Windows wurde das beim Start von Kleopatra als Fehler ausgewiesen. Mit der korrekt konfigurierten gpg.conf klappt jetzt alles einwandfrei unter Windows 10 (so wie bei Heise.de beschrieben). Linux werde ich nachher noch einmal testen…

Eine Frage noch: hältst Du es für notwendig, einen komplett neuen Schlüssel zu erstellen? Ich würde lieber abwärtskompatibel zu meinen alten Mails bleiben? Das von SHA-1 ausgehende Risiko halte ich auch für beherrschbar (der Schlüssel ist schließlich nicht kompromittiert)?