3.2. Primary Key Binding Signature (Type 0x19)
Section 5.2.1.9 of [RFC9580] defines the Primary Key Binding Signature as:¶
-
This signature is a statement by a signing subkey, indicating that it is owned by the primary key.¶
Section 10.1.5 of [RFC9580] gives additional details:¶
-
For subkeys that can issue signatures, the Subkey Binding signature MUST contain an Embedded Signature subpacket with a Primary Key Binding signature (Type ID 0x19) issued by the subkey on the top-level key.¶
The motivation for this requirement is not contained in any of the RFCs, and the terms "signing subkey" and "subkeys that can issue signatures" are imprecise. We hereby address these omissions:¶
-
An attacker could issue a Subkey Binding signature over a public subkey that belongs to a victim, and publish it as part of the attacker's own certificate. A third party might then look up the subkey using the Issuer Key ID or Issuer Fingerprint subpacket from a signature made by the victim, and find the attacker's certificate instead. The attacker could then use this to impersonate the victim to the third party. The Primary Key Binding signature mitigates this attack, by requiring the subkey's owner to consent for it to be bound to a particular primary key.¶
A Primary Key Binding signature is REQUIRED in any Subkey Binding signature that contains one or more Key Flags whose specification requires one. A receiving implementation MUST reject any Subkey Binding signature that contains one or more of these Key Flags and does not contain a valid Subkey Binding signature. A Primary Key Binding signature is OPTIONAL otherwise.¶
Initially, the only Key Flags for which a Primary Key Binding signature is REQUIRED are 0x02 (Literal Data Signature Category), 0x0008 (Timestamping Category) and ((TBC)) (Countersignature Category) (Section 11.2).¶