gpg sta cercando di firmare con un vecchio sottotitolo di firma che non ho più

3

Ho ricevuto una nuova smartcard (yubikey neo) e ho generato una nuova chiave di firma. così ora la mia chiave pubblica menziona sia la vecchia che quella nuova:

pub   rsa3072/B50A93EA 2015-08-13 [expires: 2018-08-12]
uid         [ unknown] Arthur Ulfeldt <[email protected]>
sub   rsa2048/6EE4E07A 2015-08-13 [expires: 2018-08-12]
sub   rsa2048/BC4C4B6C 2015-08-13 [expires: 2018-08-12] # <-- new key
sub   rsa2048/67E40B89 2015-08-13 [expires: 2018-08-12]
sub   rsa2048/91FF2F99 2015-08-16 [expires: 2018-08-15] # <-- old key
sub   rsa2048/3157DA5D 2015-08-16 [expires: 2018-08-15]

e gpg -K mostra quali sono le chiavi private per:

sec#  rsa3072/B50A93EA 2015-08-13 [expires: 2018-08-12]
uid         [ unknown] Arthur Ulfeldt <[email protected]>
ssb>  rsa2048/6EE4E07A 2015-08-13 [expires: 2018-08-12]
ssb>  rsa2048/BC4C4B6C 2015-08-13 [expires: 2018-08-12]  # <-- new key
ssb>  rsa2048/67E40B89 2015-08-13 [expires: 2018-08-12]
ssb#  rsa2048/91FF2F99 2015-08-16 [expires: 2018-08-15]  # <-- old key
ssb#  rsa2048/3157DA5D 2015-08-16 [expires: 2018-08-15]

che esegue gpg --clearsign -u B50A93EA --status-fd 1 --debug-all stampa questo:

....
gpg: DBG: chan_5 -> KEYINFO F5B5D673F6FFFA999162D7F2F4F91750FF756F2F
gpg: DBG: chan_5 <- ERR 67108891 Not found <GPG Agent>
gpg: DBG: md debug: can't open dbgmd-00001.clearsign
...
gpg: DBG: chan_5 -> SETKEYDESC Please+enter+the+passphrase+to+unlock+the+OpenPGP+secret+key:%0A%22Arthur+Ulfeldt+<[email protected]>%22%0A2048-bit+RSA+key,+ID+91FF2F99,%0Acreated+2015-08-16+(main+key+ID+B50A93EA).%0A
gpg: DBG: chan_5 <- OK
gpg: DBG: chan_5 -> SETHASH 8 5B6489E68D...A9780A91BB6526C
gpg: DBG: chan_5 <- OK
gpg: DBG: chan_5 -> PKSIGN
gpg: DBG: chan_5 <- ERR 67108881 No secret key <GPG Agent>
gpg: signing failed: No secret key

che sembra utilizzare la sottochiave 91FF2F99 per provare e firmare con

gpg --card-info mostra i tasti corretti sulla carta.

Come posso verificare che stia effettivamente tentando di firmare con la vecchia chiave?

c'è un modo per far sì che usi qualsiasi chiave disponibile per la smartcard che è collegata al momento?

PS: sto usando gpg (GnuPG) 2.1.7

    
posta Arthur Ulfeldt 27.08.2015 - 02:52
fonte

2 risposte

2

Ho avuto problemi simili, solo specifici di Enigmail dopo l'aggiornamento a GnuPG2.1 su Debian tramite dist-upgrade (utente Sid).

Non ho potuto inviare email a cui intendevo firmare. Enigmail ha segnalato:

Error - encryption command failed '

Il debug di GnuPG ha causato diversi errori:

ERR 67109139 Unknown IPC command <GPG Agent>
ERR 67108949 No pinentry <GPG Agent>
command 'PKSIGN' failed: No secret key

Dopo un po 'di lettura (risposta anche da Jens Erat), risulta in effetti che enigmail / gpg-agent stava selezionando la sottochiave di firma con la nuova data di creazione.

Per chiarire, ho originariamente creato le chiavi GnuPG seguendo una guida Debian per gli sviluppatori, che raccomandava la creazione di sottochiavi per ogni macchina diversa. Tuttavia ho eliminato quasi immediatamente questa pratica per vari motivi e ho eliminato la sottochiave di firma in questione.

Entrambe le sottochiavi; il vecchio che ho tenuto, e il più recente che pensavo di aver cancellato, stavano visualizzando quando eseguivo gpg --list-keys xxxxx nel terminale.

Un altro suggerimento per me era il "Nessun bit chiave segreta", infatti non c'era alcuna sottochiave segreta corrispondente per la sottochiave della firma pubblica che era stata selezionata, forse l'ho solo cancellata - non sono sicuro.

Quindi ho cancellato la sottochiave della firma pubblica che Enigmail continuava a provare a usare:

gpg --edit-key xxxxx
$ key 2
$ delkey

Magicamente potrei inviare di nuovo email firmate.

Non sono sicuro se l'aggiornamento di GnuPG abbia ricaricato le vecchie chiavi, se in qualche modo non ho eliminato la chiave in precedenza o l'avessi ripristinata in qualche modo, o se Enigmail sta semplicemente lavorando in modo diverso con GnuPG 2.1 (o anche solo in modo diverso nell'ultima Enigmail aggiornamento per Icedove).

    
risposta data 15.10.2015 - 08:16
fonte
1

Sembra che ci sia una certa confusione sulle "nuove" e "vecchie" chiavi di firma, in quanto quella che descrivi come "nuova" è stata effettivamente generata tre giorni prima della "vecchia". Inoltre, l'elenco delle chiavi fornito indica che la chiave "vecchia" è la chiave della carta (come per l'hash # nella sottochiave). Quindi GnuPG sta facendo ciò che ci si aspetta che faccia qui: usa l'ultima sottochiave disponibile per eseguire un'operazione. La sottochiave sulla scheda è considerata disponibile, in quanto puoi renderla disponibile.

Non c'è modo di dire a GnuPG di usare automaticamente la chiave della carta se la scheda è collegata al computer, e invece di ricorrere a un'altra chiave. Potresti creare una sorta di wrapper, che verifica la carta e successivamente sceglie la sottochiave di tua scelta, che è possibile aggiungendo ! dopo l'ID della chiave, ad esempio usando -u BC4C4B6C! per la chiave di firma diversa dalla carta.

    
risposta data 05.09.2015 - 13:54
fonte

Leggi altre domande sui tag