RFC 8657: Certification Authority Authorization (CAA) Record Extensions for Account URI and Automatic Certificate Management Environment (ACME) Method Binding
- H. Landau
Abstract
The Certification Authority Authorization (CAA) DNS record allows a domain to communicate an issuance policy to Certification Authorities (CAs) but only allows a domain to define a policy with CA-level granularity. However, the CAA specification (RFC 8659) also provides facilities for an extension to admit a more granular, CA-specific policy. This specification defines two such parameters: one allowing specific accounts of a CA to be identified by URIs and one allowing specific methods of domain control validation as defined by the Automatic Certificate Management Environment (ACME) protocol to be required.¶
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
https://
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
(https://
1. Introduction
This specification defines two parameters for the "issue" and "issuewild"
Properties of the Certification Authority Authorization (CAA) DNS resource
record [RFC8659]. The first, "accounturi", allows
authorization conferred by a CAA policy to be restricted to specific accounts
of a Certification Authority (CA), which are identified by URIs. The second, "validationmeth
2. Terminology
The 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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
3. Extensions to the CAA Record: The "accounturi" Parameter
This document defines the "accounturi" CAA parameter for the "issue" and "issuewild" Properties defined by [RFC8659]. The value of this parameter, if specified, MUST be a URI [RFC3986] identifying a specific CA account.¶
"CA account" means an object that is maintained by a specific CA, that may request the issuance of certificates, and that represents a specific entity or group of related entities.¶
The presence of this parameter constrains the Property to which it is attached. Where a CAA Property has an "accounturi" parameter, a CA MUST only consider that Property to authorize issuance in the context of a given certificate issuance request if the CA recognizes the URI specified in the value portion of that parameter as identifying the account making that request.¶
A Property without an "accounturi" parameter matches any account. A Property with an invalid or unrecognized "accounturi" parameter is unsatisfiable. A Property with multiple "accounturi" parameters is unsatisfiable.¶
The presence of an "accounturi" parameter does not replace or supersede the need to validate the domain name specified in an "issue" or "issuewild" record in the manner described in the CAA specification [RFC8659]. CAs MUST still perform such validation. For example, a CAA "issue" Property that specifies a domain name belonging to CA A and an "accounturi" parameter identifying an account at CA B is unsatisfiable.¶
3.1. Use with ACME
An Automatic Certificate Management Environment (ACME) [RFC8555] account object MAY be identified by setting the "accounturi" parameter to the URI of the ACME account object.¶
Implementations of this specification that also implement ACME MUST recognize such URIs.¶
3.2. Use without ACME
The "accounturi" specification provides a general mechanism to identify entities that may request certificate issuance via URIs. The use of specific kinds of URIs may be specified in future RFCs, and CAs not implementing ACME MAY assign and recognize their own URIs arbitrarily.¶
4. Extensions to the CAA Record: The "validationmethods" Parameter
This document also defines the "validationmeth
A validation method label identifies a validation method. A validation method is a particular way in which a CA can validate control over a domain.¶
The presence of this parameter constrains the Property to which it is attached.
A CA MUST only consider a Property with the "validationmeth
Each validation method label MUST be either the label of a method defined in the "ACME Validation Methods" IANA registry [RFC8555] or a CA‑specific non-ACME validation method label as defined below.¶
Where a CA supports both the "validationmeth
The value of the "validationmeth
5. Security Considerations
This specification describes an extension to the CAA record specification, increasing the granularity at which a CAA policy can be expressed. This allows the set of entities capable of successfully requesting issuance of certificates for a given domain to be restricted beyond the set of entities would otherwise be possible, while still allowing issuance for specific accounts of a CA. This improves the security of issuance for domains that choose to employ it, when combined with a CA that implements this specification.¶
5.1. Limited to CAs Processing CAA Records
All of the security considerations listed in [RFC8659] are inherited by this document. This specification merely enables a domain with an existing relationship with a CA to further constrain that CA in its issuance practices, where that CA implements this specification. In particular, it provides no additional security above that provided by using the unextended CAA specification alone as concerns matters relating to any other CA. The capacity of any other CA to issue certificates for the given domain is completely unchanged.¶
As such, a domain that, via CAA records, authorizes only CAs adopting this
specification and that constrains its policy by means of this specification,
remains vulnerable to unauthorized issuance by CAs that do not honor CAA
records or that honor them only on an advisory basis. Where a domain uses
DNSSEC, it also remains vulnerable to CAs that honor CAA records but that do
not validate CAA records by means of a trusted DNSSEC
5.2. Restrictions Ineffective without CA Recognition
Because the parameters of "issue" or "issuewild" CAA Properties constitute a CA-specific namespace, the CA identified by an "issue" or "issuewild" Property decides what parameters to recognize and their semantics. Accordingly, the CAA parameters defined in this specification rely on their being recognized by the CA named by an "issue" or "issuewild" CAA Property and are not an effective means of control over issuance unless a CA's support for the parameters is established beforehand.¶
CAs that implement this specification SHOULD make available documentation
indicating as such, including explicit statements as to which parameters are
supported. Domains configuring CAA records for a CA MUST NOT assume that the
restrictions implied by the "accounturi" and "validationmeth
CAs SHOULD also document whether they implement DNSSEC validation for DNS
lookups done for validation purposes, as this affects the security of the
"accounturi" and "validationmeth
5.3. Mandatory Consistency in CA Recognition
A CA MUST ensure that its support for the "accounturi" and "validationmeth
A CA that is unable to do this MAY still implement the parameters by splitting
the CA into two domain names for the purposes of CAA processing. For example, a
CA "example.com" with an ACME-based issuance system and a non-ACME-based
issuance system could recognize only "acme
A CA that is unable to ensure consistent processing of the "accounturi"
parameter or the
"validationmeth
5.4. URI Ambiguity
Suppose that CA A recognizes "a.example.com" as identifying itself and CA B is a subsidiary of CA A that recognizes both "a.example.com" and "b.example.com" as identifying itself.¶
Suppose that both CA A and CA B issue account URIs of the form:¶
If the CA domain name in a CAA record is specified as "a
Thus, CAs MUST ensure that the URIs they recognize as pertaining to a specific account of that CA are unique within the scope of all domain names that they recognize as identifying that CA for the purpose of CAA record validation.¶
CAs SHOULD satisfy this requirement by using URIs that include an authority (see Section 3.2 of [RFC3986]):¶
5.6. Use with and without DNSSEC
The "domain validation" model of validation commonly used for certificate
issuance cannot ordinarily protect against adversaries who can conduct global
man
Where a domain is signed using DNSSEC, the authenticity of its DNS data can be
assured, providing that a given CA makes all DNS resolutions via a trusted
DNSSEC
In order to facilitate this, a CA validation process must either rely solely on information obtained via DNSSEC or meaningfully bind the other parts of the validation transaction using material obtained via DNSSEC.¶
The CAA parameters described in this specification can be used to ensure that only validation methods meeting these criteria are used. In particular, a domain secured via DNSSEC SHOULD either:¶
A CA supporting the "accounturi" parameter or the "validationmeth
"Trusted" in this context means that the CA both trusts the resolver itself and
ensures that the communications path between the resolver and the system
performing CAA validation is secure. It is RECOMMENDED that a CA ensure this
by using a DNSSEC
The use of the "accounturi" parameter or the "validationmeth
Moreover, the use of the "accounturi" parameter or the "validationmeth
In these cases, the "accounturi" and "validationmeth
5.7. Restrictions Supersedable by DNS Delegation
CAA records are located during validation by walking up the DNS hierarchy until one or more records are found. CAA records are therefore not an effective way of restricting or controlling issuance for subdomains of a domain, where control over those subdomains is delegated to another party (such as via DNS delegation or by providing limited access to manage subdomain DNS records).¶
5.8. Misconfiguration Hazards
Because the "accounturi" and "validationmeth
5.9. Revelation of Account URIs
Because CAA records are publicly accessible, the use of the "accounturi" parameter enables third parties to observe the authorized account URIs for a domain. This may allow third parties to identify a correlation between domains if those domains use the same account URIs.¶
CAs are encouraged to select and process account URIs under the assumption that untrusted third parties may learn of them.¶
6. IANA Considerations
This document has no IANA actions. As per [RFC8659], the parameter namespace for the CAA "issue"
and "issuewild" Properties has CA-defined semantics, and the identifiers within
that namespace may be freely and arbitrarily assigned by a CA. This document
merely specifies recommended semantics for parameters of the names "accounturi"
and "validationmeth
7. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC3986]
-
Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10
.17487 , , <https:///RFC3986 www >..rfc -editor .org /info /rfc3986 - [RFC5234]
-
Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10
.17487 , , <https:///RFC5234 www >..rfc -editor .org /info /rfc5234 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8555]
-
Barnes, R., Hoffman
-Andrews, J. , McCarney, D., and J. Kasten, "Automatic Certificate Management Environment (ACME)", RFC 8555, DOI 10.17487 , , <https:///RFC8555 www >..rfc -editor .org /info /rfc8555 - [RFC8659]
-
Hallam-Baker, P., Stradling, R., and J. Hoffman-Andrews, "DNS Certification Authority Authorization (CAA) Resource Record", RFC 8659, DOI 10
.17487 , , <https:///RFC8659 www >..rfc -editor .org /info /rfc8659
Appendix A. Examples
The following shows an example DNS zone file fragment that nominates two account URIs as authorized to issue certificates for the domain "example.com". Issuance is restricted to the CA "example.net".¶
The following shows a zone file fragment that restricts the ACME methods that can be used; only ACME methods "dns-01" and "xyz-01" can be used.¶
The following shows an equivalent way of expressing the same restriction:¶
The following shows a zone file fragment in which one account can be used to issue with the "dns-01" method and one account can be used to issue with the "http-01" method.¶
The following shows a zone file fragment in which only ACME method "dns-01" or a CA-specific method "ca-foo" can be used.¶