[cabfpub] Continuing the discussion on CAA
Bruce.Morton at entrust.com
Fri Oct 14 17:32:57 UTC 2016
I agree with Ryan that the hard fail per item number 3 is the sticking point. My concern is that in many organizations, the certificate requesters are not the DNS administrators and there could be some disconnect.
I think that Peter asked the question, “how does the CA currently know that they are allowed to issue certificates for a specific domain?”
I think we did a good job with the BR and EV documents. We have defined certificate approvers with the Enterprise RA and the Certificate Approver. We have also defined access controls and limits on certificate requesters.
So my answer is that we know we are allowed to issue certificates for a specific domain as we have a subscriber agreement which allows us to honor the requests of verified Enterprise RAs and Certificate Approvers.
Per the BRs, an Enterprise RA is defined and has the following privileges:
· BR 1.6.1 – Definition: An employee or agent of an organization unaffiliated with the CA who authorizes issuance of Certificates to that organization.
· BR 1.3.2 - The CA MAY designate an Enterprise RA to verify certificate requests from the Enterprise RA’s own organization.
· Note that if the Enterprise RA has the ability to issue a certificate then they must meet the multi-factor requirement of BR 6.5.1, “The CA SHALL enforce multi‐factor authentication for all accounts capable of directly causing certificate issuance.”
· Also note that per BR 3.2.5, “the CA SHALL establish a process that allows an Applicant to specify the individuals who may request Certificates.” This generally limits requests which have not been approved by an Enterprise RA or a Certificate Approver.
For EV certificates, there is a Certificate Approver:
· EV 4 – Definition: A natural person who is either the Applicant, employed by the Applicant, or an authorized agent who has express authority to represent the Applicant to (i) act as a Certificate Requester and to authorize other employees or third parties to act as a Certificate Requester, and (ii) to approve EV Certificate Requests submitted by other Certificate Requesters.
· Note if the Subscriber had established the BR 3.2.5 restriction, then a new Certificate Approver would not be verified unless they could be added to the approved list.
In both cases the roles have the privilege to verify/approve certificate requests. As such, I do not think that we need a hard fail on CAA if the request has been approved by an Enterprise RA or a Certificate Approver.
I think that the CA can limit risk by checking CAA records where there has been no verified Enterprise RA or a Certificate Approver established. In this condition, I think that the CAA record check should be a hard fail.
From: public-bounces at cabforum.org [mailto:public-bounces at cabforum.org] On Behalf Of Ryan Sleevi
Sent: Thursday, September 8, 2016 6:35 PM
To: Rick Andrews <Rick_Andrews at symantec.com>
Cc: public at cabforum.org
Subject: Re: [cabfpub] Continuing the discussion on CAA
On Thu, Sep 8, 2016 at 2:40 PM, Rick Andrews <Rick_Andrews at symantec.com<mailto:Rick_Andrews at symantec.com>> wrote:
Additionally, I'd like to address this point: 'Ryan pointed out that, at
present, nothing would prevent Neil from stating in his CP/CPS that his CA
will issue certificates if he sees a CAA record for "symantec.com<http://symantec.com>" '. If
Neil adopted that policy, wouldn't it violate RFC 6844, which says "The
issue property entry authorizes the holder of the domain name <Issuer Domain
Name> or a party acting under the explicit authority of the holder of that
domain name to issue certificates for the domain in which the property is
As you know, the IETF historically shies away from discussions of policy, and instead focuses on the technological side. We can see that certainly with PKIX (RFC 5280 & friends), and it was actually a frequently reiterated point during the discussion of CAA through its standardization.
As such, we should imagine that CAA defines the structural representation, but it's up to the CA/B Forum to specify the policy that applies here. You can see that the document intentionally shies away from this discussion in Sections 6.1 and 6.2, and that's arguably the right thing.
The extent of my comments was to make sure that, in developing a policy for CAA (which I'm strongly supportive of, so appreciate you continuing the discussion), we make it clear what is and is not acceptable. If we were to accept that Neil doing so would violate RFC 6844, then we must also accept that the only RFC 6844-compliant method of a CA running into the situation you propose is to Not Issue At All. That is, not even Option 1 is acceptable (since you included the parenthetical escape clause).
My "ideal" outcome for CAA within the CA/B Forum would be:
1) A requirement in the CPS to state that the CA respects CAA
2) A requirement that the CPS documents which domains the CA recognizes in CAA records. As a consequence, if a CA wishes to recognize additional domains in CAA records, this requires a CPS update.
3) A requirement that the CA honor the CAA record exactly as presented, with no overriding allowed, short of changing the DNS record.
4) A requirement that the CA maintain audit records regarding their CAA evaluation, such as:
- The order and sequence of DNS records they attempted to resolve
- The results of those DNS records and the source of the information.
Each of these I suspect is controversial in some way, and will no doubt require more discussion, but to briefly justify this:
#1, without #2-4, is largely toothless. However, my goal is to ensure that auditors have a consistent framework to evaluate a CA's compliance, and for the public at large as well to evaluate. If a CA says it supports CAA, and a misissuance event occurs that contravenes that, it's natural that both auditors and the public should want to understand why and how, and setting this up within the CPS makes it clear that the CA is committed to explaining that.
#2 is about making it clear for Subscribers and Applicants the "Right Way" to configure things. Each CA naturally is free to manage their customer relations as they wish, but it can be hard to find consistent information (such as where to report misissuance events), and the CPS is the one universal aspect that all CAs must have and abide by, so it naturally makes sense to ensure it's in a consistent and discoverable place.
#3 is clearly a sticking point. I think we're all pretty aware of CAs' objections to this, but I do feel strongly that, without this, CAA is not an effective security mitigation. As you know, Google holds a variety of domains, and we routinely receive requests from other CAs attempting to confirm that an applicant was duly authorized to make a request, and we routinely have to contact CAs and request revocation for certificates that were not authorized according to our company policy. Allowing escape clauses, even at the EVGL level, significantly weaken our ability to proactively prevent this, which we believe would reduce both ours and CAs' administrative burdens.
#4 is less obvious. During Bilbao, we discussed how DNS resolution can be unreliable for CAs; for example, network hiccups due to peering interconnects can manifest as a DNS timeout, rather than a successful (negative) response. We also know that CAA policies are only applicable at time of issuance, and may change, so we can't examine post-facto the CAA record of a domain and make a declarative judgement of misissuance. However, unfortunate as it is, CAA is a "fail open" rather than "fail closed" model - any misconfiguration on the CA's part (such as forgetting to configure their DNS clients or firewalls correctly) can result in issuance, even when a domain holder explicitly requests that the CA not issue (via CAA). So we need to have some sort of way to audit this, so that, in the event of claimed conflict, we can better ascertain what happened, and why. This is a rough sketch of an attempt to do so, but the point in particular being to ensure there's enough record to know if the CA had a bug in their system, and to ensure enough information is preserved to understand that bug.
We know CAA isn't the system we'd hope for - while it presents itself as a whitelist mechanism (listing only authorized CAs) - because it's built atop the unreliable DNS, it's effectively a blacklist mechanism (any failure is interpreted as the status quo - any CA is authorized - rather than the desired state - no CA is authorized). In an ideal world, I would wish for CAA to be required, and present, in order for a CA to issue a certificate, but I know that world is unlikely to ever come about, and so I'd at least be willing to settle on #1 - #4 as an improvement to the status quo.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Public