PGP key on smart card: perché ho bisogno di una "chiave segreta" sul disco?

6

Ho un NEO YubiKey su cui ho l'applet OpenPGP e ho una chiave PGP installata. Lavoro su 3 computer diversi e ho inizializzato la scheda sul computer bob . Ora sono al computer rob . Qualcuno mi ha inviato un file crittografato, quindi ho inserito il mio YubiKey NEO e ho eseguito gpg --decrypt .

Ho ottenuto il seguente output:

gpg: encrypted with RSA key, ID DEADBEEF
gpg: decryption failed: secret key not available

Okay, quindi forse ho bisogno di installare la mia chiave pubblica PGP qui. L'ho fatto e poi ho ricevuto:

gpg: decryption failed: secret key not available

Ho quindi SSH in bob da rob e ho eseguito gpg --list-secret-keys e lo-and-behold:

sec>  2048R/DEADDEAD 2015-02-31
      Card serial no. = 0000 12345678
uid                  Naftuli Tzvi Kay <[email protected]>
ssb>  2048R/BEEFBEEF 2015-02-31
ssb>  2048R/DEADBEEF 2015-02-31

Che diamine? Ho copiato questa "chiave" da bob a rob e ora le cose funzionano, eppure ho ancora bisogno di inserire il mio PIN per la mia chiave PGP.

Quando ho creato la chiave, I non l'ho mai importata sul disco , quindi dovrebbe esistere solo sulla scheda . Perché esiste una chiave segreta sul disco (!) Se non si suppone che la chiave segreta si trovi in un punto qualsiasi tranne la smart card?

    
posta Naftuli Kay 31.03.2015 - 22:29
fonte

1 risposta

4

Questo non è effettivamente la chiave segreta, ma un tipo di stub che fa riferimento a quello sulla tua carta. Questo stub contiene praticamente tutti i "metadati" della tua chiave privata (inclusa la chiave pubblica ad esso relativa), ma la chiave privata effettiva viene memorizzata solo sulla tua carta (e non la lascia mai).

Questo è importante, poiché la carta memorizza solo la chiave effettiva (ed esegue le operazioni di crittografia di base con quelle), ma non altre meta informazioni come data di creazione, flag di utilizzo, ID utente ecc.

(Leggendo di nuovo le specifiche, ho capito che era sbagliato: le carte memorizzano l'impronta digitale della chiave e il tempo di creazione.)

Questo stub chiave aiuta GnuPG a gestire le chiavi, e lascia che cerchi una carta / chieda la carta se necessario. Poiché l'impronta digitale della chiave pubblica è memorizzata sulla carta, la chiave privata "stub" può essere facilmente rigenerata se la chiave pubblica è disponibile. GnuPG semplifica questo problema eseguendo il comando fetch nel menu --card-edit , che interroga la rete del server delle chiavi per la chiave pubblica.

    
risposta data 31.03.2015 - 23:41
fonte

Leggi altre domande sui tag