On Mon, Jul 12, 2021 at 2:08 PM Jim Fenton <fen...@bluepopcorn.net> wrote:
> Does that then mean that there is an obligation on the part of certificate 
> checkers to make sure that public suffixes aren’t wildcarded? I had expected 
> that to be a responsibility of CAs to make sure that they don’t sign 
> something inappropriate, besides the fact that the public suffix list isn’t 
> officially maintained. Of course, certificate checkers are free to check the 
> PSL to provide extra assurance if they want, but we shouldn’t create an 
> expectation that they will do that. IMO we could change that from a MAY to a 
> SHOULD.
>
> But any certificate that contains a SAN with a wildcarded public suffix 
> should probably be considered completely invalid if a certificate checker is 
> consulting the PSL. So if the SAN contains (*.com, www.example.org) it should 
> be considered invalid for www.example.org as well, since it’s a malformed 
> certificate.

So this is messy, for a few reasons:

* The PSL has an element of temporal skew to it (names come and go),
with clients only maintaining a singular copy. Certificates have
validity periods, but the validity period may overlap with the
contents of the PSL at the time, but not overlap with the contents of
the PSL as perceived by the client during that validity period.
* The PSL is not one-size-fits all. It primarily covers use cases
related to (Web) browser security, although it has been co-opted for
other purposes outside of that. However, it means entities that are
legitimate to have wildcards, and are legitimate to issue to, can
appear on the PSL. Earlier in the thread, I mentioned github.io as an
example of this, or the similar appspot.com. While the PSL's format
uses some distinction between these (the so called "ICANN" vs
"PRIVATE" sections), that's hardly representative of the various use
cases. This is further made messy by the types of gTLDs that can
exist, as reflected in the reference in the BRs to ICANN Specification
13.
* The distinction between "invalid syntax" and "invalid semantics".
We've consistently seen that the latter is significantly less likely /
more difficult for RPs to implement. The classic example of this was
perhaps how RFC 5280 defined the DNS-ID in terms of preferred name
syntax (LDH rule), while virtually every client simply treated it as
case-insensitive ASCII, allowing for a variety of invalid characters
(e.g. "_") to proliferate and gain usage.

The proposed handling (fail fast) that you're describing seems to fit
similar to the nameConstraints processing algorithm: where the
presence of an excluded name type causes a certificate chain to be
rejected (RFC 5280, Section 6.1.3, Item c). However, in practice,
client implementations that impose restrictions on wildcards (e.g. to
the ICANN section of the PSL) tend to apply it similar to the
processing of policy OIDs: that is, they process the DNS-ID in the
context of the name being validated against, rather than during
certificate parsing. With such a model, a SAN containing {*.com,
www.example.org} is valid for "www.example.org", but not valid for
"example.com"

Whether or not it's appropriate for certificate checkers, in some
degree, depends on your threat model with respect to the CAs issuing
these certificates. In the context of the Web PKI set of CAs complying
to browser requirements, there's a healthy amount of suspicion with
respect to CAs, because technical controls can and do fail. Recall
that during DigiNotar's incident, we saw such *.com and *.*.com
certificates being issued. So browser clients tend to implement this
as a line of defense against CA compromise or malfeasance, while also
having to balance the risk to interoperability and their users if they
fail to maintain regular updates (e.g. for modifications to the PSL).

So while I agree with you on not creating the obligation on
certificate checkers (that is, that this is primarily an issuance
policy), I disagree on the "fast fail" side, because there's greater
operational risk compared to the "when used" scenario.

_______________________________________________
Uta mailing list
Uta@ietf.org
https://www.ietf.org/mailman/listinfo/uta

Reply via email to