davidben / tls-trust-expressions

Other
5 stars 2 forks source link

Adoptions to supersede `server/client_certificate_type` extensions #76

Open pohlm01 opened 1 week ago

pohlm01 commented 1 week ago

Merkle Tree Certificates require the trust_anchors extension defined in this repository, as well as the server_certificate_type and client_certificate_type extensions defined in RFC 7250 (raw public keys).

The current draft says:

If the subscriber sends a certification path that matches the relying party’s trust_anchors extension, as described in Section 4.2, the subscriber MUST send an empty trust_anchors extension in the first CertificateEntry of the Certificate message.

If we change this to include the selected Trust Anchor instead, we would implicitly negotiate the certificate type as well and leave out the server_certificate_type and client_certificate_type extensions. I considered the following scenarios:

This approach has a few implications:

davidben commented 1 day ago

Hmm. This does fall somewhat naturally from reusing the same TAI namespace between X.509 and Bikeshed (for completeness, we could have decided to just have a separate bikeshed_trust_anchors extension), but I suspect tying certificate format to trust anchor negotiation quite this tightly might be a bit too restrictive:

So I suspect it'll be simplest if we keep the type explicit.