Cannabis Ruderalis

Content deleted Content added
Tweak lead.
Typo fixing, typo(s) fixed: extention → extension using AWB
Line 7: Line 7:


== Protocol ==
== Protocol ==
CAA uses [[Domain Name System|DNS]] [[resource record]]s to instruct [[certificate authorities]] the administrative restrictions placed on the issuance of [[Public key certificate|certificates]] for a particular [[domain name]]. Certificates authorities implementing CAA are expected to perform a DNS lookup for CAA records, and ensure that they comply with those records prior to issuing a certificate. Each resource record consists of a [[flag (computing)|flags byte]], a property tag and a property value. The flags byte defines a [[extensible]] signalling system for future use. {{As of|2018}}, only the ''issuer critical'' flag has been defined, which instructs certificate authorities that they must understand the corresponding property tag before issuing a certificate.<ref name="rfc6844" /> This flag allows the protocol to be extended in the future with both mandatory and optional extensions, with some assurance that if a certificate authority cannot understand the implications of the mandatory extention, it will at the very least [[Fail-safe|fail-closed]]. This is similar to how [[X.509#Structure of a certificate|critical extensions in X.509 certificates]] work.
CAA uses [[Domain Name System|DNS]] [[resource record]]s to instruct [[certificate authorities]] the administrative restrictions placed on the issuance of [[Public key certificate|certificates]] for a particular [[domain name]]. Certificates authorities implementing CAA are expected to perform a DNS lookup for CAA records, and ensure that they comply with those records prior to issuing a certificate. Each resource record consists of a [[flag (computing)|flags byte]], a property tag and a property value. The flags byte defines a [[extensible]] signalling system for future use. {{As of|2018}}, only the ''issuer critical'' flag has been defined, which instructs certificate authorities that they must understand the corresponding property tag before issuing a certificate.<ref name="rfc6844" /> This flag allows the protocol to be extended in the future with both mandatory and optional extensions, with some assurance that if a certificate authority cannot understand the implications of the mandatory extension, it will at the very least [[Fail-safe|fail-closed]]. This is similar to how [[X.509#Structure of a certificate|critical extensions in X.509 certificates]] work.


{{As of|2018}}, the following properties are defined:<ref name="rfc6844" />
{{As of|2018}}, the following properties are defined:<ref name="rfc6844" />
Line 18: Line 18:


== Support ==
== Support ==
{{As of|2018}}, CAA records are supported by [[BIND]] (since version 9.10.1B),<ref>{{Cite web|url=https://www.isc.org/blogs/certificate-authority-authorization-records/|title=Certificate Authority Authorization Records|last=Risk|first=Vicky|website=[[Internet Systems Consortium]]|date=August 29, 2014|language=en|access-date=January 7, 2018}}</ref> [[Knot DNS]] (since version 2.2.0),<ref name="sslmate">{{Cite web|url=https://sslmate.com/caa/support|title=Who Supports CAA Records?|website=SSLMate|language=en|access-date=January 7, 2018}}</ref><ref>{{Cite web|url=https://lists.nic.cz/pipermail/knot-dns-users/2016-April/000853.html|title=Knot DNS 2.2.0 release|last=Včelak|first=Jan|date=April 26, 2016|access-date=January 7, 2018}}</ref> [[ldns]] (since version 1.6.17),<ref name="sslmate" /> [[NSD]] (as of version 4.0.1)<ref name="sslmate" /><ref>{{Cite web|url=https://www.nlnetlabs.nl/projects/nsd/index.html#releases|title=Name Server Daemon (NSD) Releases|date=January 27, 2014|website=NLnet Labs|access-date=January 7, 2018}}</ref>, [[OpenDNSSEC]],<ref name="sslmate" /> [[PowerDNS]] (since version 4.0.0),<ref name="sslmate" /> [[Simple DNS Plus]] (since version 6.0),<ref name="sslmate" /> [[tinydns]]<ref name="sslmate" /> and [[Windows Server 2016]].<ref name="sslmate" /> Many hosted DNS providers also support CAA records, including [[Amazon Route 53]],<ref>{{Cite web|url=https://aws.amazon.com/about-aws/whats-new/2017/08/amazon-route-53-now-supports-caa-records/|title=Amazon Route 53 now supports CAA records|date=August 21, 2017|website=[[Amazon Web Services]]|language=en|access-date=January 7, 2018}}</ref> [[Cloudflare]], [[DNS Made Easy]] and [[Google Cloud DNS]].<ref name="sslmate" />
{{As of|2018}}, CAA records are supported by [[BIND]] (since version 9.10.1B),<ref>{{Cite web|url=https://www.isc.org/blogs/certificate-authority-authorization-records/|title=Certificate Authority Authorization Records|last=Risk|first=Vicky|website=[[Internet Systems Consortium]]|date=August 29, 2014|language=en|access-date=January 7, 2018}}</ref> [[Knot DNS]] (since version 2.2.0),<ref name="sslmate">{{Cite web|url=https://sslmate.com/caa/support|title=Who Supports CAA Records?|website=SSLMate|language=en|access-date=January 7, 2018}}</ref><ref>{{Cite web|url=https://lists.nic.cz/pipermail/knot-dns-users/2016-April/000853.html|title=Knot DNS 2.2.0 release|last=Včelak|first=Jan|date=April 26, 2016|access-date=January 7, 2018}}</ref> [[ldns]] (since version 1.6.17),<ref name="sslmate" /> [[NSD]] (as of version 4.0.1),<ref name="sslmate" /><ref>{{Cite web|url=https://www.nlnetlabs.nl/projects/nsd/index.html#releases|title=Name Server Daemon (NSD) Releases|date=January 27, 2014|website=NLnet Labs|access-date=January 7, 2018}}</ref> [[OpenDNSSEC]],<ref name="sslmate" /> [[PowerDNS]] (since version 4.0.0),<ref name="sslmate" /> [[Simple DNS Plus]] (since version 6.0),<ref name="sslmate" /> [[tinydns]]<ref name="sslmate" /> and [[Windows Server 2016]].<ref name="sslmate" /> Many hosted DNS providers also support CAA records, including [[Amazon Route 53]],<ref>{{Cite web|url=https://aws.amazon.com/about-aws/whats-new/2017/08/amazon-route-53-now-supports-caa-records/|title=Amazon Route 53 now supports CAA records|date=August 21, 2017|website=[[Amazon Web Services]]|language=en|access-date=January 7, 2018}}</ref> [[Cloudflare]], [[DNS Made Easy]] and [[Google Cloud DNS]].<ref name="sslmate" />


== Examples ==
== Examples ==

Revision as of 18:32, 21 January 2018

DNS Certification Authority Authorization (CAA) is an Internet security policy mechanism which uses resource records in the Domain Name System (DNS) to allow domain name holders to specify the administrative restrictions placed on the issuance of certificates for a particular domain name.[1][2] In September 2017, the CA/Browser Forum made it mandatory for publicly trusted certificate authorities to check a domain's CAA records before issuing a certificate.[3] CAA is specified by RFC 6844, a proposed Internet Standard written by Phillip Hallam-Baker and Rob Stradling in January 2013.[1] It is a purely administrative control, and does not prevent a malicious certificate authority from issuing fraudulent certificates. Third parties monitoring certificate authority behaviour might check newly issued certificates against the domain's CAA records, but must be aware that a domain's CAA records may have changed between the time the certificate was issued and the time the third-party makes checks them.

History

The first draft of CAA was written by Phillip Hallam-Baker and Rob Stradling, and submitted as an IETF Internet Draft in October 2010.[4] It was progressively improved by the PKIX Working Group,[5] and submitted to the IESG as RFC 6844, a Proposed Standard, in January 2013.[1] Initially the implementation of CAA was voluntary, however in March 2017 the CA/Browser Forum voted in favor of making CAA checking mandatory for all certificate authorities by September 2017.[3] At least one certificate authority, Comodo, failed to meet the deadline.[6]

Protocol

CAA uses DNS resource records to instruct certificate authorities the administrative restrictions placed on the issuance of certificates for a particular domain name. Certificates authorities implementing CAA are expected to perform a DNS lookup for CAA records, and ensure that they comply with those records prior to issuing a certificate. Each resource record consists of a flags byte, a property tag and a property value. The flags byte defines a extensible signalling system for future use. As of 2018, only the issuer critical flag has been defined, which instructs certificate authorities that they must understand the corresponding property tag before issuing a certificate.[1] This flag allows the protocol to be extended in the future with both mandatory and optional extensions, with some assurance that if a certificate authority cannot understand the implications of the mandatory extension, it will at the very least fail-closed. This is similar to how critical extensions in X.509 certificates work.

As of 2018, the following properties are defined:[1]

issue
This property authorizes the holder of the domain specified in associated property value to issue certificates for the domain for which the property is published.
issuewild
This property acts like issue but allows the issuance of wildcard certificates.
iodef
This property specifies a method for certificate authorities to report to the domain name holder when a certificate is issued, or when a certificate is requested that violates the domain's security policy. As of 2018, not all certificate authorities support this tag, so there is no guarantee that all certificate issuances will be reported.

Certificates authorities interpret the lack of a CAA record to allow unrestricted issuance, and the presence of a single blank issue tag to restrict all issuance.

Support

As of 2018, CAA records are supported by BIND (since version 9.10.1B),[7] Knot DNS (since version 2.2.0),[8][9] ldns (since version 1.6.17),[8] NSD (as of version 4.0.1),[8][10] OpenDNSSEC,[8] PowerDNS (since version 4.0.0),[8] Simple DNS Plus (since version 6.0),[8] tinydns[8] and Windows Server 2016.[8] Many hosted DNS providers also support CAA records, including Amazon Route 53,[11] Cloudflare, DNS Made Easy and Google Cloud DNS.[8]

Examples

In the following examples, assume that we want to control certificate issuance for the domain example.com. To signify that only the Let's Encrypt certificate authority can issue certificates to the domain, as well as all of its subdomains, one may use the CAA record:

example.com.	IN	CAA	0 issue "letsencrypt.org"

To disallow issuance for a specific subdomain, nocerts.example.com, one would allow issuance only to an empty issuer list:

nocerts.example.com.	IN	CAA	0 issue ";"

In this case, in a request to issue a certificate to nocerts.example.com, the relevant CA will stop its search for CAA records at the subdomain.

To signify that the CA may report certificate issues or policy violations by email to caa@example.com, or through RID messages to caa.example.com, the iodef property may be applied as follows:

nocerts.example.com.	IN	CAA	0 issue ";"
nocerts.example.com.	IN	CAA	0 iodef "mailto:caa@example.com"
nocerts.example.com.	IN	CAA	0 iodef "https://caa.example.com"

If, in the original example, we would like to allow issuance to specific domains, but disallow issuance of any wildcard certificates, the issuewild property may be applied:

example.com.	IN	CAA	0 issue "letsencrypt.org"
example.com.	IN	CAA	0 issuewild ";"

The critical flag is intended for usage when future extensions of the protocol, which add new properties that may impact issuance. If, for example, a future version of CAA would include the tag "future", then the record set:

example.com.	IN	CAA	0 issue "letsencrypt.org"
example.com.	IN	CAA	128 future "Some value"

would bar a certificate authority from issuing a certificate if it does not understand how to parse the record, for instance if it has not yet updated its parsing engine to the new version.

See also

References

  1. ^ a b c d e Hallam-Baker, Phillip; Stradling, Rob (January 2013). DNS Certification Authority Authorization (CAA) Resource Record. IETF. doi:10.17487/RFC6844. ISSN 2070-1721. RFC 6844.
  2. ^ "What is Certificate Authority Authorization (CAA)?". Symantec. Retrieved January 8, 2018.
  3. ^ a b Hall, Kirk (March 8, 2017). "Results on Ballot 187 - Make CAA Checking Mandatory". CA/Browser Forum. Retrieved January 7, 2018.
  4. ^ Hallam-Baker, Phillip; Stradling, Rob (October 18, 2010). DNS Certification Authority Authorization (CAA) Resource Record. IETF. I-D draft-hallambaker-donotissue-00.
  5. ^ Hallam-Baker, Phillip; Stradling, Rob; Ben, Laurie (June 2, 2011). DNS Certification Authority Authorization (CAA) Resource Record. IETF. I-D draft-ietf-pkix-caa-00.
  6. ^ Cimpanu, Catalin (September 11, 2017). "Comodo Caught Breaking New CAA Standard One Day After It Went Into Effect". Bleeping Computer. Retrieved January 8, 2018.
  7. ^ Risk, Vicky (August 29, 2014). "Certificate Authority Authorization Records". Internet Systems Consortium. Retrieved January 7, 2018.
  8. ^ a b c d e f g h i "Who Supports CAA Records?". SSLMate. Retrieved January 7, 2018.
  9. ^ Včelak, Jan (April 26, 2016). "Knot DNS 2.2.0 release". Retrieved January 7, 2018.
  10. ^ "Name Server Daemon (NSD) Releases". NLnet Labs. January 27, 2014. Retrieved January 7, 2018.
  11. ^ "Amazon Route 53 now supports CAA records". Amazon Web Services. August 21, 2017. Retrieved January 7, 2018.

Leave a Reply