DNS Certification Authority Authorization (CAA) Resource RecordVenture Cryptographyphill@hallambaker.comSectigo Ltd.rob@sectigo.comLet's Encryptjsha@letsencrypt.orgcertificatecapkiissueissuancewildcardThe Certification Authority Authorization (CAA) DNS Resource Record
allows a DNS domain name holder to specify one or more Certification
Authorities (CAs) authorized to issue certificates for that domain name.
CAA Resource Records allow a public CA to
implement additional controls to reduce the risk of unintended
certificate mis-issue. This document defines the syntax of the CAA
record and rules for processing CAA records by CAs.This document obsoletes RFC 6844.Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by
the Internet Engineering Steering Group (IESG). Further
information on Internet Standards is available in Section 2 of
RFC 7841.
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
.
Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
() in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Table of Contents
. Introduction
. Definitions
. Requirements Language
. Defined Terms
. Relevant Resource Record Set
. Mechanism
. Syntax
. Canonical Presentation Format
. CAA issue Property
. CAA issuewild Property
. CAA iodef Property
. Critical Flag
. Security Considerations
. Use of DNS Security
. Non-compliance by Certification Authority
. Mis-Issue by Authorized Certification Authority
. Suppression or Spoofing of CAA Records
. Denial of Service
. Abuse of the Critical Flag
. Deployment Considerations
. Blocked Queries or Responses
. Rejected Queries and Malformed Responses
. Delegation to Private Nameservers
. Bogus DNSSEC Responses
. Differences from RFC 6844
. IANA Considerations
. References
. Normative References
. Informative References
Acknowledgements
Authors' Addresses
IntroductionThe Certification Authority Authorization (CAA) DNS Resource Record
allows a DNS domain name holder to specify the Certification
Authorities (CAs) authorized to issue certificates for that domain name.
Publication of CAA Resource Records allows a public CA to implement additional controls to reduce the risk of
unintended certificate mis-issue.Like the TLSA record defined in DNS-Based Authentication of Named
Entities (DANE) , CAA records are used as a part of a
mechanism for checking PKIX certificate data. The distinction
between CAA and TLSA is that CAA records specify an
authorization control to be performed by a CA before
issuing a certificate and TLSA records specify a verification
control to be performed by a Relying Party after the certificate is
issued.
Conformance with a published CAA record is a necessary, but not
sufficient, condition for the issuance of a certificate.Criteria for the inclusion of embedded trust anchor certificates in
applications are outside the scope of this document. Typically, such
criteria require the CA to publish a Certification Practices Statement
(CPS) that specifies how the requirements of the Certificate Policy
(CP) are achieved. It is also common for a CA to engage an
independent third-party auditor to prepare an annual audit statement
of its performance against its CPS.A set of CAA records describes only current grants of authority to
issue certificates for the corresponding DNS domain name. Since
certificates are valid for a period of time, it is possible
that a certificate that is not conformant with the CAA records
currently published was conformant with the CAA records published at
the time that the certificate was issued. Relying Parties MUST NOT use CAA records as part of certificate validation.CAA records MAY be used by Certificate Evaluators as a possible
indicator of a security policy violation. Such use SHOULD take into
account the possibility that published CAA records changed between
the time a certificate was issued and the time at which the
certificate was observed by the Certificate Evaluator.DefinitionsRequirements LanguageThe key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",
"NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document
are to be interpreted as described in BCP 14
when,
and only when, they appear in all capitals, as shown here.Defined TermsThe following terms are used in this document:
Certificate:
An X.509 Certificate, as specified in .
Certificate Evaluator:
A party other than a Relying Party that
evaluates the trustworthiness of certificates issued by
Certification Authorities.
Certification Authority (CA):
An Issuer that issues certificates in
accordance with a specified Certificate Policy.
Certificate Policy (CP):
Specifies the criteria that a CA
undertakes to meet in its issue of certificates. See
.
Certification Practices Statement (CPS):
Specifies the means by
which the criteria of the CP are met. In most
cases, this will be the document against which the operations of
the CA are audited. See .
Domain Name:
The label assigned to a node in the Domain Name System.
Domain Name System (DNS):
The Internet naming system specified in
and .
DNS Security (DNSSEC):
Extensions to the DNS that provide
authentication services as specified in , ,
, , and
any revisions to these specifications.
Fully Qualified Domain Name (FQDN):
A domain name that includes the labels of all
superior nodes in the DNS.
Issuer:
An entity that issues certificates. See .
Property:
The tag-value 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.
Relevant Resource Record Set (Relevant RRset):
A set of CAA
Resource Records resulting
from applying the algorithm in to a specific FQDN or Wildcard Domain Name.
Relying Party:
A party that makes use of an application whose
operation depends on the use of a certificate for making a security
decision. See .
Resource Record (RR):
A particular entry in the DNS, including the
owner name, class, type, time to live, and data, as defined in
and .
Resource Record Set (RRset):
A set of RRs of a
particular owner name, class, and type. The time to live on all
RRs within an 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
character followed by a single "full stop" character ("*.") followed
by an FQDN.
Relevant Resource Record SetBefore issuing a certificate, a compliant CA MUST check for
publication of a Relevant RRset. If such an RRset
exists, a CA MUST NOT issue a certificate unless the CA
determines that either (1) the certificate request is consistent with
the applicable CAA RRset or (2) an exception specified
in the relevant CP or CPS applies. If the Relevant RRset for an FQDN
or Wildcard Domain Name contains no Property Tags that restrict issuance
(for instance, if it contains only iodef Property Tags or only Property
Tags unrecognized by the CA), CAA does not restrict issuance.A certificate request MAY specify more than one FQDN and MAY
specify Wildcard Domain Names. Issuers MUST verify authorization for all
the FQDNs and Wildcard Domain Names specified in the request.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 RRset is found.Given a request for a specific FQDN X or a request for a Wildcard Domain
Name *.X, the Relevant RRset RelevantCAASet(X) is determined as follows (in pseudocode):
Let CAA(X) be the RRset returned by performing a CAA record query for the
FQDN X, according to the lookup algorithm
specified in (in particular, chasing
aliases). Let Parent(X) be the FQDN produced by
removing the leftmost label of X.
RelevantCAASet(domain):
while domain is not ".":
if CAA(domain) is not Empty:
return CAA(domain)
domain = Parent(domain)
return Empty
For example, processing CAA for the FQDN "X.Y.Z" where there are
no CAA records at any level in the tree RelevantCAASet would have the
following steps:
Processing CAA for the FQDN "A.B.C" where there is a CAA record
"issue example.com" at "B.C" would terminate early upon finding the CAA
record:
CAA("A.B.C.") = Empty; domain = Parent("A.B.C.") = "B.C."
CAA("B.C.") = "issue example.com"
return "issue example.com" MechanismSyntaxA CAA RR contains a single Property consisting of a tag‑value
pair. An FQDN MAY have multiple CAA RRs associated with it, and a
given Property Tag MAY be specified more than once across those RRs.The RDATA section for a CAA RR contains one Property. A Property
consists of the following:
+0-1-2-3-4-5-6-7-|0-1-2-3-4-5-6-7-|
| Flags | Tag Length = n |
+----------------|----------------+...+---------------+
| Tag char 0 | Tag char 1 |...| Tag char n-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
number of remaining octets in the Value field. They are related by
(m = d - n - 2)
where d is the length of the RDATA section.The fields are defined as follows:
Flags:
One octet containing the following field:
Bit 0, Issuer Critical Flag:
If the value is set to "1", the
Property is critical. A CA MUST NOT issue
certificates for any FQDN if the Relevant RRset for
that FQDN contains a CAA critical
Property for an unknown or unsupported Property Tag.
Note that according to the conventions set out in , bit 0
is the Most Significant Bit and bit 7 is the Least Significant
Bit. Thus, according to those conventions, the Flags value 1 means that bit 7 is
set, while a value of 128 means that bit 0 is set.All other bit positions are reserved for future use.To ensure compatibility with future extensions to CAA, DNS records
compliant with this version of the CAA specification MUST clear
(set to "0") all reserved flag bits.
Applications that interpret
CAA records MUST ignore the value of all reserved flag bits.
Tag Length:
A single octet containing an unsigned integer specifying
the tag length in octets. The tag length MUST be at least 1.
Tag:
The Property identifier -- a sequence of ASCII characters.
Tags MAY contain ASCII characters "a" through "z", "A"
through "Z", and the numbers 0 through 9. Tags MUST NOT
contain any other characters. Matching of tags is case
insensitive.Tags submitted for registration by IANA MUST NOT contain any
characters other than the (lowercase) ASCII characters "a"
through "z" and the numbers 0 through 9.
Value:
A sequence of octets representing the Property Value.
Property Values are encoded as binary values and MAY employ
sub‑formats.
The length of the Value field is specified implicitly as the
remaining length of the enclosing RDATA section.Canonical Presentation FormatThe canonical presentation format of the CAA record is:
CAA <flags> <tag> <value>
Where:
Flags:
An unsigned integer between 0 and 255.
Tag:
A non-zero-length sequence of ASCII letters and numbers in lowercase.
Value:
The Value field, expressed as either (1) a contiguous set of characters
without interior spaces or (2) a quoted string. See the
<character-string> format specified in ,
but note that the Value field contains no length byte and is not
limited to 255 characters.
CAA issue PropertyIf the issue Property Tag is present in the Relevant RRset for an
FQDN, it is a request that Issuers:
Perform CAA issue restriction processing for the FQDN, and
Grant authorization to issue certificates containing that FQDN
to the holder of the issuer-domain-name
or a party acting under the explicit authority of the holder of the
issuer-domain-name.
The CAA issue Property Value has the following sub‑syntax (specified
in ABNF as per ).
issue-value = *WSP [issuer-domain-name *WSP]
[";" *WSP [parameters *WSP]]
issuer-domain-name = label *("." label)
label = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT))
parameters = (parameter *WSP ";" *WSP parameters) / parameter
parameter = tag *WSP "=" *WSP value
tag = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT))
value = *(%x21-3A / %x3C-7E)
For consistency with other aspects of DNS administration, FQDN
values are specified in letter-digit-hyphen Label (LDH-Label) form.The following CAA RRset requests that no
certificates be issued for the FQDN "certs.example.com" by any
Issuer other than ca1.example.net or ca2.example.org.
certs.example.com CAA 0 issue "ca1.example.net"
certs.example.com CAA 0 issue "ca2.example.org"
Because the presence of an issue Property Tag in the Relevant RRset
for an FQDN restricts issuance, FQDN owners can use an issue
Property Tag with no issuer-domain-name to request no issuance.For example, the following RRset requests that no
certificates be issued for the FQDN "nocerts.example.com" by any
Issuer.
nocerts.example.com CAA 0 issue ";"
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‑domain-name. For
example, the following malformed CAA RRset forbids issuance:
malformed.example.com CAA 0 issue "%%%%%"
CAA authorizations are additive; thus, the result of specifying both
an empty issuer-domain-name and a non-empty issuer-domain-name is the
same as specifying just the non-empty issuer-domain-name.An Issuer MAY choose to specify parameters that further
constrain the issue of certificates by that Issuer -- for example,
specifying that certificates are to be subject to specific validation
policies, billed to certain accounts, or issued under specific trust
anchors.For example, if ca1.example.net has requested that its customer
account.example.com specify their account number "230123" in each
of the customer's CAA records using the (CA-defined) "account" parameter,
it would look like this:
account.example.com CAA 0 issue "ca1.example.net; account=230123"
The semantics of parameters to the issue Property Tag are determined by
the Issuer alone.CAA issuewild PropertyThe issuewild Property Tag has the same syntax and semantics as the issue
Property Tag except that it only grants authorization to
issue certificates that specify a Wildcard Domain Name and each issuewild
Property takes precedence over each issue Property when specified.
Specifically:Each issuewild Property MUST be ignored when processing a request for
an FQDN that is not a Wildcard Domain Name.If at least one issuewild Property is specified in the Relevant
RRset for a Wildcard Domain Name, each issue Property MUST
be ignored when processing a request for that Wildcard Domain Name.For example, the following RRset requests that only
ca1.example.net issue certificates for "wild.example.com" or
"sub.wild.example.com", and that only ca2.example.org issue certificates for
"*.wild.example.com" or "*.sub.wild.example.com". Note that this 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 issuewild "ca2.example.org"
The following RRset requests that only ca1.example.net issue
certificates for "wild2.example.com", "*.wild2.example.com", or
"*.sub.wild2.example.com".
wild2.example.com CAA 0 issue "ca1.example.net"
The following RRset requests that only ca2.example.org issue
certificates for "*.wild3.example.com" or "*.sub.wild3.example.com". It
does not permit any Issuer to issue for "wild3.example.com" or
"sub.wild3.example.com".
wild3.example.com CAA 0 issuewild "ca2.example.org"
wild3.example.com CAA 0 issue ";"
The following RRset requests that only ca2.example.org issue
certificates for "*.wild3.example.com" or "*.sub.wild3.example.com". It
permits any Issuer to issue for "wild3.example.com" or "sub.wild3.example.com".
wild3.example.com CAA 0 issuewild "ca2.example.org"
CAA iodef PropertyThe iodef Property specifies a means of reporting certificate issue
requests or cases of certificate issue for domains for which the Property
appears in the Relevant RRset, when those requests or issuances
violate the security policy of the Issuer or the FQDN holder.The Incident Object Description Exchange Format (IODEF) is
used to present the incident report in machine-readable form.The iodef Property Tag takes a URL as its Property Value. The URL scheme type
determines the method used for reporting:
mailto:
The IODEF report is reported as a MIME email
attachment to an SMTP email that is submitted to the mail address
specified. The mail message sent SHOULD contain a brief text
message to alert the recipient to the nature of the attachment.
http or https:
The IODEF report is submitted as a web service
request to the HTTP address specified using the protocol specified
in .
These are the only supported URL schemes.The following RRset specifies
that reports may be made by means of email with the IODEF data as an
attachment, a web service , or both:
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 "https://iodef.example.com/"
Critical FlagThe critical flag is intended to permit future versions of CAA to
introduce new semantics that MUST be understood for correct
processing of the record, preventing conforming CAs that do not
recognize the new semantics from issuing certificates for the
indicated FQDNs.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 Issuer is authorized to
issue for "new.example.com" (or any other domains for which this is
the Relevant RRset) unless the Issuer has implemented the
processing rules for the "tbs" Property Tag.
new.example.com CAA 0 issue "ca1.example.net"
new.example.com CAA 128 tbs "Unknown"
Security ConsiderationsCAA records assert a security policy that the holder of an FQDN
wishes to be observed by Issuers. The effectiveness of
CAA records as an access control mechanism is thus dependent on
observance of CAA constraints by Issuers.The objective of the CAA record properties described in this document
is to reduce the risk of certificate mis-issue rather than avoid
reliance on a certificate that has been mis-issued. DANE
describes a mechanism for avoiding reliance on mis-issued
certificates.Use of DNS SecurityThe use of DNSSEC to authenticate CAA RRs is strongly RECOMMENDED but not
required. An Issuer MUST NOT issue certificates if doing so would
conflict with the Relevant RRset, irrespective of
whether the corresponding DNS records are signed.DNSSEC provides a proof of non-existence for both DNS FQDNs and
RRsets within FQDNs. DNSSEC verification thus enables an Issuer to
determine whether the answer to a CAA record query (1) is empty because
the RRset is empty or (2) is non-empty but the response has been
suppressed.The use of DNSSEC allows an Issuer to acquire and archive a proof that
they were authorized to issue certificates for the FQDN.
Verification of such archives may be an audit requirement to verify
CAA record-processing compliance. Publication of such archives may
be a transparency requirement to verify CAA record-processing
compliance.Non-compliance by Certification AuthorityCAA records offer CAs a cost-effective means of mitigating the risk
of certificate mis-issue: the cost of implementing CAA checks is very
small, and the potential costs of a mis-issue event include the
removal of an embedded trust anchor.Mis-Issue by Authorized Certification AuthorityThe use of CAA records does not prevent mis-issue by an authorized
CA, i.e., a CA that is authorized to issue
certificates for the FQDN in question by CAA records.FQDN holders SHOULD verify that the CAs they authorize to
issue certificates for their FQDNs employ appropriate controls to
ensure that certificates are issued only to authorized parties within
their organization.Such controls are most appropriately determined by the FQDN
holder and the authorized CA(s) directly and are thus outside the scope of
this document.Suppression or Spoofing of CAA RecordsSuppression of a CAA record or insertion of a bogus CAA record
could enable an attacker to obtain a certificate from an Issuer that
was not authorized to issue for an affected FQDN.Where possible, Issuers SHOULD perform DNSSEC validation to detect
missing or modified CAA RRsets.In cases where DNSSEC is not deployed for a corresponding FQDN, an
Issuer SHOULD attempt to mitigate this risk by employing appropriate
DNS security controls. For example, all portions of the DNS lookup
process SHOULD be performed against the authoritative nameserver.
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‑spoofing or anti-suppression controls.Denial of ServiceIntroduction of a malformed or malicious CAA RR could, in theory,
enable a Denial-of-Service (DoS) attack. This could happen by modification of
authoritative DNS records or by spoofing inflight DNS responses.This specific threat is not considered to add significantly to the
risk of running an insecure DNS service.An attacker could, in principle, perform a DoS attack against an
Issuer by requesting a certificate with a maliciously long DNS name.
In practice, the DNS protocol imposes a maximum name length, and CAA
processing does not exacerbate the existing need to mitigate DoS
attacks to any meaningful degree.Abuse of the Critical FlagA CA could make use of the critical flag to
trick customers into publishing records that prevent competing CAs
from issuing certificates even though the
customer intends to authorize multiple providers. This could happen if the
customers were setting CAA records based on data provided by the CA rather than
generating those records themselves.In practice, such an attack would be of minimal effect, since any
competent competitor that found itself unable to issue certificates
due to lack of support for a Property marked critical should
investigate the cause and report the reason to the customer. The
customer will thus discover that they had been deceived.Deployment ConsiderationsA CA implementing CAA may find that they receive errors looking up CAA records.
The following are some common causes of such errors, so that CAs may provide
guidance to their subscribers on fixing the underlying problems.Blocked Queries or ResponsesSome middleboxes -- in particular, anti-DDoS appliances -- may be configured to
drop DNS packets of unknown types, or they may start dropping such packets when
they consider themselves under attack. This generally manifests as a timed-out
DNS query or as a SERVFAIL at a local recursive resolver.Rejected Queries and Malformed ResponsesSome authoritative nameservers respond with REJECTED or NOTIMP when queried
for an RR type they do not recognize. At least one authoritative
resolver produces a malformed response (with the QR (Query/Response) bit set to "0") when queried
for unknown RR types. Per , the correct response RCODE for
unknown RR types is 0 ("No error condition").
Delegation to Private NameserversSome FQDN administrators make the contents of a subdomain unresolvable on the
public Internet by delegating that subdomain to a nameserver whose IP address is
private. A CA processing CAA records for such subdomains will receive
SERVFAIL from its recursive resolver. The CA MAY interpret that as preventing
issuance. FQDN administrators wishing to issue certificates for private
FQDNs SHOULD use split-horizon DNS with a publicly available nameserver, so
that CAs can receive a valid, empty CAA response for those FQDNs.Bogus DNSSEC ResponsesQueries for CAA RRs are different from most DNS RR types, because
a signed, empty response to a query for CAA RRs is meaningfully different
from a bogus response. A signed, empty response indicates that there is
definitely no CAA policy set at a given label. A bogus response may mean
either a misconfigured zone or an attacker tampering with records. DNSSEC
implementations may have bugs with signatures on empty responses that go
unnoticed, because for more common RR types like A and AAAA,
the difference to an end user between empty and bogus is irrelevant; they
both mean a site is unavailable.In particular, at least two authoritative resolvers that implement live signing
had bugs when returning empty RRsets for DNSSEC-signed zones, in
combination with mixed-case queries. Mixed‑case queries, also known as DNS 0x20,
are used by some recursive resolvers to increase resilience against DNS
poisoning attacks. DNSSEC-signing authoritative resolvers are expected to copy
the same capitalization from the query into their ANSWER section but also to sign the
response as if they had used all lowercase. In particular, PowerDNS versions
prior to 4.0.4 had this bug.Differences from RFC 6844This document obsoletes . The most important change is to
the "Certification Authority Processing" section (now called
"Relevant Resource Record Set" (), as noted below). specified an
algorithm that performed DNS tree-climbing not only on the FQDN
being processed but also on all CNAMEs and DNAMEs encountered along
the way. This made the processing algorithm very inefficient when used
on FQDNs that utilize many CNAMEs and would have made it difficult
for hosting providers to set CAA policies on their own FQDNs without
setting potentially unwanted CAA policies on their customers' FQDNs.
This document specifies a simplified 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
() detailing experience gained with practical deployment of CAA enforcement
among CAs in the WebPKI.This document clarifies the ABNF grammar for the issue and issuewild tags
and resolves some inconsistencies with the document text. In particular,
it specifies that parameters are separated with semicolons. It also allows
hyphens in Property Tags.This document also clarifies the processing of a CAA RRset that is not empty
but that does not contain any issue or issuewild tags.This document removes the section titled "The CAA RR Type," merging it with
"Mechanism" () because the definitions were mainly duplicates. It moves the "Use of
DNS Security" section into Security Considerations (). It renames "Certification
Authority Processing" to "Relevant Resource Record Set" () and emphasizes the use
of that term to more clearly define which domains are affected by a given RRset.IANA ConsiderationsIANA has added this document as
a reference for the "Certification Authority Restriction Flags" and
"Certification Authority Restriction Properties" registries and updated
references to within those registries to refer instead to
this document. IANA has also updated the CAA TYPE in the
"Resource Record (RR) TYPEs" subregistry of the "Domain Name System (DNS) Parameters" registry with a reference
to this document.ReferencesNormative ReferencesDomain names - concepts and facilitiesThis RFC is the revised basic definition of The Domain Name System. It obsoletes RFC-882. This memo describes the domain style names and their used for host address look up and electronic mail forwarding. It discusses the clients and servers in the domain name system and the protocol used between them.Domain names - implementation and specificationThis RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.Key words for use in RFCs to Indicate Requirement LevelsIn many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.Clarifications to the DNS SpecificationThis document considers some areas that have been identified as problems with the specification of the Domain Name System, and proposes remedies for the defects identified. [STANDARDS-TRACK]DNS Security Introduction and RequirementsThe Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]Resource Records for the DNS Security ExtensionsThis document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given. This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]Protocol Modifications for the DNS Security ExtensionsThis document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications. This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]DNS Security (DNSSEC) Hashed Authenticated Denial of ExistenceThe Domain Name System Security (DNSSEC) Extensions introduced the NSEC resource record (RR) for authenticated denial of existence. This document introduces an alternative resource record, NSEC3, which similarly provides authenticated denial of existence. However, it also provides measures against zone enumeration and permits gradual expansion of delegation-centric zones. [STANDARDS-TRACK]Augmented BNF for Syntax Specifications: ABNFInternet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) ProfileThis memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]Transport of Real-time Inter-network Defense (RID) Messages over HTTP/TLSThe Incident Object Description Exchange Format (IODEF) defines a common XML format for document exchange, and Real-time Inter-network Defense (RID) defines extensions to IODEF intended for the cooperative handling of security incidents within consortia of network operators and enterprises. This document specifies an application-layer protocol for RID based upon the passing of RID messages over HTTP/TLS. [STANDARDS-TRACK]The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSAEncrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]DNS Certification Authority Authorization (CAA) Resource RecordThe Certification Authority Authorization (CAA) DNS Resource Record allows a DNS domain name holder to specify one or more Certification Authorities (CAs) authorized to issue certificates for that domain. CAA Resource Records allow a public Certification Authority to implement additional controls to reduce the risk of unintended certificate mis-issue. This document defines the syntax of the CAA record and rules for processing CAA records by certificate issuers. [STANDARDS-TRACK]The Incident Object Description Exchange Format Version 2The Incident Object Description Exchange Format (IODEF) defines a data representation for security incident reports and indicators commonly exchanged by operational security teams for mitigation and watch and warning. This document describes an updated information model for the IODEF and provides an associated data model specified with the XML schema. This new information and data model obsoletes RFCs 5070 and 6685.Ambiguity of Uppercase vs Lowercase in RFC 2119 Key WordsRFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.Informative ReferencesInternet X.509 Public Key Infrastructure Certificate Policy and Certification Practices FrameworkThis document presents a framework to assist the writers of certificate policies or certification practice statements for participants within public key infrastructures, such as certification authorities, policy authorities, and communities of interest that wish to rely on certificates. In particular, the framework provides a comprehensive list of topics that potentially (at the writer's discretion) need to be covered in a certificate policy or a certification practice statement. This document supersedes RFC 2527.AcknowledgementsThe 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' AddressesVenture Cryptographyphill@hallambaker.comSectigo Ltd.rob@sectigo.comLet's Encryptjsha@letsencrypt.org