Kann zuvor verschlüsselte Nachrichten ohne Passphrase entschlüsseln, aber den privaten GPG-Schlüssel nicht exportieren

502
adtac

Ich fühle mich wirklich dumm, dies zu fragen, aber warum nicht. Ich habe eine Reihe von Dateien, die ich vor einiger Zeit mit einem gpgSchlüsselpaar verschlüsselt habe, das durch ein Kennwort geschützt ist. Seitdem habe ich das Passwort vergessen. Der Schlüssel muss sich jedoch noch irgendwo befinden (mein Schlüsselring?), Da ich alle Dateien gpg -d file.gpg ohne Passwortabfrage erfolgreich entschlüsseln kann.

Wenn ich jedoch versuche, den privaten Schlüssel zu exportieren, werde ich nach einem Kennwort gefragt.

Ich habe einen Neustart versucht, um zu sehen, ob es eine temporäre Sache ist, aber es ist nicht so. Wenn ich einen Neustart durchführe und versuche, eine verschlüsselte Nachricht zu entschlüsseln, funktioniert dies. Wenn ich versuche, den privaten Schlüssel zu exportieren, kein Glück.

Ich gehe davon aus, gpg-agentetwas im Cache zu speichern. Ich habe versucht, laufen gpgdurch stracemeine privaten Schlüssel, um zu versuchen und zu finden, aber ich habe kein Glück dort hatte. gpgliest die kennwortgeschützte private Schlüsseldatei, spricht mit gpg-agentund empfängt die entschlüsselte Nachricht zurück. Ich kann den privaten Schlüssel jedoch nicht (oder vielleicht weiß ich nicht, wonach ich suchen soll) irgendwo in den straceProtokollen finden.

Ich habe im Gespräch versucht, gpg-agentmit gpg-connect-agent, aber ich bin nicht sicher, was es zu tun, um die im Cache gespeicherten privaten Schlüssel zu erhalten.

Nach der Entschlüsselung habe ich alle Nachrichten irgendwo sicher gespeichert, so dass Datenverlust kein Problem mehr ist. Ich frage mich nur, ob das Generieren eines neuen Schlüsselpaares meine einzige Option ist.

0
Sind Sie sicher, dass Sie nicht nach einem Kennwort gefragt werden, um den exportierten Schlüssel zu verschlüsseln? grawity vor 5 Jahren 0
Welche Version von GnuPG verwenden Sie? 1.6 oder 2.0 oder 2.1+? grawity vor 5 Jahren 0
GnuPG 2.2.7. Ziemlich sicher ist es (`gpg --export-secret-keys -a" Mein Name "` ') nicht die Passphrase zur erneuten Verschlüsselung des exportierten Schlüssels, weil ich "Bad passphrase (try 2 of 3)" erhalte, wenn ich einen neuen Code gebe Passphrase. adtac vor 5 Jahren 0

1 Antwort auf die Frage

2
grawity

Jeder OpenPGP-Schlüssel besteht aus mehreren unabhängigen Schlüsselpaaren (Unterschlüsseln), die normalerweise zu unterschiedlichen Zwecken verwendet werden (z. B. ein Zertifizierungs- und Signatur-Unterschlüssel, ein Verschlüsselungs-Unterschlüssel usw.).

In GnuPG 2.1 und höher werden private Schlüssel in gpg-agent gespeichert ~/.gnupg/private-keys-v1.dund von diesem verwaltet . Für jeden Unterschlüssel gibt es eine separate Datei, die mit Ihrer Passphrase verschlüsselt ist. Dies bedeutet, dass Sie gpg-agent problemlos umgehen können, aber selbst wenn Sie es tun, können Sie die Schlüsseldateien nicht entsperren, ohne Ihre Passphrase zu kennen.

Technisch gesehen kann jede Schlüsseldatei mit einer anderen Passphrase verschlüsselt werden (obwohl die Benutzeroberfläche von gpg dies normalerweise nicht bietet). Wenn gpg-agent Ihre Passphrasen beispielsweise in GNOME Keyring speichert, werden sie auch für jeden Unterschlüssel separat gespeichert, ohne zu prüfen, ob sie identisch sind.

Es ist daher möglich, dass Ihre Passphrase nur für den Verschlüsselungsunterschlüssel "gespeichert" wurde, nicht jedoch für den Signaturunterschlüssel. Da sie identisch sind, sollte es ausreichend sein, die gespeicherte Passphrase einfach von GNOME Keyring abzurufen.

Verwenden Sie secret-toolGNOME Keyring für Ihre Passwörter zu suchen, und sehen, ob einer von ihnen arbeiten:

$ secret-tool search --all xdg:schema org.gnupg.Passphrase 

(Sie können auch das grafische Programm Seahorse von GNOME, auch "Passwords & Keys" genannt, verwenden, aber es neigt zum Absturz oder zum Einfrieren und ist daher nicht annähernd so nützlich.)

Vielen Dank, du bist großartig! Dadurch wurde die geheime Passphrase abgerufen :) Als akzeptierte Antwort markiert. adtac vor 5 Jahren 0