Quali sono i vantaggi delle "sottochiavi" di OpenPGP?

3

Sto provando a iniziare con la crittografia OpenPGP. Comprendo il concetto di mantenere la chiave principale sicura e l'uso di altre chiavi firmate da quella chiave (che può essere revocata se rubata) per la crittografia e altri usi quotidiani. Ma sono confuso dall'implementazione delle sottochiavi in particolare. Non è possibile farlo facilmente senza il concetto di sottochiavi? Le sottochiavi rendono davvero più semplice? Nello specifico, la wiki Debian dice :

Subkeys are like a separate key pair, but automatically associated with your main key pair.

Per quanto ne so, "associato a" qui significa semplicemente che sono automaticamente raggruppati nell'interfaccia utente, per comodità dell'utente, ma potrei ottenere la stessa sicurezza semplicemente creando coppie di chiavi aggiuntive separatamente e firmandole con la mia prima chiave. È corretto?

Il wiki continua:

The master key pair is quite important.... You should keep your private master key very, very safe. However, keeping all your keys extremely safe is inconvenient...

Subkeys make this easier.... You will use the subkeys for decrypting and signing messages.... You will need to use the master keys only in exceptional circumstances.

Quindi ... lo scopo delle sottochiavi è di incoraggiare l'utente a creare chiavi separate per scopi separati, e memorizzarle e usarle separatamente?

Ma l'interfaccia utente di GnuPG e diverse GUI di gestione delle chiavi che ho usato fa esattamente l'opposto di questo. Raggruppa le chiavi con le loro sottochiavi, presuppone per impostazione predefinita che si desidera copiarle o spostarle insieme e non sempre chiarisce quale chiave di un set viene utilizzata. Una chiave completamente separata sarebbe più adatta a questo scopo rispetto a una sottochiave, vero?

Mi manca qualcosa? Perché le sottochiavi "sono automaticamente associate alla tua coppia di chiavi principale" - e piuttosto strongmente associate, se lo scopo è quello di incoraggiare l'utente a dissociarle dalla sua coppia di chiavi principale?

    
posta Josh 12.02.2016 - 19:26
fonte

1 risposta

3

As far as I can tell, "associated with" here just means that they're automatically grouped together in the UI, for user convenience, but I could achieve the same security by simply creating additional key pairs separately, and signing them with my first key. Is this correct?

Considera una chiave OpenPGP (primaria) un'identità, collegando insieme ID utente, sottochiavi e certificazioni. Se le persone vogliono comunicare con te, selezionano questa chiave primaria e non devono preoccuparsi di ulteriori dettagli.

Se stai preparando da vicino la specifica OpenPGP , realizzerai l'implementazione di Signature binding binding 0x18 è molto simile a quello che hai descritto: puoi generare un'altra coppia di chiavi (che per le sottochiavi è designata come tale, ma altrimenti non molto diverso dalle chiavi primarie), e collegarlo alla chiave primaria usando una firma (ma una speciale, che è definita come vincolante della sottochiave).

Non usando più chiavi primarie e firme "normali", OpenPGP ti consente di nascondere i dettagli dietro le sottochiavi. Per l'uso normale, non importa se una sottochiave è cambiata. Se ti interessa, puoi dare un'occhiata più da vicino alla chiave e alle sue sottochiavi, ma non devi.

Quindi sì, puoi ottenere la stessa sicurezza con chiavi separate, ma perdere gran parte della praticità e della facilità d'uso delle sottochiavi.

But the UI of GnuPG and several key management GUIs I've used does exactly the opposite of this. It groups keys with their subkeys, assumes by default that you want to copy or move them together, and doesn't always make it clear which key in a set is being used. An entirely separate key would be more suited to this purpose than a subkey, wouldn't it?

In effetti, l'interfaccia utente spesso manca qui. Ma sappi che usare le chiavi primarie offline è già un uso molto avanzato di OpenPGP / GnuPG, e senza una certa conoscenza di OpenPGP e degli strumenti che stai utilizzando, ti troverai comunque nei guai usando tali chiavi.

Per creare una chiave di questo tipo, di solito basta spostare l'intera home directory di GnuPG, che manterrai particolarmente sicura e offline. Genera sottochiavi come richiesto ed esporta quelle sottochiavi usando gpg --export-secret-subkeys [subkey-id]! (puoi anche definirne più di esse). Tieni presente il punto esclamativo ! dopo l'ID della chiave, altrimenti GnuPG risolverà l'ID della chiave nell'ID della chiave primaria! Importa la chiave segreta esportata nella tua home directory quotidiana di GnuPG.

Consideralo come uno scambio tra una gestione delle chiavi più semplice per il proprietario della chiave (sfruttando le funzionalità avanzate di OpenPGP) e una gestione delle chiavi più semplice per gli altri utenti (che spesso saranno meno sicuri della tecnologia in uso).

    
risposta data 12.02.2016 - 21:45
fonte

Leggi altre domande sui tag