draft-ietf-lamps-rfc6844bis-07.txt   rfc8659.txt 
Network Working Group P. Hallam-Baker Internet Engineering Task Force (IETF) P. Hallam-Baker
Internet-Draft Request for Comments: 8659 Venture Cryptography
Obsoletes: 6844 (if approved) R. Stradling Obsoletes: 6844 R. Stradling
Intended status: Standards Track Sectigo Category: Standards Track Sectigo
Expires: December 1, 2019 J. Hoffman-Andrews ISSN: 2070-1721 J. Hoffman-Andrews
Let's Encrypt Let's Encrypt
May 30, 2019 November 2019
DNS Certification Authority Authorization (CAA) Resource Record DNS Certification Authority Authorization (CAA) Resource Record
draft-ietf-lamps-rfc6844bis-07
Abstract Abstract
The Certification Authority Authorization (CAA) DNS Resource Record The Certification Authority Authorization (CAA) DNS Resource Record
allows a DNS domain name holder to specify one or more Certification allows a DNS domain name holder to specify one or more Certification
Authorities (CAs) authorized to issue certificates for that domain Authorities (CAs) authorized to issue certificates for that domain
name. CAA Resource Records allow a public Certification Authority to name. CAA Resource Records allow a public CA to implement additional
implement additional controls to reduce the risk of unintended controls to reduce the risk of unintended certificate mis-issue.
certificate mis-issue. This document defines the syntax of the CAA This document defines the syntax of the CAA record and rules for
record and rules for processing CAA records by certificate issuers. processing CAA records by CAs.
This document obsoletes RFC 6844. This document obsoletes RFC 6844.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on December 1, 2019. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8659.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Definitions
2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2.1. Requirements Language
2.2. Defined Terms . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Defined Terms
3. Relevant Resource Record Set . . . . . . . . . . . . . . . . 5 3. Relevant Resource Record Set
4. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Mechanism
4.1. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Syntax
4.1.1. Canonical Presentation Format . . . . . . . . . . . . 7 4.1.1. Canonical Presentation Format
4.2. CAA issue Property . . . . . . . . . . . . . . . . . . . 8 4.2. CAA issue Property
4.3. CAA issuewild Property . . . . . . . . . . . . . . . . . 9 4.3. CAA issuewild Property
4.4. CAA iodef Property . . . . . . . . . . . . . . . . . . . 10 4.4. CAA iodef Property
4.5. Critical Flag . . . . . . . . . . . . . . . . . . . . . . 11 4.5. Critical Flag
5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 5. Security Considerations
5.1. Use of DNS Security . . . . . . . . . . . . . . . . . . . 12 5.1. Use of DNS Security
5.2. Non-Compliance by Certification Authority . . . . . . . . 12 5.2. Non-compliance by Certification Authority
5.3. Mis-Issue by Authorized Certification Authority . . . . . 12 5.3. Mis-Issue by Authorized Certification Authority
5.4. Suppression or Spoofing of CAA Records . . . . . . . . . 12 5.4. Suppression or Spoofing of CAA Records
5.5. Denial of Service . . . . . . . . . . . . . . . . . . . . 13 5.5. Denial of Service
5.6. Abuse of the Critical Flag . . . . . . . . . . . . . . . 13 5.6. Abuse of the Critical Flag
6. Deployment Considerations . . . . . . . . . . . . . . . . . . 13 6. Deployment Considerations
6.1. Blocked Queries or Responses . . . . . . . . . . . . . . 14 6.1. Blocked Queries or Responses
6.2. Rejected Queries and Malformed Responses . . . . . . . . 14 6.2. Rejected Queries and Malformed Responses
6.3. Delegation to Private Nameservers . . . . . . . . . . . . 14 6.3. Delegation to Private Nameservers
6.4. Bogus DNSSEC Responses . . . . . . . . . . . . . . . . . 14 6.4. Bogus DNSSEC Responses
7. Differences versus RFC6844 . . . . . . . . . . . . . . . . . 15 7. Differences from RFC 6844
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 8. IANA Considerations
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 9. References
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 9.1. Normative References
10.1. Normative References . . . . . . . . . . . . . . . . . . 16 9.2. Informative References
10.2. Informative References . . . . . . . . . . . . . . . . . 17 Acknowledgements
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses
1. Introduction 1. Introduction
The Certification Authority Authorization (CAA) DNS Resource Record The Certification Authority Authorization (CAA) DNS Resource Record
allows a DNS domain name holder to specify the Certification allows a DNS domain name holder to specify the Certification
Authorities (CAs) authorized to issue certificates for that domain Authorities (CAs) authorized to issue certificates for that domain
name. Publication of CAA Resource Records allows a public name. Publication of CAA Resource Records allows a public CA to
Certification Authority to implement additional controls to reduce implement additional controls to reduce the risk of unintended
the risk of unintended certificate mis-issue. certificate mis-issue.
Like the TLSA record defined in DNS-Based Authentication of Named Like the TLSA record defined in DNS-Based Authentication of Named
Entities (DANE) [RFC6698], CAA records are used as a part of a Entities (DANE) [RFC6698], CAA records are used as a part of a
mechanism for checking PKIX [RFC6698] certificate data. The mechanism for checking PKIX [RFC6698] certificate data. The
distinction between the two specifications is that CAA records distinction between CAA and TLSA is that CAA records specify an
specify an authorization control to be performed by a certificate authorization control to be performed by a CA before issuing a
issuer before issue of a certificate and TLSA records specify a certificate and TLSA records specify a verification control to be
verification control to be performed by a relying party after the performed by a Relying Party after the certificate is issued.
certificate is issued.
Conformance with a published CAA record is a necessary but not Conformance with a published CAA record is a necessary, but not
sufficient condition for issuance of a certificate. sufficient, condition for the issuance of a certificate.
Criteria for inclusion of embedded trust anchor certificates in Criteria for the inclusion of embedded trust anchor certificates in
applications are outside the scope of this document. Typically, such applications are outside the scope of this document. Typically, such
criteria require the CA to publish a Certification Practices criteria require the CA to publish a Certification Practices
Statement (CPS) that specifies how the requirements of the Statement (CPS) that specifies how the requirements of the
Certificate Policy (CP) are achieved. It is also common for a CA to Certificate Policy (CP) are achieved. It is also common for a CA to
engage an independent third-party auditor to prepare an annual audit engage an independent third-party auditor to prepare an annual audit
statement of its performance against its CPS. statement of its performance against its CPS.
A set of CAA records describes only current grants of authority to A set of CAA records describes only current grants of authority to
issue certificates for the corresponding DNS domain name. Since issue certificates for the corresponding DNS domain name. Since
certificates are valid for a period of time, it is possible that a certificates are valid for a period of time, it is possible that a
certificate that is not conformant with the CAA records currently certificate that is not conformant with the CAA records currently
published was conformant with the CAA records published at the time published was conformant with the CAA records published at the time
that the certificate was issued. Relying parties MUST NOT use CAA that the certificate was issued. Relying Parties MUST NOT use CAA
records as part of certificate validation. records as part of certificate validation.
CAA records MAY be used by Certificate Evaluators as a possible CAA records MAY be used by Certificate Evaluators as a possible
indicator of a security policy violation. Such use SHOULD take indicator of a security policy violation. Such use SHOULD take into
account of the possibility that published CAA records changed between account the possibility that published CAA records changed between
the time a certificate was issued and the time at which the the time a certificate was issued and the time at which the
certificate was observed by the Certificate Evaluator. certificate was observed by the Certificate Evaluator.
2. Definitions 2. Definitions
2.1. Requirements Language 2.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2.2. Defined Terms 2.2. Defined Terms
The following terms are used in this document: The following terms are used in this document:
Certificate: An X.509 Certificate, as specified in [RFC5280]. Certificate: An X.509 Certificate, as specified in [RFC5280].
Certificate Evaluator: A party other than a Relying Party that Certificate Evaluator: A party other than a Relying Party that
evaluates the trustworthiness of certificates issued by Certification evaluates the trustworthiness of certificates issued by
Authorities. Certification Authorities.
Certification Authority (CA): An Issuer that issues certificates in Certification Authority (CA): An Issuer that issues certificates in
accordance with a specified Certificate Policy. accordance with a specified Certificate Policy.
Certificate Policy (CP): Specifies the criteria that a Certification Certificate Policy (CP): Specifies the criteria that a CA undertakes
Authority undertakes to meet in its issue of certificates. See to meet in its issue of certificates. See [RFC3647].
[RFC3647].
Certification Practices Statement (CPS): Specifies the means by which Certification Practices Statement (CPS): Specifies the means by
the criteria of the Certificate Policy are met. In most cases, this which the criteria of the CP are met. In most cases, this will be
will be the document against which the operations of the the document against which the operations of the CA are audited.
Certification Authority are audited. See [RFC3647]. See [RFC3647].
Domain Name: The label assigned to a node in the Domain Name System. Domain Name: The label assigned to a node in the Domain Name System.
Domain Name System (DNS): The Internet naming system specified in Domain Name System (DNS): The Internet naming system specified in
[RFC1034] and [RFC1035]. [RFC1034] and [RFC1035].
DNS Security (DNSSEC): Extensions to the DNS that provide DNS Security (DNSSEC): Extensions to the DNS that provide
authentication services as specified in [RFC4033], [RFC4034], authentication services as specified in [RFC4033], [RFC4034],
[RFC4035], [RFC5155], and revisions. [RFC4035], [RFC5155], and any revisions to these specifications.
Fully-Qualified Domain Name (FQDN): A Domain Name that includes the Fully Qualified Domain Name (FQDN): A domain name that includes the
labels of all superior nodes in the Domain Name System. labels of all superior nodes in the DNS.
Issuer: An entity that issues certificates. See [RFC5280]. Issuer: An entity that issues certificates. See [RFC5280].
Property: The tag-value portion of a CAA Resource Record. Property: The tag-value portion of a CAA Resource Record.
Property Tag: The tag portion of a CAA Resource Record. Property Tag: The tag portion of a CAA Resource Record.
Property Value: The value portion of a CAA Resource Record. Property Value: The value portion of a CAA Resource Record.
Resource Record (RR): A particular entry in the DNS including the Relevant Resource Record Set (Relevant RRset): A set of CAA Resource
owner name, class, type, time to live, and data, as defined in Records resulting from applying the algorithm in Section 3 to a
[RFC1034] and [RFC2181]. specific FQDN or Wildcard Domain Name.
Resource Record Set (RRSet): A set of Resource Records of a Relying Party: A party that makes use of an application whose
particular owner name, class, and type. The time to live on all RRs operation depends on the use of a certificate for making a
within an RRSet is always the same, but the data may be different security decision. See [RFC5280].
among RRs in the RRSet.
Relevant Resource Record Set (Relevant RRSet): A set of CAA Resource Resource Record (RR): A particular entry in the DNS, including the
Records resulting from applying the algorithm in Section 3 to a owner name, class, type, time to live, and data, as defined in
specific Fully-Qualified Domain Name or Wildcard Domain Name. [RFC1034] and [RFC2181].
Relying Party: A party that makes use of an application whose Resource Record Set (RRset): A set of RRs of a particular owner
operation depends on use of a certificate for making a security name, class, and type. The time to live on all RRs within an
decision. See [RFC5280]. RRset is always the same, but the data may be different among RRs
in the RRset.
Wildcard Domain Name: A Domain Name consisting of a single asterisk Wildcard Domain Name: A domain name consisting of a single asterisk
character followed by a single full stop character ("*.") followed by character followed by a single "full stop" character ("*.")
a Fully-Qualified Domain Name. followed by an FQDN.
3. Relevant Resource Record Set 3. Relevant Resource Record Set
Before issuing a certificate, a compliant CA MUST check for Before issuing a certificate, a compliant CA MUST check for
publication of a Relevant RRSet. If such an RRSet exists, a CA MUST publication of a Relevant RRset. If such an RRset exists, a CA
NOT issue a certificate unless the CA determines that either (1) the MUST NOT issue a certificate unless the CA determines that either
certificate request is consistent with the applicable CAA Resource (1) the certificate request is consistent with the applicable CAA
Record set or (2) an exception specified in the relevant Certificate RRset or (2) an exception specified in the relevant CP or CPS
Policy or Certification Practices Statement applies. If the Relevant applies. If the Relevant RRset for an FQDN or Wildcard Domain Name
RRSet for a Fully-Qualified Domain Name or Wildcard Domain Name
contains no Property Tags that restrict issuance (for instance, if it contains no Property Tags that restrict issuance (for instance, if it
contains only iodef Property Tags, or only Property Tags unrecognized contains only iodef Property Tags or only Property Tags unrecognized
by the CA), CAA does not restrict issuance. by the CA), CAA does not restrict issuance.
A certificate request MAY specify more than one Fully-Qualified A certificate request MAY specify more than one FQDN and MAY specify
Domain Name and MAY specify Wildcard Domain Names. Issuers MUST Wildcard Domain Names. Issuers MUST verify authorization for all the
verify authorization for all the Fully-Qualified Domain Names and FQDNs and Wildcard Domain Names specified in the request.
Wildcard Domain Names specified in the request.
The search for a CAA RRSet climbs the DNS name tree from the The search for a CAA RRset climbs the DNS name tree from the
specified label up to but not including the DNS root '.' until a CAA specified label up to, but not including, the DNS root "." until a
RRSet is found. CAA RRset is found.
Given a request for a specific Fully-Qualified Domain Name X, or a Given a request for a specific FQDN X or a request for a Wildcard
request for a Wildcard Domain Name *.X, the Relevant Resource Record Domain Name *.X, the Relevant RRset RelevantCAASet(X) is determined
Set RelevantCAASet(X) is determined as follows (in pseudocode): as follows (in pseudocode):
Let CAA(X) be the RRSet returned by performing a CAA record query for Let CAA(X) be the RRset returned by performing a CAA record query
the Fully-Qualified Domain Name X, according to the lookup algorithm for the FQDN X, according to the lookup algorithm specified in
specified in RFC 1034 section 4.3.2 (in particular chasing aliases). Section 4.3.2 of [RFC1034] (in particular, chasing aliases). Let
Let Parent(X) be the Fully-Qualified Domain Name produced by removing Parent(X) be the FQDN produced by removing the leftmost label of
the leftmost label of X. X.
RelevantCAASet(domain): RelevantCAASet(domain):
while domain is not ".": while domain is not ".":
if CAA(domain) is not Empty: if CAA(domain) is not Empty:
return CAA(domain) return CAA(domain)
domain = Parent(domain) domain = Parent(domain)
return Empty return Empty
For example, processing CAA for the Fully-Qualified Domain Name For example, processing CAA for the FQDN "X.Y.Z" where there are
"X.Y.Z" where there are no CAA records at any level in the tree no CAA records at any level in the tree RelevantCAASet would have
RelevantCAASet would have the following steps: the following steps:
CAA("X.Y.Z.") = Empty; domain = Parent("X.Y.Z.") = "Y.Z." CAA("X.Y.Z.") = Empty; domain = Parent("X.Y.Z.") = "Y.Z."
CAA("Y.Z.") = Empty; domain = Parent("Y.Z.") = "Z." CAA("Y.Z.") = Empty; domain = Parent("Y.Z.") = "Z."
CAA("Z.") = Empty; domain = Parent("Z.") = "." CAA("Z.") = Empty; domain = Parent("Z.") = "."
return Empty return Empty
Processing CAA for the Fully-Qualified Domain Name "A.B.C" where Processing CAA for the FQDN "A.B.C" where there is a CAA record
there is a CAA record "issue example.com" at "B.C" would terminate "issue example.com" at "B.C" would terminate early upon finding
early upon finding the CAA record: the CAA record:
CAA("A.B.C.") = Empty; domain = Parent("A.B.C.") = "B.C." CAA("A.B.C.") = Empty; domain = Parent("A.B.C.") = "B.C."
CAA("B.C.") = "issue example.com" CAA("B.C.") = "issue example.com"
return "issue example.com" return "issue example.com"
4. Mechanism 4. Mechanism
4.1. Syntax 4.1. Syntax
A CAA Resource Record contains a single Property consisting of a tag- A CAA RR contains a single Property consisting of a tag-value pair.
value pair. A Fully-Qualified Domain Name MAY have multiple CAA RRs An FQDN MAY have multiple CAA RRs associated with it, and a given
associated with it and a given Property Tag MAY be specified more Property Tag MAY be specified more than once across those RRs.
than once across those RRs.
The RDATA section for a CAA Resource Record contains one Property. A The RDATA section for a CAA RR contains one Property. A Property
Property consists of the following: consists of the following:
+0-1-2-3-4-5-6-7-|0-1-2-3-4-5-6-7-| +0-1-2-3-4-5-6-7-|0-1-2-3-4-5-6-7-|
| Flags | Tag Length = n | | Flags | Tag Length = n |
+----------------|----------------+...+---------------+ +----------------|----------------+...+---------------+
| Tag char 0 | Tag char 1 |...| Tag char n-1 | | Tag char 0 | Tag char 1 |...| Tag char n-1 |
+----------------|----------------+...+---------------+ +----------------|----------------+...+---------------+
+----------------|----------------+.....+----------------+ +----------------|----------------+.....+----------------+
| Value byte 0 | Value byte 1 |.....| Value byte m-1 | | Value byte 0 | Value byte 1 |.....| Value byte m-1 |
+----------------|----------------+.....+----------------+ +----------------|----------------+.....+----------------+
Where n is the length specified in the Tag length field and m is the Where n is the length specified in the Tag Length field and m is the
remaining octets in the Value field. They are related by (m = d - n number of remaining octets in the Value field. They are related by
- 2) where d is the length of the RDATA section. (m = d - n - 2) where d is the length of the RDATA section.
The fields are defined as follows: The fields are defined as follows:
Flags: One octet containing the following field: Flags: One octet containing the following field:
Bit 0, Issuer Critical Flag: If the value is set to '1', the Property Bit 0, Issuer Critical Flag: If the value is set to "1", the
is critical. A Certification Authority MUST NOT issue certificates Property is critical. A CA MUST NOT issue certificates for any
for any FQDN the Relevant RRSet for that FQDN contains a CAA critical FQDN if the Relevant RRset for that FQDN contains a CAA
Property for an unknown or unsupported Property Tag. critical Property for an unknown or unsupported Property Tag.
Note that according to the conventions set out in [RFC1035], bit 0 is Note that according to the conventions set out in [RFC1035], bit 0 is
the Most Significant Bit and bit 7 is the Least Significant Bit. the Most Significant Bit and bit 7 is the Least Significant Bit.
Thus, the Flags value 1 means that bit 7 is set while a value of 128 Thus, according to those conventions, the Flags value 1 means that
means that bit 0 is set according to this convention. bit 7 is set, while a value of 128 means that bit 0 is set.
All other bit positions are reserved for future use. All other bit positions are reserved for future use.
To ensure compatibility with future extensions to CAA, DNS records To ensure compatibility with future extensions to CAA, DNS records
compliant with this version of the CAA specification MUST clear (set compliant with this version of the CAA specification MUST clear (set
to "0") all reserved flags bits. Applications that interpret CAA to "0") all reserved flag bits. Applications that interpret CAA
records MUST ignore the value of all reserved flag bits. records MUST ignore the value of all reserved flag bits.
Tag Length: A single octet containing an unsigned integer specifying Tag Length: A single octet containing an unsigned integer specifying
the tag length in octets. The tag length MUST be at least 1. the tag length in octets. The tag length MUST be at least 1.
Tag: The Property identifier, a sequence of US-ASCII characters. Tag: The Property identifier -- a sequence of ASCII characters.
Tags MAY contain US-ASCII characters 'a' through 'z', 'A' through Tags MAY contain ASCII characters "a" through "z", "A" through "Z",
'Z', and the numbers 0 through 9. Tags MUST NOT contain any other and the numbers 0 through 9. Tags MUST NOT contain any other
characters. Matching of tags is case insensitive. characters. Matching of tags is case insensitive.
Tags submitted for registration by IANA MUST NOT contain any Tags submitted for registration by IANA MUST NOT contain any
characters other than the (lowercase) US-ASCII characters 'a' through characters other than the (lowercase) ASCII characters "a" through
'z' and the numbers 0 through 9. "z" and the numbers 0 through 9.
Value: A sequence of octets representing the Property Value. Value: A sequence of octets representing the Property Value.
Property Values are encoded as binary values and MAY employ sub- Property Values are encoded as binary values and MAY employ
formats. sub-formats.
The length of the value field is specified implicitly as the The length of the Value field is specified implicitly as the
remaining length of the enclosing RDATA section. remaining length of the enclosing RDATA section.
4.1.1. Canonical Presentation Format 4.1.1. Canonical Presentation Format
The canonical presentation format of the CAA record is: The canonical presentation format of the CAA record is:
CAA <flags> <tag> <value> CAA <flags> <tag> <value>
Where: Where:
Flags: Is an unsigned integer between 0 and 255. Flags: An unsigned integer between 0 and 255.
Tag: Is a non-zero-length sequence of US-ASCII letters and numbers in Tag: A non-zero-length sequence of ASCII letters and numbers in
lower case. lowercase.
Value: The value field, expressed as a contiguous set of characters Value: The Value field, expressed as either (1) a contiguous set of
without interior spaces, or as a quoted string. See the <character- characters without interior spaces or (2) a quoted string. See
string> format specified in [RFC1035], Section 5.1, but note that the the <character-string> format specified in [RFC1035], Section 5.1,
value field contains no length byte and is not limited to 255 but note that the Value field contains no length byte and is not
characters. limited to 255 characters.
4.2. CAA issue Property 4.2. CAA issue Property
If the issue Property Tag is present in the Relevant RRSet for a If the issue Property Tag is present in the Relevant RRset for an
Fully-Qualified Domain Name, it is a request that Issuers FQDN, it is a request that Issuers:
1. Perform CAA issue restriction processing for the FQDN, and 1. Perform CAA issue restriction processing for the FQDN, and
2. Grant authorization to issue certificates containing that FQDN to 2. Grant authorization to issue certificates containing that FQDN to
the holder of the issuer-domain-name or a party acting under the the holder of the issuer-domain-name or a party acting under the
explicit authority of the holder of the issuer-domain-name. explicit authority of the holder of the issuer-domain-name.
The CAA issue Property Value has the following sub-syntax (specified The CAA issue Property Value has the following sub-syntax (specified
in ABNF as per [RFC5234]). in ABNF as per [RFC5234]).
issue-value = *WSP [issuer-domain-name *WSP] [";" *WSP [parameters *WSP]] issue-value = *WSP [issuer-domain-name *WSP]
[";" *WSP [parameters *WSP]]
issuer-domain-name = label *("." label) issuer-domain-name = label *("." label)
label = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT)) label = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT))
parameters = (parameter *WSP ";" *WSP parameters) / parameter parameters = (parameter *WSP ";" *WSP parameters) / parameter
parameter = tag *WSP "=" *WSP value parameter = tag *WSP "=" *WSP value
tag = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT)) tag = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT))
value = *(%x21-3A / %x3C-7E) value = *(%x21-3A / %x3C-7E)
For consistency with other aspects of DNS administration, FQDN values For consistency with other aspects of DNS administration, FQDN values
are specified in letter-digit-hyphen Label (LDH-Label) form. are specified in letter-digit-hyphen Label (LDH-Label) form.
The following CAA record set requests that no certificates be issued The following CAA RRset requests that no certificates be issued for
for the FQDN 'certs.example.com' by any Issuer other than the FQDN "certs.example.com" by any Issuer other than ca1.example.net
ca1.example.net or ca2.example.org. or ca2.example.org.
certs.example.com CAA 0 issue "ca1.example.net" certs.example.com CAA 0 issue "ca1.example.net"
certs.example.com CAA 0 issue "ca2.example.org" certs.example.com CAA 0 issue "ca2.example.org"
Because the presence of an issue Property Tag in the Relevant RRSet Because the presence of an issue Property Tag in the Relevant RRset
for an FQDN restricts issuance, FQDN owners can use an issue Property for an FQDN restricts issuance, FQDN owners can use an issue Property
Tag with no issuer-domain-name to request no issuance. Tag with no issuer-domain-name to request no issuance.
For example, the following RRSet requests that no certificates be For example, the following RRset requests that no certificates be
issued for the FQDN 'nocerts.example.com' by any Issuer. issued for the FQDN "nocerts.example.com" by any Issuer.
nocerts.example.com CAA 0 issue ";" nocerts.example.com CAA 0 issue ";"
An issue Property Tag where the issue-value does not match the ABNF An issue Property Tag where the issue-value does not match the ABNF
grammar MUST be treated the same as one specifying an empty issuer- grammar MUST be treated the same as one specifying an empty
domain-name. For example, the following malformed CAA RRSet forbids issuer-domain-name. For example, the following malformed CAA RRset
issuance: forbids issuance:
malformed.example.com CAA 0 issue "%%%%%" malformed.example.com CAA 0 issue "%%%%%"
CAA authorizations are additive; thus, the result of specifying both CAA authorizations are additive; thus, the result of specifying both
an empty issuer-domain-name and a non-empty issuer-domain-name is the an empty issuer-domain-name and a non-empty issuer-domain-name is the
same as specifying just the non-empty issuer-domain-name. same as specifying just the non-empty issuer-domain-name.
An Issuer MAY choose to specify parameters that further constrain the An Issuer MAY choose to specify parameters that further constrain the
issue of certificates by that Issuer, for example, specifying that issue of certificates by that Issuer -- for example, specifying that
certificates are to be subject to specific validation polices, billed certificates are to be subject to specific validation policies,
to certain accounts, or issued under specific trust anchors. billed to certain accounts, or issued under specific trust anchors.
For example, if ca1.example.net has requested its customer For example, if ca1.example.net has requested that its customer
accountable.example.com to specify their account number "230123" in account.example.com specify their account number "230123" in each of
each of the customer's CAA records using the (CA-defined) "account" the customer's CAA records using the (CA-defined) "account"
parameter, it would look like this: parameter, it would look like this:
accountable.example.com CAA 0 issue "ca1.example.net; account=230123" account.example.com CAA 0 issue "ca1.example.net; account=230123"
The semantics of parameters to the issue Property Tag are determined The semantics of parameters to the issue Property Tag are determined
by the Issuer alone. by the Issuer alone.
4.3. CAA issuewild Property 4.3. CAA issuewild Property
The issuewild Property Tag has the same syntax and semantics as the The issuewild Property Tag has the same syntax and semantics as the
issue Property Tag except that it only grants authorization to issue issue Property Tag except that it only grants authorization to issue
certificates that specify a Wildcard Domain Name and issuewild certificates that specify a Wildcard Domain Name and each issuewild
properties take precedence over issue properties when specified. Property takes precedence over each issue Property when specified.
Specifically: Specifically:
issuewild properties MUST be ignored when processing a request for a Each issuewild Property MUST be ignored when processing a request for
Fully-Qualified Domain Name that is not a Wildcard Domain Name. an FQDN that is not a Wildcard Domain Name.
If at least one issuewild Property is specified in the Relevant RRSet If at least one issuewild Property is specified in the Relevant RRset
for a Wildcard Domain Name, all issue properties MUST be ignored when for a Wildcard Domain Name, each issue Property MUST be ignored when
processing a request for that Wildcard Domain Name. processing a request for that Wildcard Domain Name.
For example, the following RRSet requests that _only_ ca1.example.net For example, the following RRset requests that _only_ ca1.example.net
issue certificates for "wild.example.com" or "sub.wild.example.com", issue certificates for "wild.example.com" or "sub.wild.example.com",
and that _only_ ca2.example.org issue certificates for and that _only_ ca2.example.org issue certificates for
"*.wild.example.com" or "*.sub.wild.example.com). Note that this "*.wild.example.com" or "*.sub.wild.example.com". Note that this
presumes there are no CAA RRs for sub.wild.example.com. presumes that there are no CAA RRs for sub.wild.example.com.
wild.example.com CAA 0 issue "ca1.example.net" wild.example.com CAA 0 issue "ca1.example.net"
wild.example.com CAA 0 issuewild "ca2.example.org" wild.example.com CAA 0 issuewild "ca2.example.org"
The following RRSet requests that _only_ ca1.example.net issue The following RRset requests that _only_ ca1.example.net issue
certificates for "wild2.example.com", "*.wild2.example.com" or certificates for "wild2.example.com", "*.wild2.example.com", or
"*.sub.wild2.example.com". "*.sub.wild2.example.com".
wild2.example.com CAA 0 issue "ca1.example.net" wild2.example.com CAA 0 issue "ca1.example.net"
The following RRSet requests that _only_ ca2.example.org issue The following RRset requests that _only_ ca2.example.org issue
certificates for "*.wild3.example.com" or "*.sub.wild3.example.com". certificates for "*.wild3.example.com" or "*.sub.wild3.example.com".
It does not permit any Issuer to issue for "wild3.example.com" or It does not permit any Issuer to issue for "wild3.example.com" or
"sub.wild3.example.com". "sub.wild3.example.com".
wild3.example.com CAA 0 issuewild "ca2.example.org" wild3.example.com CAA 0 issuewild "ca2.example.org"
wild3.example.com CAA 0 issue ";" wild3.example.com CAA 0 issue ";"
The following RRSet requests that _only_ ca2.example.org issue The following RRset requests that _only_ ca2.example.org issue
certificates for "*.wild3.example.com" or "*.sub.wild3.example.com". certificates for "*.wild3.example.com" or "*.sub.wild3.example.com".
It permits any Issuer to issue for "wild3.example.com" or It permits any Issuer to issue for "wild3.example.com" or
"sub.wild3.example.com". "sub.wild3.example.com".
wild3.example.com CAA 0 issuewild "ca2.example.org" wild3.example.com CAA 0 issuewild "ca2.example.org"
4.4. CAA iodef Property 4.4. CAA iodef Property
The iodef Property specifies a means of reporting certificate issue The iodef Property specifies a means of reporting certificate issue
requests or cases of certificate issue for domains for which the requests or cases of certificate issue for domains for which the
Property appears in the Relevant RRSet, when those requests or Property appears in the Relevant RRset, when those requests or
issuances violate the security policy of the Issuer or the FQDN issuances violate the security policy of the Issuer or the FQDN
holder. holder.
The Incident Object Description Exchange Format (IODEF) [RFC7970] is The Incident Object Description Exchange Format (IODEF) [RFC7970] is
used to present the incident report in machine-readable form. used to present the incident report in machine-readable form.
The iodef Property Tag takes a URL as its Property Value. The URL The iodef Property Tag takes a URL as its Property Value. The URL
scheme type determines the method used for reporting: scheme type determines the method used for reporting:
mailto: The IODEF incident report is reported as a MIME email mailto: The IODEF report is reported as a MIME email attachment to
attachment to an SMTP email that is submitted to the mail address an SMTP email that is submitted to the mail address specified.
specified. The mail message sent SHOULD contain a brief text message The mail message sent SHOULD contain a brief text message to alert
to alert the recipient to the nature of the attachment. the recipient to the nature of the attachment.
http or https: The IODEF report is submitted as a Web service request http or https: The IODEF report is submitted as a web service
to the HTTP address specified using the protocol specified in request to the HTTP address specified using the protocol specified
[RFC6546]. in [RFC6546].
These are the only supported URL schemes. These are the only supported URL schemes.
The following RRSet specifies that reports may be made by means of The following RRset specifies that reports may be made by means of
email with the IODEF data as an attachment, a Web service [RFC6546], email with the IODEF data as an attachment, a web service [RFC6546],
or both: or both:
report.example.com CAA 0 issue "ca1.example.net" report.example.com CAA 0 issue "ca1.example.net"
report.example.com CAA 0 iodef "mailto:security@example.com" report.example.com CAA 0 iodef "mailto:security@example.com"
report.example.com CAA 0 iodef "http://iodef.example.com/" report.example.com CAA 0 iodef "https://iodef.example.com/"
4.5. Critical Flag 4.5. Critical Flag
The critical flag is intended to permit future versions of CAA to The critical flag is intended to permit future versions of CAA to
introduce new semantics that MUST be understood for correct introduce new semantics that MUST be understood for correct
processing of the record, preventing conforming CAs that do not processing of the record, preventing conforming CAs that do not
recognize the new semantics from issuing certificates for the recognize the new semantics from issuing certificates for the
indicated FQDNs. indicated FQDNs.
In the following example, the Property with a Property Tag of 'tbs' In the following example, the Property with a Property Tag of "tbs"
is flagged as critical. Neither the ca1.example.net CA nor any other is flagged as critical. Neither the ca1.example.net CA nor any other
Issuer is authorized to issue for "new.example.com" (or any other Issuer is authorized to issue for "new.example.com" (or any other
domains for which this is the Relevant RRSet) unless the Issuer has domains for which this is the Relevant RRset) unless the Issuer has
implemented the processing rules for the 'tbs' Property Tag. implemented the processing rules for the "tbs" Property Tag.
new.example.com CAA 0 issue "ca1.example.net" new.example.com CAA 0 issue "ca1.example.net"
new.example.com CAA 128 tbs "Unknown" new.example.com CAA 128 tbs "Unknown"
5. Security Considerations 5. Security Considerations
CAA records assert a security policy that the holder of an FDQN CAA records assert a security policy that the holder of an FQDN
wishes to be observed by Issuers. The effectiveness of CAA records wishes to be observed by Issuers. The effectiveness of CAA records
as an access control mechanism is thus dependent on observance of CAA as an access control mechanism is thus dependent on observance of CAA
constraints by Issuers. constraints by Issuers.
The objective of the CAA record properties described in this document The objective of the CAA record properties described in this document
is to reduce the risk of certificate mis-issue rather than avoid is to reduce the risk of certificate mis-issue rather than avoid
reliance on a certificate that has been mis-issued. DANE [RFC6698] reliance on a certificate that has been mis-issued. DANE [RFC6698]
describes a mechanism for avoiding reliance on mis-issued describes a mechanism for avoiding reliance on mis-issued
certificates. certificates.
5.1. Use of DNS Security 5.1. Use of DNS Security
Use of DNSSEC to authenticate CAA RRs is strongly RECOMMENDED but not The use of DNSSEC to authenticate CAA RRs is strongly RECOMMENDED but
required. An Issuer MUST NOT issue certificates if doing so would not required. An Issuer MUST NOT issue certificates if doing so
conflict with the Relevant RRSet, irrespective of whether the would conflict with the Relevant RRset, irrespective of whether the
corresponding DNS records are signed. corresponding DNS records are signed.
DNSSEC provides a proof of non-existence for both DNS Fully-Qualified DNSSEC provides a proof of non-existence for both DNS FQDNs and
Domain Names and RRSets within FQDNs. DNSSEC verification thus RRsets within FQDNs. DNSSEC verification thus enables an Issuer to
enables an Issuer to determine if the answer to a CAA record query is determine whether the answer to a CAA record query (1) is empty
empty because the RRSet is empty or if it is non-empty but the because the RRset is empty or (2) is non-empty but the response has
response has been suppressed. been suppressed.
Use of DNSSEC allows an Issuer to acquire and archive a proof that The use of DNSSEC allows an Issuer to acquire and archive a proof
they were authorized to issue certificates for the FQDN. that they were authorized to issue certificates for the FQDN.
Verification of such archives may be an audit requirement to verify Verification of such archives may be an audit requirement to verify
CAA record processing compliance. Publication of such archives may CAA record-processing compliance. Publication of such archives may
be a transparency requirement to verify CAA record processing be a transparency requirement to verify CAA record-processing
compliance. compliance.
5.2. Non-Compliance by Certification Authority 5.2. Non-compliance by Certification Authority
CAA records offer CAs a cost-effective means of mitigating the risk CAA records offer CAs a cost-effective means of mitigating the risk
of certificate mis-issue: the cost of implementing CAA checks is very of certificate mis-issue: the cost of implementing CAA checks is very
small and the potential costs of a mis-issue event include the small, and the potential costs of a mis-issue event include the
removal of an embedded trust anchor. removal of an embedded trust anchor.
5.3. Mis-Issue by Authorized Certification Authority 5.3. Mis-Issue by Authorized Certification Authority
Use of CAA records does not prevent mis-issue by an authorized The use of CAA records does not prevent mis-issue by an authorized
Certification Authority, i.e., a CA that is authorized to issue CA, i.e., a CA that is authorized to issue certificates for the FQDN
certificates for the FQDN in question by CAA records. in question by CAA records.
FQDN holders SHOULD verify that the CAs they authorize to issue FQDN holders SHOULD verify that the CAs they authorize to issue
certificates for their FQDNs employ appropriate controls to ensure certificates for their FQDNs employ appropriate controls to ensure
that certificates are issued only to authorized parties within their that certificates are issued only to authorized parties within their
organization. organization.
Such controls are most appropriately determined by the FQDN holder Such controls are most appropriately determined by the FQDN holder
and the authorized CA(s) directly and are thus out of scope of this and the authorized CA(s) directly and are thus outside the scope of
document. this document.
5.4. Suppression or Spoofing of CAA Records 5.4. Suppression or Spoofing of CAA Records
Suppression of the CAA record or insertion of a bogus CAA record Suppression of a CAA record or insertion of a bogus CAA record could
could enable an attacker to obtain a certificate from an Issuer that enable an attacker to obtain a certificate from an Issuer that was
was not authorized to issue for an affected FQDN. not authorized to issue for an affected FQDN.
Where possible, Issuers SHOULD perform DNSSEC validation to detect Where possible, Issuers SHOULD perform DNSSEC validation to detect
missing or modified CAA record sets. missing or modified CAA RRsets.
In cases where DNSSEC is not deployed for a corresponding FQDN, an In cases where DNSSEC is not deployed for a corresponding FQDN, an
Issuer SHOULD attempt to mitigate this risk by employing appropriate Issuer SHOULD attempt to mitigate this risk by employing appropriate
DNS security controls. For example, all portions of the DNS lookup DNS security controls. For example, all portions of the DNS lookup
process SHOULD be performed against the authoritative name server. process SHOULD be performed against the authoritative nameserver.
Data cached by third parties MUST NOT be relied on as the sole source Data cached by third parties MUST NOT be relied on as the sole source
of DNS CAA information but MAY be used to support additional anti- of DNS CAA information but MAY be used to support additional
spoofing or anti-suppression controls. anti-spoofing or anti-suppression controls.
5.5. Denial of Service 5.5. Denial of Service
Introduction of a malformed or malicious CAA RR could in theory Introduction of a malformed or malicious CAA RR could, in theory,
enable a Denial-of-Service (DoS) attack. This could happen by enable a Denial-of-Service (DoS) attack. This could happen by
modification of authoritative DNS records or by spoofing inflight DNS modification of authoritative DNS records or by spoofing inflight DNS
responses. responses.
This specific threat is not considered to add significantly to the This specific threat is not considered to add significantly to the
risk of running an insecure DNS service. risk of running an insecure DNS service.
An attacker could, in principle, perform a DoS attack against an An attacker could, in principle, perform a DoS attack against an
Issuer by requesting a certificate with a maliciously long DNS name. Issuer by requesting a certificate with a maliciously long DNS name.
In practice, the DNS protocol imposes a maximum name length and CAA In practice, the DNS protocol imposes a maximum name length, and CAA
processing does not exacerbate the existing need to mitigate DoS processing does not exacerbate the existing need to mitigate DoS
attacks to any meaningful degree. attacks to any meaningful degree.
5.6. Abuse of the Critical Flag 5.6. Abuse of the Critical Flag
A Certification Authority could make use of the critical flag to A CA could make use of the critical flag to trick customers into
trick customers into publishing records that prevent competing publishing records that prevent competing CAs from issuing
Certification Authorities from issuing certificates even though the certificates even though the customer intends to authorize multiple
customer intends to authorize multiple providers. This could happen providers. This could happen if the customers were setting CAA
if the customers were setting CAA records based on data provided by records based on data provided by the CA rather than generating those
the CA rather than generating those records themselves. records themselves.
In practice, such an attack would be of minimal effect since any In practice, such an attack would be of minimal effect, since any
competent competitor that found itself unable to issue certificates competent competitor that found itself unable to issue certificates
due to lack of support for a Property marked critical should due to lack of support for a Property marked critical should
investigate the cause and report the reason to the customer. The investigate the cause and report the reason to the customer. The
customer will thus discover that they had been deceived. customer will thus discover that they had been deceived.
6. Deployment Considerations 6. Deployment Considerations
A CA implementing CAA may find that they receive errors looking up A CA implementing CAA may find that they receive errors looking up
CAA records. The following are some common causes of such errors, so CAA records. The following are some common causes of such errors, so
that CAs may provide guidance to their subscribers on fixing the that CAs may provide guidance to their subscribers on fixing the
underlying problems. underlying problems.
6.1. Blocked Queries or Responses 6.1. Blocked Queries or Responses
Some middleboxes, in particular anti-DDoS appliances, may be Some middleboxes -- in particular, anti-DDoS appliances -- may be
configured to drop DNS packets of unknown types, or may start configured to drop DNS packets of unknown types, or they may start
dropping such packets when they consider themselves under attack. dropping such packets when they consider themselves under attack.
This generally manifests as a timed-out DNS query, or a SERVFAIL at a This generally manifests as a timed-out DNS query or as a SERVFAIL at
local recursive resolver. a local recursive resolver.
6.2. Rejected Queries and Malformed Responses 6.2. Rejected Queries and Malformed Responses
Some authoritative nameservers respond with REJECTED or NOTIMP when Some authoritative nameservers respond with REJECTED or NOTIMP when
queried for a Resource Record type they do not recognize. At least queried for an RR type they do not recognize. At least one
one authoritative resolver produces a malformed response (with the QR authoritative resolver produces a malformed response (with the QR
bit set to 0) when queried for unknown Resource Record types. Per (Query/Response) bit set to "0") when queried for unknown RR types.
RFC 1034, the correct response for unknown Resource Record types is Per [RFC1034], the correct response RCODE for unknown RR types is 0
NOERROR. ("No error condition").
6.3. Delegation to Private Nameservers 6.3. Delegation to Private Nameservers
Some FQDN administrators make the contents of a subdomain Some FQDN administrators make the contents of a subdomain
unresolvable on the public Internet by delegating that subdomain to a unresolvable on the public Internet by delegating that subdomain to a
nameserver whose IP address is private. A CA processing CAA records nameserver whose IP address is private. A CA processing CAA records
for such subdomains will receive SERVFAIL from its recursive for such subdomains will receive SERVFAIL from its recursive
resolver. The CA MAY interpret that as preventing issuance. FQDN resolver. The CA MAY interpret that as preventing issuance. FQDN
administrators wishing to issue certificates for private FQDNs SHOULD administrators wishing to issue certificates for private FQDNs SHOULD
use split-horizon DNS with a publicly available nameserver, so that use split-horizon DNS with a publicly available nameserver, so that
CAs can receive a valid, empty CAA response for those FQDNs. CAs can receive a valid, empty CAA response for those FQDNs.
6.4. Bogus DNSSEC Responses 6.4. Bogus DNSSEC Responses
Queries for CAA Resource Records are different from most DNS RR Queries for CAA RRs are different from most DNS RR types, because a
types, because a signed, empty response to a query for CAA RRs is signed, empty response to a query for CAA RRs is meaningfully
meaningfully different from a bogus response. A signed, empty different from a bogus response. A signed, empty response indicates
response indicates that there is definitely no CAA policy set at a that there is definitely no CAA policy set at a given label. A bogus
given label. A bogus response may mean either a misconfigured zone, response may mean either a misconfigured zone or an attacker
or an attacker tampering with records. DNSSEC implementations may tampering with records. DNSSEC implementations may have bugs with
have bugs with signatures on empty responses that go unnoticed, signatures on empty responses that go unnoticed, because for more
because for more common Resource Record types like A and AAAA, the common RR types like A and AAAA, the difference to an end user
difference to an end user between empty and bogus is irrelevant; they between empty and bogus is irrelevant; they both mean a site is
both mean a site is unavailable. unavailable.
In particular, at least two authoritative resolvers that implement In particular, at least two authoritative resolvers that implement
live signing had bugs when returning empty Resource Record sets for live signing had bugs when returning empty RRsets for DNSSEC-signed
DNSSEC-signed zones, in combination with mixed-case queries. Mixed- zones, in combination with mixed-case queries. Mixed-case queries,
case queries, also known as DNS 0x20, are used by some recursive also known as DNS 0x20, are used by some recursive resolvers to
resolvers to increase resilience against DNS poisoning attacks. increase resilience against DNS poisoning attacks. DNSSEC-signing
DNSSEC-signing authoritative resolvers are expected to copy the same authoritative resolvers are expected to copy the same capitalization
capitalization from the query into their ANSWER section, but sign the from the query into their ANSWER section but also to sign the
response as if they had used all lowercase. In particular, PowerDNS response as if they had used all lowercase. In particular, PowerDNS
versions prior to 4.0.4 had this bug. versions prior to 4.0.4 had this bug.
7. Differences versus RFC6844 7. Differences from RFC 6844
This document obsoletes RFC6844. The most important change is to the This document obsoletes [RFC6844]. The most important change is to
Certification Authority Processing section. RFC6844 specified an the "Certification Authority Processing" section (now called
algorithm that performed DNS tree-climbing not only on the FQDN being "Relevant Resource Record Set" (Section 3), as noted below).
processed, but also on all CNAMEs and DNAMEs encountered along the [RFC6844] specified an algorithm that performed DNS tree-climbing not
way. This made the processing algorithm very inefficient when used only on the FQDN being processed but also on all CNAMEs and DNAMEs
on FQDNs that utilize many CNAMEs, and would have made it difficult encountered along the way. This made the processing algorithm very
for hosting providers to set CAA policies on their own FQDNs without inefficient when used on FQDNs that utilize many CNAMEs and would
setting potentially unwanted CAA policies on their customers' FQDNs. have made it difficult for hosting providers to set CAA policies on
This document specifies a simplified processing algorithm that only their own FQDNs without setting potentially unwanted CAA policies on
performs tree climbing on the FQDN being processed, and leaves their customers' FQDNs. This document specifies a simplified
processing of CNAMEs and DNAMEs up to the CA's recursive resolver. processing algorithm that only performs tree-climbing on the FQDN
being processed, and it leaves the processing of CNAMEs and DNAMEs up
to the CA's recursive resolver.
This document also includes a "Deployment Considerations" section This document also includes a "Deployment Considerations" section
detailing experience gained with practical deployment of CAA (Section 6) detailing experience gained with practical deployment of
enforcement among CAs in the WebPKI. CAA enforcement among CAs in the WebPKI.
This document clarifies the ABNF grammar for the issue and issuewild This document clarifies the ABNF grammar for the issue and issuewild
tags and resolves some inconsistencies with the document text. In tags and resolves some inconsistencies with the document text. In
particular, it specifies that parameters are separated with particular, it specifies that parameters are separated with
semicolons. It also allows hyphens in Property Tags. semicolons. It also allows hyphens in Property Tags.
This document also clarifies processing of a CAA RRset that is not This document also clarifies the processing of a CAA RRset that is
empty, but contains no issue or issuewild tags. not empty but that does not contain any issue or issuewild tags.
This document removes the section titled "The CAA RR Type," merging This document removes the section titled "The CAA RR Type," merging
it with "Mechanism" because the definitions were mainly duplicates. it with "Mechanism" (Section 4) because the definitions were mainly
It moves the "Use of DNS Security" section into Security duplicates. It moves the "Use of DNS Security" section into Security
Considerations. It renames "Certification Authority Processing" to Considerations (Section 5). It renames "Certification Authority
"Relevant Resource Record Set," and emphasizes the use of that term Processing" to "Relevant Resource Record Set" (Section 3) and
to more clearly define which domains are affected by a given RRset. emphasizes the use of that term to more clearly define which domains
are affected by a given RRset.
8. IANA Considerations 8. IANA Considerations
IANA is requested to add [[[ RFC Editor: Please replace with this RFC IANA has added this document as a reference for the "Certification
]]] as a reference for the Certification Authority Restriction Flags Authority Restriction Flags" and "Certification Authority Restriction
and Certification Authority Restriction Properties registries, and Properties" registries and updated references to [RFC6844] within
update references to [RFC6844] within those registries to refer to those registries to refer instead to this document. IANA has also
[[[ RFC Editor: Please replace with this RFC ]]]. IANA is also updated the CAA TYPE in the "Resource Record (RR) TYPEs" subregistry
requested to update the CAA TYPE in the DNS Parameters registry with of the "Domain Name System (DNS) Parameters" registry with a
a reference to [[[ RFC Editor: Please replace with this RFC ]]]. reference to this document.
9. Acknowledgements
The authors would like to thank the following people who contributed
to the design and documentation of this work item: Corey Bonnell,
Chris Evans, Stephen Farrell, Jeff Hodges, Paul Hoffman, Tim
Hollebeek, Stephen Kent, Adam Langley, Ben Laurie, James Manger,
Chris Palmer, Scott Schmit, Sean Turner, and Ben Wilson.
10. References 9. References
10.1. Normative References 9.1. Normative References
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", [RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987,
<https://www.rfc-editor.org/info/rfc1034>. <https://www.rfc-editor.org/info/rfc1034>.
[RFC1035] Mockapetris, P., "Domain names - implementation and [RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
November 1987, <https://www.rfc-editor.org/info/rfc1035>. November 1987, <https://www.rfc-editor.org/info/rfc1035>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
skipping to change at page 17, line 39 skipping to change at line 786
<https://www.rfc-editor.org/info/rfc6844>. <https://www.rfc-editor.org/info/rfc6844>.
[RFC7970] Danyliw, R., "The Incident Object Description Exchange [RFC7970] Danyliw, R., "The Incident Object Description Exchange
Format Version 2", RFC 7970, DOI 10.17487/RFC7970, Format Version 2", RFC 7970, DOI 10.17487/RFC7970,
November 2016, <https://www.rfc-editor.org/info/rfc7970>. November 2016, <https://www.rfc-editor.org/info/rfc7970>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
10.2. Informative References 9.2. Informative References
[RFC3647] Chokhani, S., Ford, W., Sabett, R., Merrill, C., and S. [RFC3647] Chokhani, S., Ford, W., Sabett, R., Merrill, C., and S.
Wu, "Internet X.509 Public Key Infrastructure Certificate Wu, "Internet X.509 Public Key Infrastructure Certificate
Policy and Certification Practices Framework", RFC 3647, Policy and Certification Practices Framework", RFC 3647,
DOI 10.17487/RFC3647, November 2003, DOI 10.17487/RFC3647, November 2003,
<https://www.rfc-editor.org/info/rfc3647>. <https://www.rfc-editor.org/info/rfc3647>.
Acknowledgements
The authors would like to thank the following people who contributed
to the design and documentation of this work item: Corey Bonnell,
Chris Evans, Stephen Farrell, Jeff Hodges, Paul Hoffman, Tim
Hollebeek, Stephen Kent, Adam Langley, Ben Laurie, James Manger,
Chris Palmer, Scott Schmit, Sean Turner, and Ben Wilson.
Authors' Addresses Authors' Addresses
Phillip Hallam-Baker Phillip Hallam-Baker
Venture Cryptography
Email: phill@hallambaker.com Email: phill@hallambaker.com
Rob Stradling Rob Stradling
Sectigo Ltd. Sectigo Ltd.
Email: rob@sectigo.com Email: rob@sectigo.com
Jacob Hoffman-Andrews Jacob Hoffman-Andrews
Let's Encrypt Let's Encrypt
Email: jsha@letsencrypt.org Email: jsha@letsencrypt.org
 End of changes. 121 change blocks. 
341 lines changed or deleted 338 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/