Sottochiave di crittografia GPG su più smart card

11

C'è un modo per dire a GPG che, se ha bisogno di decodificare qualcosa, può trovare la chiave di crittografia privata su una delle due smart card?

La mia configurazione (semplificata) è la seguente:

  • Generata una chiave master offline con una sottochiave di crittografia.
  • Trasferito la sottochiave di crittografia su Yubikey 1.
  • Su Yubikey 1, generato l'autenticazione e firma le sottochiavi.
  • Trasferito la sottochiave di crittografia su Yubikey 2.
  • Su Yubikey 2, generato auth e firma sottochiavi.

Quindi mi rimane:

gpg2 --list-keys
/Users/scott/.gnupg/pubring.gpg
-------------------------------
pub   3072R/600955C7 2016-09-09
uid       [ultimate] Scott Cariss 
uid       [ultimate] Scott Cariss (msn.com) 
uid       [ultimate] Scott Cariss (bigfish.co.uk)
uid       [ultimate] [jpeg image of size 12378]
sub   2048R/6FE6415F 2016-09-09
sub   2048R/D6DBBCAC 2016-09-09
sub   2048R/01A208C9 2016-09-09
sub   2048R/8D2A1368 2016-10-23
sub   2048R/65B08C5B 2016-10-23

La mia sottochiave di crittografia è condivisa tra le smart card e dispone di singole chiavi di autenticazione e firma su ciascuna smart card.

Ma quando decrypt qualcosa va sempre alla prima smart card e non troverà la chiave di crittografia sull'altra smart card. La voce gpg-agent / pin mi chiederà solo di inserire la smart card corretta.

UPDATE (soluzione alternativa)

Come già risposto, non è qualcosa che supporta GPG ma ho trovato una soluzione funzionante che funziona per me.

Su Mac OS XI usa link per rilevare l'arrivo di una delle mie smart card (yubikeys) e falla eseguire uno script :

#!/bin/bash
{
    killall -9 ssh-agent gpg-agent
    for keystub in $(/usr/local/MacGPG2/bin/gpg2 --with-keygrip --list-secret-keys {{EMAIL ADDRESS}} | grep Keygrip | awk '{print $3}'); do rm /Users/{{USERNAME}}/.gnupg/private-keys-v1.d/$keystub.key; done;
    /usr/local/MacGPG2/bin/gpg2 --card-status
    eval $(/usr/local/MacGPG2/bin/gpgconf --launch gpg-agent)
    ssh-add -l
} &> /Users/{{USERNAME}}/bin/gpg-card-change-log.txt

exit 0

Poiché le chiavi segrete sono tutte mantenute offline, non c'è nulla di male nell'eliminarle e quindi eseguire --card-status che porta gli stub delle chiavi segrete dalla smart card attualmente collegata.

    
posta Brady 23.03.2017 - 15:31
fonte

1 risposta

8

Immagino che avrai sfortuna, e questo non è supportato da GnuPG. Quando si utilizzano le smart card OpenPGP, un codice segreto è memorizzato nel proprio portachiavi, con un riferimento alla smart card su cui è memorizzato. Il sotto pacchetto della chiave segreta appare come questo quando viene visualizzato tramite gpg --list-packets :

:secret sub key packet:
        version 4, algo 1, created 1358985314, expires 0
        pkey[0]: [2048 bits]
        pkey[1]: [17 bits]
        gnu-divert-to-card S2K, algo: 0, simple checksum, hash: 0
        serial-number:  01 23 45 67 89 ab cd ef 01 23 45 67 89 ab cd ef
        keyid: 9FF7E53ACB4BD3EE

Sbirciare al codice , non mi sembra più di un numero di serie sarebbe supportato.

    
risposta data 24.03.2017 - 19:23
fonte

Leggi altre domande sui tag