Importa un sottoinsieme di sottochiavi private in GPG

3

Problemi con GPG, isolamento di un set di sottochiavi da un altro.

In breve, ho generato una chiave principale, quindi tre sottochiavi:

  1. Accesso
  2. Crittografia
  3. Autorizzazione

Non riesco a isolare le chiavi private Signing e Encrypting dalla chiave di autorizzazione. Ho provato entrambi:

  1. Esportare / Importare solo una specifica sottochiave privata
  2. Eliminazione dell'unica sottochiave privata indesiderata

Quando importare una sottochiave, gpg non mi consente di importare gli altri, dicendo che ho già importato una chiave privata che appartiene al master. E quando elimino l'unica sottochiave privata indesiderata, tutte le sottochiavi vengono cancellate. Apparentemente nessuna soluzione funziona.

Cosa dà?

    
posta Farhan Yusufzai 15.05.2015 - 08:37
fonte

2 risposte

5

Probabilmente stai affrontando due problemi:

  • GnuPG prima della versione 2.1 non può unire chiavi private e
  • selezionare le sottochiavi esplicite da esportare richiede un ! dopo l'id chiave, ad esempio (dato 0xdeadbeef è l'ID sottochiave)

    gpg --export-secret-subkeys 0xdeadbeef!
    

Le possibili soluzioni al tuo problema sono:

  • Utilizza GnuPG 2.1 (quindi puoi unire le singole sottochiavi esportate durante l'importazione).
  • Esporta tutte le sottochiavi richieste contemporaneamente (dato che hai un solo keyring che contiene già tutte le sottochiavi, non funziona se queste sono distribuite tra più portachiavi in quanto richiederebbe l'unione delle chiavi), ad esempio

    gpg --export-secret-subkeys 0xdeadbeef! 0x12345678!
    
  • Utilizza il comando gpgsplit per separare il messaggio OpenPGP in singoli pacchetti, quindi unirli manualmente nell'ordine corretto utilizzando cat . Questo è un compito piuttosto difficile che richiede una conoscenza approfondita dello standard OpenPGP, vorrei andare per una delle due prime soluzioni.

risposta data 15.05.2015 - 10:51
fonte
3

Lo strumento gpgsplit è sicuramente una soluzione, ma è molto complicato per tutti tranne che per gli esperti. La mia soluzione era quella di esportare prima la chiave master privata in un file, poi le sottochiavi e cancellare tutte le chiavi segrete, quindi importare solo le sottochiavi segrete.

# Export out the master key    
gpg --export-secret-keys user@host > master_secret.asc
# Export out the subkeys
gpg --export-secret-subkeys > subkeys_secret.asc
# Delete both sets of secret keys (You can also delete everything associated with that uid)
gpg --delete-secret-keys user@host
# Import in ONLY the subkeys
gpg --import subkeys_secret.asc

Solo un commento: se questo processo è stato fonte di confusione per me, una persona abbastanza tecnica, immagina quanto sarebbe difficile per una persona completamente non tecnica. Questo deve essere semplificato. Inoltre, una volta separate le chiavi come tali, non c'è un modo semplice e ovvio per unire sia il segreto principale che i segreti delle sottochiavi nello stesso portachiavi.

Questa non è una funzionalità, è un bug e dovrebbe essere risolta.

    
risposta data 22.05.2015 - 00:59
fonte

Leggi altre domande sui tag