Key Lookup und Import von keys.openpgp.org dauert zu lange (35-40s)

Hallo zusammen,

ich habe folgendes Problem:

Im GpgOL ist hkps://keys.openpgp.org als Keyserver eingetragen. Wenn ich im Outlook eine E-Mail an eine bisher nicht bekannte Adresse sende (reales Beispiel nachfolgend mit pgptest@XXXXXX.de ersetzt), dann sucht er auch korrekt auf dem Keyserver nach der Adresse und importiert den Key - siehe dazu folgende Auszüge aus dem Log:

2019-10-10 12:37:31 gpg[4280] DBG: keydb_search 0: SUBSTR: ‘pgptest@XXXXXX.de’

2019-10-10 12:37:35 gpg[4280] Verbindung zum dirmngr aufgebaut

2019-10-10 12:37:35 gpg[4280] DBG: chan_0x0000026c ← S KEYSERVER hkp://keys.openpgp.org
2019-10-10 12:37:35 gpg[4280] DBG: chan_0x0000026c → KEYSERVER --clear hkp://keys.openpgp.org
2019-10-10 12:37:35 gpg[4280] DBG: chan_0x0000026c ← OK
2019-10-10 12:37:35 gpg[4280] DBG: chan_0x0000026c → KS_GET – =pgptest@XXXXXX.de

