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 by modifying the above text to read:¶
-
A 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, if the Subkey Binding signature contains a Key Flags subpacket permitting that subkey to create OpenPGP signatures. A receiving implementation MUST reject any Subkey Binding signature that permits the creation of OpenPGP signatures by that subkey and does not contain a valid Subkey Binding signature. A Primary Key Binding signature is OPTIONAL otherwise.¶
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.¶