Che cosa è esattamente una sottochiave?

11

Capisco bene 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?

    
posta balki 27.12.2014 - 17:49
fonte

2 risposte

9

Questo post dell'utente rjh del 2008 nel forum di enigmail risponde bene:

Originally in PGP 2.6, back in the early 90s, you had just one keypair and it was used for both encryption and signing. The ability to have additional keypairs presented some engineering challenges. Ultimately, it was decided that the additonal keypairs would be called "subkeys", despite the fact there's nothing "sub" about them. Likewise, what you call your "key" isn't really a key at all--the terminology is a holdover from the days when a key really was a key. Nowadays, a key is really a collection of keys, along with some metadata for user identifiers, signatures, etc.

E.g., my "key" has four keypairs on it: 5B8709EB, D0C6AAE4, 71E177DB and 8DB02BBB3.

What GnuPG calls your "public key" is really the oldest signing key in the collection. E.g., since 5B8709EB was created first, GnuPG calls the entire set of keys and metadata the "5B8709EB key".

So, "is it possible to have a key that's used for encryption and signing without any subkey at all?" The answer here is no, because all keypairs on a key are subkeys. Even if there's only one of them.

    
risposta data 24.12.2015 - 19:16
fonte
7

sottochiavi

I pacchetti di sottochiavi sono definiti in RFC 4880, OpenPGP, pacchetto di materiali chiave 5.5 . Si distinguono solo per un altro ID pacchetto e richiedono una firma vincolante per essere effettivamente utile (vedi sotto).

A Public-Subkey packet (tag 14) has exactly the same format as a Public-Key packet, but denotes a subkey.

Utilizzo sottochiavi

Le sottochiavi OpenPGP sono utilizzate per diversi scopi:

  • Essere in grado di memorizzare la chiave primaria offline o un dispositivo più sicuro. Se una macchina con una sottochiave viene danneggiata, puoi facilmente revocare la sottochiave senza tutti i fastidi di revocare la tua chiave primaria (condividendo una nuova chiave, ottenendo nuove firme, ...).
  • Avere sottochiavi diverse su macchine diverse, ad esempio una sottochiave di firma su un server di build. Ancora una volta, la revoca delle singole chiavi è facile.
  • Utilizzo di una chiave primaria più ampia per una lunga durata e sottochiavi più brevi ma più veloci per l'utilizzo quotidiano.
  • Alcuni algoritmi non supportano sia la crittografia che la firma. Ad esempio, una chiave primaria DSA richiede un'altra chiave per la crittografia, generalmente abbinata a ElGamal.

Firme vincolanti

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

0x18: Subkey Binding Signature

This signature is a statement by the top-level signing key that indicates that it owns the subkey. This signature is calculated directly on the primary key and subkey, and not on any User ID or other packets. A signature that binds a signing subkey MUST have an Embedded Signature subpacket in this binding signature that contains a 0x19 signature made by the signing subkey on the primary key and subkey.

0x19: Primary Key Binding Signature

This signature is a statement by a signing subkey, indicating that it is owned by the primary key and subkey. This signature is calculated the same way as a 0x18 signature: directly on the primary key and subkey, and not on any User ID or other packets.

    
risposta data 27.12.2014 - 21:41
fonte

Leggi altre domande sui tag