2019-10-10 12:38:09 gpg[4280] Schl<81>ssel 5F53237F9A8F7F09: <99>ffentlicher Schl<81>ssel “Max Mustermann (PGP Test) pgptest@XXXXXX.de” importiert
2019-10-10 12:38:09 gpg[4280] `pgptest@XXXXXX.de’ automatisch via keyserver geholt

Der ganze Vorgang vom Lookup bis zum Import dauert aber wie anhand der Logs zu erkennen ist fast 40 Sekunden. Nach 3-4 Sekunden wird dem Benutzer aber schon das Popup-Fenster vom resolver.exe angezeigt, der wiederum dann den Key noch nicht kennt und daher nur “Empfänger ignorieren” anbietet für diese Adresse. Wenn der Benutzer dann auf “Abbrechen” klickt, ca. 30 Sekunden wartet und es dann nochmal probiert, funktioniert es einwandfrei, weil der Key mittlerweile im Hintergrund importiert wurde.

Im Prinzip funktioniert also alles, aber für den Benutzer sieht es trotzdem nach einem Fehler aus. Hat jemand eine Idee was die Ursache oder noch besser die Lösung ist für dieses Problem? Warum dauert der Lookup/Import so lange?

Danke und Grüße, Christof

Hmmm, da bist Du schon weiter als ich. Wie genau hast Du GpgOL denn konfiguriert, wo hast Du hkps://keys.openpgp.org als Keyserver eingetragen?
Bei mir funktioniert schon der Upload eines Public Keys mit Kleopatra nach hkps://keys.openpgp.org nicht, siehe auch:
https://forum.gnupg.org/t/kleopatra-und-hkps-keys-openpgp-org/3477

LG Chris

Hallo Chris, den Upload des Keys aus dem GpgOL heraus habe ich bisher nicht ausprobiert, den hatte ich manuell über https://keys.openpgp.org/upload hochgeladen. Den Keyserver habe ich im GpgOL einfach im Reiter Netzwerk eingetragen so wie Du es im anderen Thread auch beschreibst bzw. letztendlich effektiv in der gpg.conf so:

auto-key-locate keyserver
auto-key-retrieve
keyserver hkps://keys.openpgp.org

Ich habe das Problem weiter analysiert und es lässt sich bei mir auch direkt mit gpg im CMD nachstellen:

C:\Users\ca\AppData\Roaming\gnupg>type gpg.conf
auto-key-locate keyserver
auto-key-retrieve
keyserver hkps://keys.openpgp.org

C:\Users\ca\AppData\Roaming\gnupg>gpg --locate-key pgptest@XXXXXXXX.de
gpg: Schlüssel 5AGTZR7F9A8F7F09: Öffentlicher Schlüssel “Max Mustermann (PGP Test) pgptest@XXXXXXXXX.de” importiert
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg: importiert: 1

→ Dieser Vorgang dauert ca. 15-20 Sekunden

Wenn ich das Kommando auf dem gleichen Windows 10 System in einer Ubuntu 18.04 App absetze, dauert es weniger als eine Sekunde:

ca@DESKTOP-V1FFJI9:~$ gpg --locate-keys pgptest@XXXXXXXX.de
gpg: Schlüssel 5AGTZR7F9A8F7F09: Öffentlicher Schlüssel “Max Mustermann (PGP Test) pgptest@XXXXXXXX.de” importiert
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg: importiert: 1

Ich habe den Netzwerk-Verkehr mitgeschnitten während der “Wartezeit”, aber keine Aktivität festgestellt. Zwischen dem DNS Lookup auf keys.openpgp.org und der ersten Anfrage an den Server vergehen 15 Sekunden. Das gpg scheint irgendwie intern zu hängen.

11:16:04.789089 IP 10.0.2.15.63942 > 10.0.2.3.53: 49188+ A? keys.openpgp.org. (34)
11:16:04.789593 IP 10.0.2.3.53 > 10.0.2.15.63942: 49188 1/0/0 A 37.218.245.50 (50)
11:16:04.789665 IP 10.0.2.15.63942 > 10.0.2.3.53: 12852+ AAAA? keys.openpgp.org. (34)
11:16:04.790004 IP 10.0.2.3.53 > 10.0.2.15.63942: 12852 1/0/0 AAAA 2a00:c6c0:0:154:1::1 (62)


11:16:19.795262 IP 10.0.2.15.50464 > 37.218.245.50.443: Flags [S], seq 1507712195, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
11:16:19.805335 IP 37.218.245.50.443 > 10.0.2.15.50464: Flags [S.], seq 1048000001, ack 1507712196, win 65535, options [mss 1460], length 0

Hi Christof,
diese Analyse ist der richtige Weg, u.U. kannst Du mit -vvv oder --debug-all
aus gpg und dirmngr noch mehr herausholen (und Dich dann am besten auf Englisch an gnupg-devel@ wenden.)

Gruß,
Bernhard

Hallo,
da wäre ich am Fortgang der ‘Exploration’ auch auch interessiert…

Und:
Ist
C:\Users\ca\AppData\Roaming\gnupg>type gpg.conf
auto-key-locate keyserver
auto-key-retrieve
keyserver hkps://keys.openpgp.org
konfiguriert, funktioniert dann parallel auch die Keysuche per WKD oder geht nur entweder/oder?
Gruß Chris

Mit folgendem, zusätzlichen Eintrag in der dirmngr.conf scheint es zu funktionieren:

disable-ipv6

Jetzt gehen die Lookups sofort durch statt erst nach 15 Sekunden. Offenbar versucht der dirmngr sonst erstmal die IPv6 Adresse von keys.openpgp.org zu kontaktieren.

Hmmm, bei mir gibt es selbst auf der Kommandozeile mit Gpg-2.2.17 dieses Ergebnis:

xy@PC C:\Users\xy

gpg --auto-key-locate keyserver --locate-keys test1@on.yourweb.de

gpg: Fehler beim automatischen holen von test1@on.yourweb.de' über keyserver’: Zertifikat ist noch nicht gültig
gpg: error reading key: Zertifikat ist noch nicht gültig

Der Testkey test1@on.yourweb.de ist gültig und auf keys.openpgp.org vorhanden.

Mmmm…

Wie sieht denn genau Deine gpg.conf und dirmngr.conf aus? Das Problem hatten wir bei einem Benutzer auch und durch eine Neuinstallation von gpg4win und (nur) Eintrag folgender Zeilen in der gpg.conf ging es dann:

auto-key-locate keyserver
auto-key-retrieve
keyserver hkps://keys.openpgp.org

Konfig-Dateien sehen so aus:

dirmngr.conf:
###++±-- GPGConf —+++###
disable-ipv6
faked-system-time 13
keyserver hkps://keys.openpgp.org
ldaptimeout 15
###++±-- GPGConf —+++### 10/09/19 10:22:50 Mitteleuropäische Sommerzeit

GPGConf edited this configuration file.

It will disable options before this marked block, but it will

never change anything below these lines.

gpg.conf:
###++±-- GPGConf —+++###
auto-key-locate keyserver
auto-key-retrieve
keyserver hkps://keys.openpgp.org
utf8-strings
###++±-- GPGConf —+++### 10/09/19 10:27:33 Mitteleuropäische Sommerzeit

GPGConf edited this configuration file.

It will disable options before this marked block, but it will

never change anything below these lines.

Danke für die tests und die Analyse! Ich habe unseren zuständigen Entwickler auf diesen Beitrag hingewiesen.

Nur als Anmerkung, man kann beliebig viele “auto-key-locate” Einträge in der konfig haben.

auto-key-locate wkd
auto-key-locate keyserver

untereinander sollte afaik WKD über den Keyserver bevorzugen.

Schöne Grüße,
Andre