GPG: scollegamento delle sottochiavi pubbliche: perché non posso farlo?

5

Comprendo i vantaggi dell'utilizzo delle sottochiavi. So anche che, nel caso delle chiavi private è possibile staccare le sottochiavi dalla chiave principale, poiché ci sono momenti in cui un utente potrebbe preferire di non memorizzare la chiave master privata con le sottochiavi private . (Uso di gpg, --export-secret-subkeys ) Inoltre, quando fai --export una chiave pubblica, sembra non importare se usi l'impronta digitale della chiave principale o quella di una delle sottochiavi.

Per quanto posso dire, non è possibile separare le sottochiavi pubbliche . Vorrei essere chiaro: non riesco a pensare a nessuna ragione significativa per cui si possa desiderare. L'unica motivazione che posso pensare è minimalista: potresti voler importare solo le sottochiavi pubbliche perché è tutto ciò che intendi usare. Ma sto cercando di capire se c'è una ragione più fondamentale.

  • È perché i dettagli dell'ID utente sono allegati alla chiave principale e il distacco delle sottochiavi consentirebbe di far virare le chiavi non identificate? (Non ne sono convinto - quando si importano le sottochiavi private separate, la chiave master assente ottiene ancora un riferimento [sec # ecc.], Anche quando è assente. Quindi, sicuramente lo stesso potrebbe essere fatto per le chiavi pubbliche.)
  • È solo perché non c'è una buona ragione per farlo?

Se, tuttavia, vi è un motivo per cui le sottochiavi pubbliche non possono essere logicamente separate dalla chiave principale pubblica, ciò suggerisce che non capisco correttamente le sottochiavi.

    
posta SauceCode 19.03.2015 - 18:27
fonte

1 risposta

4

Scollegamento delle sottochiavi in teoria ...

Scollega le sottochiavi non corrisponde al modello OpenPGP di chiavi primarie, sottochiavi, ID utente, certificazioni e affidabilità.

Sia le sottochiavi che gli ID utente sono associati alla chiave primaria, ciascuno individualmente. Le certificazioni vengono applicate su tuple di chiavi primarie e user ID, si fidano direttamente delle chiavi primarie.

Si potrebbe benissimo staccare una sottochiave dalla sua chiave primaria e usarla (come chiave primaria), necessaria nel forzare i bit nei pacchetti OpenPGP. Ma senza la connessione con la chiave primaria, è in effetti una chiave completamente nuova senza certificazioni e affidabilità (anche se il materiale chiave, i numeri dietro, rimangono gli stessi).

... e Practice

Tieni presente che quando esporti le sottochiavi usando gpg --export-secret-subkeys , uno stub della chiave primaria viene sempre esportato, insieme agli ID utente; per questo motivo, GnuPG visualizzerà "il riferimento della chiave master [...] assente [sec # ecc.]" come lo hai chiamato.

Puoi verificarlo facilmente eseguendo

gpg --export-secret-subkeys [subkey-id]! | gpg --list-packets

ad esempio (per sottochiave 0xDEADBEEF )

gpg --export-secret-subkeys 0xDEADBEEF! | gpg --list-packets

Assicurati di includere un ! dopo l'id della sottochiave, altrimenti GnuPG risolverà la chiave primaria associata e quindi esporterà tutte le sottochiavi disponibili!

Really Breaking Things Apart

Per davvero separare la sottochiave, puoi usare gpgsplit , che analizza un messaggio OpenPGP nei suoi sottogruppi effettivi. Lavorare con loro richiede una conoscenza più approfondita delle specifiche OpenPGP (RFC 4880) , ma rende giocherellare con i singoli pacchetti (anche con esadecimali) e ricompilando messaggi OpenPGP validi usando cat piuttosto facile.

    
risposta data 19.03.2015 - 19:09
fonte

Leggi altre domande sui tag