GPGME, gpgsm und mutt

Jan Eden net at janeden.net
Fr Jul 12 14:44:28 CEST 2013


On Wed, Jul 10, 2013 at 04:28:55PM +0200, Werner Koch wrote:
> On Wed, 22 May 2013 22:32, net at janeden.net said:
> 
> > verschlüsselte Nachricht zwischen meinen beiden Mail-Accounts versende,
> > akzeptiert gpg nur die Passphrase des *Absenders* zum Entschlüsseln der
> > Nachricht (encrypt_to in gpg.conf ist auf die ID des Absenderschlüssels
> 
> Ich verstehe nicht genau was Du hier meinst.

Die Frage hat sich erledigt: GnuPG greift natürlich auf den ersten
einschlägigen Schlüssel zurück, und das war in diesem Fall der des
Absenders.

> > der Import (mit der o.g. Fehlermeldung). Interessanterweise startet
> > pinentry-curses anstandslos, wenn ich ein OpenPGP-Schlüsselpaar
> > generiere oder in mutt meine Passphrase beim Signieren eingeben muss
> 
> Kannst Du das Ganze bitte einmal in einem xterm testen, so das eine GUI
> Version des Pinentries benutzt wird?

Leider nicht, ich nutze OS X, mein Terminal simuliert ein xterm, aber
ich habe kein echtes xterm zur Verfügung.

Das Problem bleibt jedenfalls bestehen:

localhost:~ gpgsm --import ~/mycert.p12 
gpgsm: enabled debug flags: hashing
gpgsm: no running gpg-agent - starting one
gpg-agent[1677]: enabled debug flags: command mpi crypto memory cache memstat hashing assuan
gpgsm: gpg-agent[1680]: enabled debug flags: command mpi crypto memory cache memstat hashing assuan
gpgsm: gpg-protect-tool: error while asking for the passphrase: Invalid IPC response
gpgsm: error running `/usr/local/libexec/gpg-protect-tool': exit status 2
gpgsm: total number processed: 0
secmem usage: 0/16384 bytes in 0 blocks

gpg-agent.log enthält:

2013-07-12 14:27:39 gpg-agent[1680] starting a new PIN Entry
gpg-agent[1680]: chan_8 <- OK Your orders please
2013-07-12 14:27:39 gpg-agent[1680] DBG: connection to PIN entry established
gpg-agent[1680]: chan_8 -> OPTION grab
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> OPTION ttytype=xterm-256color
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> OPTION lc-ctype=UTF-8
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> OPTION default-ok=_OK
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> OPTION default-cancel=_Cancel
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> OPTION default-prompt=PIN:
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> GETINFO pid
gpg-agent[1680]: chan_8 <- D 1681
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_6 -> INQUIRE PINENTRY_LAUNCHED 1681
gpg-agent[1680]: chan_6 <- END
gpg-agent[1680]: chan_8 -> SETDESC Please enter the passphrase to unprotect the PKCS#12 object.
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> SETPROMPT Passphrase:
gpg-agent[1680]: chan_8 <- OK
gpg-agent[1680]: chan_8 -> [[Confidential data not shown]]

pinentry sollte also erscheinen (und der Prozess befindet sich laut
Terminal auch zeitweise im Vordergrund), aber es wird nicht sichtbar.

> > (Frage am Rande: In .muttrc kann ich ein Timeout für Passphrasen
> > angeben – ist das auch mit GPGME möglich?).
> 
> Neuere Pinentries haben zwar ein timeout feature, das wird aber momentan
> noch nicht benutzt.

Die Option in muttrc ist etwas irreführend benannt: Es geht um den
Zeitraum, in dem eine Passphrase gecachet wird (z.B. 5 Minuten), um sie
für folgende Signaturvorgänge nicht erneut eingeben zu müssen.

> > signiert wurden, nicht verifizert werden, solange GPGME genutzt wird.
> > OpenSSL verifiziert die Signaturen.
> 
> Ich vermute eine Regression in Mutt.  Den Code in Mutt aber ich vor
> Urzeiten geschrieben.  Das müsste man sich mal genau ansehen - ich habe
> dafür aber keine Zeit.  In gpgsm.conf "debug 512" eintragen.  Dann werden
> Debugdateien erzeugt, mit den Daten die signiert werden - das wird
> schnell den Fehler aufzeigen.

Das Problem hat sich auf wundersame Weise erledigt: Die Signaturen
werden jetzt verifiziert (obwohl ich nichts gemacht habe™).

Es bleibt also nur das Verhalten von pinentry in bestimmten Kontexten.
Falls es aktuell keine offensichtliche Lösung gibt, nutze ich für S/MIME
einfach weiterhin OpenSSL.

Vielen Dank und herzliche Grüße
Jan



Mehr Informationen über die Mailingliste Gnupg-de