On Tue, Aug 13, 2019 at 11:12 AM Nuno Ponte via dev-security-policy <
Nuno,
Thanks for raising this. I appreciate that a CA is attempting to provide
guidance to their Subscribers, since, as you note, the CA is still beholden
to the Baseline Requirements, and the Subscriber still beholden to their
Subscriber Agreement.
As one of the co-authors of the HTTP Public Key Pinning RFC, RFC 7469, I
would readily encourage your Subscribers not to pin at all. However, if
they are going to pin to anything, then it:
1) Should be to the public key, not certificate
2) Should only be to the root
3) Should require an agreement with the root that the Root (i.e. Multicert)
will disclose all possible certificate paths and root certificates that are
unexpired and may exist.
- This includes cross-signed certificates
Note that mobile devices, the scenario you discuss for pinning, already
largely do not implement revocation checks and do not offer a way for
applications to control it, so I don't think that should be a concern.
Of course, many of these techniques predate improvements to the ecosystem,
such as CAA and Certificate Transparency. Many of the concerns that
motivated HPKP, which subsequently evolved into the aforementioned OS APIs,
were predicated on an assumption of a CA that has lax validation methods.
Yet techniques such as CAA exist to give site operators meaningful control
- and to ensure that any CA that violates such checks, and ignores CAA, is
unambiguously at risk of being distrusted by the entire platform.
If there's concern about the DNS registrar being hacked, the Subscriber has
the option of choosing a better registrar before hand, without resorting to
PKP, and/or transitioning to registries with better security practices
overall. In general, this means avoiding ccTLDs, which are known lax due to
their lack of any formal IANA or ICANN agreements with respect to
operations. Certificate Transparency offers a compliment to this, ensuring
that even if the Registrar or Registry is compromised, misissued
certificates can be promptly detected for subsequent investigation and
remediation.
However, as to your question about private PKIs potentially being more
secure - it is indeed possible this may be the right answer! Organizations
which desire complete lifecycle control over their certificates may benefit
from the use of such private PKIs - while also being wholly responsible for
the operational security of such, which naturally will be something their
regulatory oversight bodies will take great interest in.
Beyond that, what Matt and Tom said is absolutely correct. Making use of
multiple (distinct) TLS endpoints, even on the same IP, is absolutely
crucial for reducing these risks.
As a CA, the best thing you can do is to make sure your Subscribers know
that they are taking on operational risk when they pin, and the CA is not
empowered to assist in resolving that.