In a few months, publicly trusted certificate authorities will have to start honoring a special Domain Name System (DNS) record that allows domain owners to specify who is allowed to issue SSL certificates for their domains.
The Certification Authority Authorization (CAA) DNS record became a standard in 2013 but didn’t have much of a real-world impact because certificate authorities (CAs) were under no obligation to conform to them.
The record allows a domain owner to list the CAs that are allowed to issue SSL/TLS certificates for that domain. The reason for this is to limit cases of unauthorized certificate issuance, which can be accidental or intentional, if a CA is compromised or has a rogue employee.
Under existing industry rules created by the CA/Browser Forum, an organization that combines major browser vendors and CAs, certificate authorities must validate that requests for SSL certificates originate from domain owners themselves or from someone in control of those domains.
This ownership verification is typically automated and involves asking the domain owner to create a DNS TXT record with a specific value or to upload authorization codes at a specific location in their site’s structure, thus proving their control over the domain.
However, hacking into a website could also give an attacker the ability to pass such verifications and request a valid certificate for the compromised domain from any certificate authority. Such a certificate could later be used to launch man-in-the-middle attacks against users or to direct them to phishing pages.
The goal behind the CAA record is to limit who can issue certificates for a domain. For example, Google’s CAA record is: google.com 86400 IN CAA 0 issue “symantec.com.” This means that Google specifically authorizes Symantec to issue certificates for its main domain name.
In March, the CA/B Forum voted to make CAA record checking mandatory as part of the certificate issuing process. This requirement will go into effect on Sept. 8, and CAs that will fail to honor these records will be in violation of industry rules and will risk sanctions.
In addition to the “issue” tag, the CAA record also supports a tag called “iodef” that will also be mandatory for CAs to comply with. This tag allows the domain owner to specify an email address or a URL where CAs can report certificate issuing requests that conflict with the domain’s CAA policy.
For example, if one CA receives a request for a certificate for domain X, but domain X has a CAA record that authorizes a different CA to issue certificates, the first CAmust report the suspicious request to the email address or the URL specified in the CAA iodef property. This will alert the domain owner that someone else might be trying to obtain a certificate without authorization.
“CAA is not a silver bullet, but it is another layer in our defense,” Scott Helme, a security researcher and HTTPS deployment expert, said in a blog post. “We don’t have to worry about vendor lock because the record is only checked at the point of issuance, and it couldn’t be simpler to setup. There’s really nothing to lose.”