Capisco abbastanza la matematica dietro RSA, Elgamal, AES, SHA ma non come le cose vengono utilizzate nella pratica. In che modo le sottochiavi sono diverse dalla chiave principale? Comprendo il suo scopo da vari siti Web, ma come viene implementato internamente? Come è legato alla chiave principale? È una terminologia OpenPGP?

Commenti

Risposta

Questo post dellutente rjh del 2008 nel forum enigmail risponde bene:

Originariamente in PGP 2.6, allinizio degli anni 90, avevi solo una coppia di chiavi ed è stata utilizzata sia per la crittografia che per la firma. La possibilità di avere coppie di chiavi aggiuntive ha presentato alcune sfide ingegneristiche. Alla fine, è stato deciso che le coppie di chiavi aggiuntive sarebbero state chiamate “sottochiavi”, nonostante il fatto che non ci fossero “sottochiavi” in esse. Allo stesso modo, quella che chiami la tua “chiave” non è affatto una chiave – la terminologia è un residuo dei giorni in cui una chiave era davvero una chiave. Al giorno doggi, una chiave è in realtà una raccolta di chiavi, insieme ad alcuni metadati per identificatori utente, firme, ecc.

Ad esempio, la mia “chiave” ha quattro coppie di chiavi su di essa: 5B8709EB , D0C6AAE4, 71E177DB e 8DB02BBB3.

Quella che GnuPG chiama “chiave pubblica” è in realtà la chiave di firma più vecchia della collezione. Ad esempio, poiché 5B8709EB è stato creato per primo, GnuPG chiama lintero set di chiavi e metadati “chiave 5B8709EB”.

Quindi, “è possibile avere una chiave usata per la crittografia e la firma senza alcun sottochiave? “La risposta qui è no, perché tutte le coppie di chiavi su una chiave sono sottochiavi. Anche se ce nè solo una.

Risposta

Sottochiavi

I pacchetti di sottochiave sono definiti in RFC 4880, OpenPGP, 5.5 Key Material Packet . Sono distinti solo da un altro ID pacchetto e richiedono una firma vincolante per essere effettivamente utili (vedi sotto).

Un pacchetto sottochiave pubblica (tag 14) ha esattamente lo stesso formato di un pacchetto di chiave pubblica, ma denota una sottochiave.

Utilizzo delle sottochiavi

Le sottochiavi OpenPGP sono utilizzato per scopi diversi:

  • Essere in grado di memorizzare la chiave primaria offline o su un dispositivo più sicuro. Se una macchina con una sottochiave viene danneggiata, puoi facilmente revocare la sottochiave senza tutti i fastidi della revoca la tua chiave primaria (condividere una nuova chiave, ottenere nuove firme, …).
  • Avere sottochiavi differenti su macchine differenti, ad esempio una sottochiave di firma su un server di compilazione. Anche in questo caso, revocare singole chiavi è facile.
  • Utilizzo di una chiave primaria più grande per una lunga durata e di sottochiavi più brevi ma più veloci per lutilizzo quotidiano.
  • Alcuni algoritmi non supportano sia la crittografia che la firma. Ad esempio, una chiave primaria DSA richiede unaltra chiave per la crittografia ption, tipicamente associato a ElGamal.

Firme vincolanti

Esistono sottotipi di firme speciali per legare le sottochiavi alle chiavi primarie (e viceversa), elencate in RFC 4880, OpenPGP, 5.2.1 Tipi di firma :

0x18: firma vincolante sottochiave

Questa firma è una dichiarazione della chiave di firma di primo livello che indica che possiede la sottochiave. Questa firma viene calcolata direttamente sulla chiave primaria e sulla sottochiave e non su alcun ID utente o altri pacchetti. Una firma che associa una sottochiave di firma DEVE avere un pacchetto secondario della firma incorporata in questa firma di associazione che contiene una firma 0x19 creata dalla sottochiave di firma sulla chiave primaria e sulla sottochiave.

0x19: firma di associazione della chiave primaria

Questa firma è unistruzione di una sottochiave di firma, che indica che è di proprietà della chiave e della sottochiave primarie. Questa firma viene calcolata allo stesso modo di una firma 0x18: direttamente sulla chiave primaria e sulla sottochiave e non su alcun ID utente o altri pacchetti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *