[cabfpub] CAA concerns (and potential solutions)
pzb at amzn.com
Thu Oct 27 20:33:14 MST 2016
From the discussion at the F2F last week and the call today, it seems there are two major concerns about CAA.
The first concern is that a large organization may have internal miscommunication or disconnects and valid authorized certificate requesters may be blocked from getting certificates. This primarily is a concern for CAs that offer contracts for persistent issuance capability, frequently combined with the CA delegating authority to the organization to act as RA for FQDNs and Wildcard DNs falling within pre-validated domains (“Enterprise RA”).
In this case, it is very possible that there are three independent portions of the organization: one handling domain registration, one managing DNS, and one managing certificates. These different portions may have little routine interaction and action by one (DNS) could unintentionally negatively impact another (certificates).
I propose that this be mitigated by adoption a two prong rule for CAA:
1) By default CAs must treat the presence of CAA records which do not include them as “hard fail” and not issue
2) However, if the CA has issued an Enterprise EV RA certificate containing a valid authorization domain, logged it in at least <n> public CT logs, the CA may treat CAA for those FQDNs and Wildcard DNs matching the authorization domain as “soft fail” and issue even if the CAA record specifies otherwise.
The CA must internally log any certs that are issued after a “soft fail” and report such via any iodef in the CAA record.
Additionally, browsers may implement further reporting requirements, such as: CAs MUST send a report at least once every 90 days to <a to be designated location> that lists the number of base domains they issued for after getting a soft-fail. Such reports shall cover a period that begins with the end of the period of the prior report and concludes not more than 7 days prior to the date of the report.
The second concern is around issuance latency. If a certificate has dozens of subject alternative names or a CA is issuing massive number of certificates the full CAA checking algorithm can be slow, especially if there are no CAA records as each label must be checked back to the root. In order to allow for optimization, I propose the following variances and extensions to the CAA spec:
1) a new parameter tag for issue and issuewild properties: “skipsubdomaincheck" which can be “true” or “false”. The default value is “false”. If true, it indicates that a CA may skip checks for more specific subdomains.
2) extending the “domain” definition to be (label *("." label)) / “*”; a “*” is an explicit declaration that there is no CA restriction (the opposite of an empty domain name)
3) CAs may choose to check starting at the TLD and working their way down the tree of labels rather than starting with all labels and working towards the root. If they choose this option they must use the most specific CAA record found unless they find a record with skipsubdomaincheck=true. If they find such a record, they may use that record and not check any further labels.
This should allow customers who have a need for massive issuance rates of unique hostnames to enter a CAA record at the common suffix label allowing the CA to have a near 100% cache hit rate on DNS look ups.
For example, if a customer requests ten million certificates all in the form <some label>.things.example.com <http://things.example.com/>, they can enter a CAA record:
things.example.com <http://things.example.com/>. IN CAA 0 issue “*"; skipsubdomaincheck=true
This would indicate any CA may issue and allow the CA to only do the following checks:
com. IN CAA
example.com. IN CAA
things.example.com <http://things.example.com/>. IN CAA
I think that these proposals provide reasonable mitigations for the concerns raised while still allowing CAA to provide significant benefit.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Public