Wie lässt man gpg-agent die Verwendung jedes Schlüssels bestätigen?

4

Beim Laufen gpg-agent Im Rahmen meiner Anmeldesitzung hat jedes Programm, das ich ausführen möchte, Zugriff auf meinen (möglicherweise) nicht gesperrten PGP-Schlüssel. Es könnte paranoid sein, aber ich möchte eine Bestätigung über jede Schlüsselverwendung erhalten, daher wünsche ich mir eine Option dazu gpg-agent Wenn das Passwort oder der Karten-Pin bereits zwischengespeichert ist, wird ein Bestätigungsdialogfeld angezeigt, bevor der Zugriff auf den Schlüssel ermöglicht wird.

Für ssh-Schlüssel, die von verwaltet werden gpg-agent eine solche Option besteht gemäß Manpage , aber nicht für PGP.

Habe ich etwas verpasst?

Uwe Kleine-König
quelle

Antworten:

2

Es gibt keine Option, die einfach eine Nachricht anzeigt. Am Ende müssen Sie aus zwei Optionen wählen:

  1. Deaktivieren Sie den Cache vollständig , um sicherzustellen, dass die Passphrase überhaupt nicht gespeichert wird:

    --max-cache-ttl n
          Set the maximum time a cache entry is valid to n seconds.  After
          this time a cache entry will be expired  even  if  it  has  been
          accessed  recently  or has been set using gpg-preset-passphrase.
          The default is 2 hours (7200 seconds).
    

    Ich bin mir nicht sicher, ob ein Wert von 0 Deaktiviert den Cache vollständig oder setzt die maximale Zeit auf unendlich - Sie können leicht herausfinden. Einstellen auf 1 Sekunden sollte wahrscheinlich auch in Ordnung sein.

  2. Es gibt eine Option zu Deaktivieren Sie den Cache beim Signieren (während die Entschlüsselung immer noch verwendet wird):

    --ignore-cache-for-signing
          This option will let gpg-agent bypass the passphrase  cache  for
          all  signing  operation.   Note that there is also a per-session
          option to control this behaviour but this  command  line  option
          takes precedence.
    

    Die Idee dahinter ist, das versehentliche Signieren einer Nachricht zu verhindern (was möglicherweise nicht rückgängig gemacht werden kann), während das versehentliche Entschlüsseln einer Nachricht wahrscheinlich keinen Schaden anrichtet.

Wenn Sie diese Optionen in Betracht ziehen, sollten Sie darüber nachdenken, welchen Angriff Sie abschwächen möchten. Wenn jemand mit Ihrem Schlüssel Aktionen ausführen kann, ist er wahrscheinlich in der Lage, beliebige Befehle auszuführen und möglicherweise einen Trojaner oder einen Schlüssellogger zu installieren.

Jens Erat
quelle
"Wenn jemand mit Ihrem Schlüssel Aktionen ausführen kann, ist er sehr wahrscheinlich in der Lage, beliebige Befehle auszuführen und möglicherweise einen Trojaner oder einen Schlüssellogger zu installieren." & lt; - Dies ist nicht unbedingt der Fall, wenn die GPG-Agentenverbindung an eine Remoteverbindung weitergeleitet wird. Dann ist diese zusätzliche Schutzschicht sinnvoller.
Matthijs Kooijman
Sie haben recht - das kann man durchaus mit der Verwendung eines Schlüssels auf einer Crypto-Smartcard vergleichen, die alle kryptographischen Operationen (Public-Private-Key) anstelle des Hauptprozessors durchführt.
Jens Erat