Capacità di certificazione
RFC 4880, Strutture chiave definisce obbligatorio il flag di certificazione:
In a V4 key, the primary key MUST be a key capable of certification. The subkeys may be keys of any other type.
Indica che le operazioni che manipolano le sottochiavi devono essere considerate certificazioni:
It is also possible to have a signature-only subkey. This permits a primary key that collects certifications (key signatures), but is used only for certifying subkeys that are used for encryption and signatures.
Tipi di firma
Quali operazioni (di firma) devono ora essere considerate certificazioni e dipendono da questa capacità?
"Firmare altre chiavi" significa ovviamente rilasciare certificazioni, essendo già contenute nella denominazione. Come definito in RFC 4880, Tipi di firma :
0x10: Generic certification of a User ID and Public-Key packet.
0x11: Persona certification of a User ID and Public-Key packet.
0x12: Casual certification of a User ID and Public-Key packet.
0x13: Positive certification of a User ID and Public-Key packet.
Le operazioni per la manipolazione delle sottochiavi definite esplicitamente come certificazioni sono:
0x18: Subkey Binding Signature
0x19: Primary Key Binding Signature
0x28: Subkey revocation signature
Tuttavia i tipi di firma indecisi (che appartengono all'area di "gestione delle chiavi") sono:
0x1F: Signature directly on a key
0x20: Key revocation signature
0x30: Certification revocation signature
0x30
, anche la revoca della certificazione dovrebbe essere considerata un'operazione di certificazione. 0x1F
è anche usato per "affermazioni che i non-autenticatori vogliono prendere sulla chiave stessa". L'unica operazione a sinistra è 0x20
, le firme di revoca delle chiavi:
0x20: Key revocation signature
The signature is calculated directly on the key being revoked. A
revoked key is not to be used. Only revocation signatures by the
key being revoked, or by an authorized revocation key, should be
considered valid revocation signatures.
Non riesco a trovare alcuna restrizione esplicita che impedisca alle sottochiavi di agire come chiavi di revoca. [RFC 4880, chiave di revoca) ( link ) non limita la destinazione alle chiavi primarie, ma inoltre non consente esplicitamente le sottochiavi. Questo potrebbe essere l'unico che non richiede capacità di certificazione. Tuttavia GnuPG crea solo firme chiave di revoca per chiavi primarie. Un altro suggerimento che solo le chiavi primarie dovrebbero essere consentite è che le sottochiavi sono sempre nominate come tali se si applicano in quella sezione, quindi suppongo che solo le chiavi primarie dovrebbero essere consentite.
Significato del privilegio di certificazione
If I remove the primary key (with its Certify capability) from a keyring I can see that I am no longer able to generate a revocation certificate: Secret parts of primary key are not available.
Is that because I no longer have the Certify capability, or because I no longer have the primary key (does the primary key itself have special powers for revocation?)
Alla fine, non c'è differenza tra una chiave primaria e una chiave con capacità di certificazione, solo le chiavi primarie possono averla, ma anche quelle devono .