draft-ietf-acme-caa-02.txt   draft-ietf-acme-caa-03.txt 
ACME Working Group H. Landau ACME Working Group H. Landau
Internet-Draft June 30, 2017 Internet-Draft August 30, 2017
Intended status: Standards Track Intended status: Standards Track
Expires: January 1, 2018 Expires: March 3, 2018
CAA Record Extensions for Account URI and ACME Method Binding CAA Record Extensions for Account URI and ACME Method Binding
draft-ietf-acme-caa-02 draft-ietf-acme-caa-03
Abstract Abstract
The CAA DNS record allows a domain to communicate issuance policy to The CAA DNS record allows a domain to communicate issuance policy to
CAs, but only allows a domain to define policy with CA-level CAs, but only allows a domain to define policy with CA-level
granularity. However, the CAA specification also provides facilities granularity. However, the CAA specification also provides facilities
for extension to admit more granular, CA-specific policy. This for extension to admit more granular, CA-specific policy. This
specification defines two such parameters, one allowing specific specification defines two such parameters, one allowing specific
accounts of a CA to be identified by URI and one allowing specific accounts of a CA to be identified by URI and one allowing specific
methods of domain control validation as defined by the ACME protocol methods of domain control validation as defined by the ACME protocol
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 1, 2018. This Internet-Draft will expire on March 3, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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
skipping to change at page 2, line 15 skipping to change at page 2, line 15
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
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Extensions to the CAA Record: account-uri Parameter . . . . . 3 3. Extensions to the CAA Record: account-uri Parameter . . . . . 3
3.1. Use with ACME . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Use with ACME . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Use without ACME . . . . . . . . . . . . . . . . . . . . 4 3.2. Use without ACME . . . . . . . . . . . . . . . . . . . . 4
4. Extensions to the CAA Record: acme-methods Parameter . . . . 4 4. Extensions to the CAA Record: validation-methods Parameter . 4
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
5.1. Limited to CAs Processing CAA Records . . . . . . . . . . 4 5.1. Limited to CAs Processing CAA Records . . . . . . . . . . 5
5.2. Restrictions Ineffective without CA Recognition . . . . . 5 5.2. Restrictions Ineffective without CA Recognition . . . . . 5
5.3. Mandatory Consistency in CA Recognition . . . . . . . . . 5 5.3. Mandatory Consistency in CA Recognition . . . . . . . . . 5
5.4. URI Ambiguity . . . . . . . . . . . . . . . . . . . . . . 6 5.4. URI Ambiguity . . . . . . . . . . . . . . . . . . . . . . 6
5.5. Authorization Freshness . . . . . . . . . . . . . . . . . 6 5.5. Authorization Freshness . . . . . . . . . . . . . . . . . 6
5.6. DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.6. DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.7. Use without DNSSEC . . . . . . . . . . . . . . . . . . . 7 5.7. Use without DNSSEC . . . . . . . . . . . . . . . . . . . 7
5.8. Restrictions Supercedable by DNS Delegation . . . . . . . 7 5.8. Restrictions Supercedable by DNS Delegation . . . . . . . 8
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
7. Normative References . . . . . . . . . . . . . . . . . . . . 8 7. Normative References . . . . . . . . . . . . . . . . . . . . 8
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 8 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction 1. Introduction
This specification defines two parameters for the "issue" and This specification defines two parameters for the "issue" and
"issuewild" properties of the Certification Authority Authorization "issuewild" properties of the Certification Authority Authorization
(CAA) DNS resource record [RFC6844]. The first, "account-uri", (CAA) DNS resource record [RFC6844]. The first, "account-uri",
allows authorization conferred by a CAA policy to be restricted to allows authorization conferred by a CAA policy to be restricted to
specific accounts of a CA, which are identified by URIs. The second, specific accounts of a CA, which are identified by URIs. The second,
"acme-methods", allows the set of validation methods supported by an "validation-methods", allows the set of validation methods supported
ACME [I-D.ietf-acme-acme] based CA to validate domain control to be by a CA to validate domain control to be limited to a subset of the
limited to a subset of the full set of methods which it supports. full set of methods which it supports.
2. Terminology 2. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED", In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119
[RFC2119] and indicate requirement levels for compliant ACME-CAA [RFC2119] and indicate requirement levels for compliant ACME-CAA
implementations. implementations.
3. Extensions to the CAA Record: account-uri Parameter 3. Extensions to the CAA Record: account-uri Parameter
skipping to change at page 4, line 13 skipping to change at page 4, line 13
recognise such URIs. recognise such URIs.
3.2. Use without ACME 3.2. Use without ACME
The "account-uri" specification provides a general mechanism to The "account-uri" specification provides a general mechanism to
identify entities which may request certificate issuance via URIs. identify entities which may request certificate issuance via URIs.
The use of specific kinds of URI may be specified in future RFCs, and The use of specific kinds of URI may be specified in future RFCs, and
CAs not implementing ACME MAY assign and recognise their own URIs CAs not implementing ACME MAY assign and recognise their own URIs
arbitrarily. arbitrarily.
4. Extensions to the CAA Record: acme-methods Parameter 4. Extensions to the CAA Record: validation-methods Parameter
A CAA parameter "acme-methods" is also defined for the "issue" and A CAA parameter "validation-methods" is also defined for the "issue"
"issuewild" properties. The value of this parameter, if specified, and "issuewild" properties. The value of this parameter, if
MUST be a comma-separated string of ACME challenge method names. The specified, MUST be a comma-separated string of challenge method
use of this parameter is specific to ACME and CAs implementing it. names. Each challenge method name MUST be either an ACME challenge
method name or a CA-assigned non-ACME challenge method name.
The presence of this parameter constrains the property to which it is The presence of this parameter constrains the property to which it is
attached. A CA MUST only consider a property with the "acme-methods" attached. A CA MUST only consider a property with the "validation-
parameter to authorize issuance where the name of the challenge methods" parameter to authorize issuance where the name of the
method being used is one of the names listed in the comma-separated challenge method being used is one of the names listed in the comma-
list. separated list.
The special method value "non-acme" is defined. Where a CA supports Where a CA supports both the "validation-methods" parameter and one
both ACME and the "acme-methods" parameter, but also allows the or more non-ACME challenge methods, it MUST assign identifiers to
issuance of certificates by other means, it MUST ensure that all of those methods. These identifiers MUST be chosen to minimise the
its other issuance channels recognise the "acme-methods" parameter likelihood of conflict with any ACME challenge method name; it is
(see section 5.3). For the purposes of validation, such non-ACME RECOMMENDED that, at the very least, CAs avoid assigning identifiers
transactions shall be considered to have a method name of "non-acme". ending in a hyphen and two digits ("-00").
Thus, domains implementing CAA which wish to nominate a CA which
supports issuance via both ACME and non-ACME means can choose whether A CA SHOULD assign individual identifiers to each of its non-ACME
to allow one or both. challenge methods. However, if it is unable or unwilling to do so,
it MAY use the fallback identifier of "non-acme" to identify such
methods.
5. Security Considerations 5. Security Considerations
This specification describes an extension to the CAA record This specification describes an extension to the CAA record
specification increasing the granularity at which CAA policy can be specification increasing the granularity at which CAA policy can be
expressed. This allows the set of entities capable of successfully expressed. This allows the set of entities capable of successfully
requesting issuance of certificates for a given domain to be requesting issuance of certificates for a given domain to be
restricted beyond that which would otherwise be possible, while still restricted beyond that which would otherwise be possible, while still
allowing issuance for specific accounts of a CA. This improves the allowing issuance for specific accounts of a CA. This improves the
security of issuance for domains which choose to employ it, when security of issuance for domains which choose to employ it, when
skipping to change at page 5, line 28 skipping to change at page 5, line 35
The CAA parameters specified in this specification rely on their The CAA parameters specified in this specification rely on their
being recognised by the CA named by an "issue" or "issuewild" CAA being recognised by the CA named by an "issue" or "issuewild" CAA
property. As such, the parameters are not an effective means of property. As such, the parameters are not an effective means of
control over issuance unless a CA's support for the parameters is control over issuance unless a CA's support for the parameters is
established beforehand. established beforehand.
CAs which implement this specification SHOULD make available CAs which implement this specification SHOULD make available
documentation indicating as such, including explicit statements as to documentation indicating as such, including explicit statements as to
which parameters are supported. Domains configuring CAA records for which parameters are supported. Domains configuring CAA records for
a CA MUST NOT assume that the restrictions implied by the "account- a CA MUST NOT assume that the restrictions implied by the "account-
uri" and "acme-methods" parameters are effective in the absence of uri" and "validation-methods" parameters are effective in the absence
explicit indication as such from that CA. of explicit indication as such from that CA.
CAs SHOULD also document whether they implement DNSSEC validation for CAs SHOULD also document whether they implement DNSSEC validation for
DNS lookups done for validation purposes, as this affects the DNS lookups done for validation purposes, as this affects the
security of the "account-uri" and "acme-methods" parameters. security of the "account-uri" and "validation-methods" parameters.
5.3. Mandatory Consistency in CA Recognition 5.3. Mandatory Consistency in CA Recognition
A CA MUST ensure that its support for the "account-uri" and "acme- A CA MUST ensure that its support for the "account-uri" and
methods" parameters is fully consistent for a given domain name which "validation-methods" parameters is fully consistent for a given
a CA recognises as identifying itself in a CAA "issue" or "issuewild" domain name which a CA recognises as identifying itself in a CAA
property. If a CA has multiple issuance systems (for example, an "issue" or "issuewild" property. If a CA has multiple issuance
ACME-based issuance system and a non-ACME based issuance system, or systems (for example, an ACME-based issuance system and a non-ACME
two different issuance systems resulting from a corporate merger), it based issuance system, or two different issuance systems resulting
MUST ensure that all issuance systems recognise the same parameters. from a corporate merger), it MUST ensure that all issuance systems
recognise the same parameters.
A CA which is unable to do this MAY still implement the parameters by A CA which is unable to do this MAY still implement the parameters by
splitting the CA into two domain names for the purposes of CAA splitting the CA into two domain names for the purposes of CAA
processing. For example, a CA "example.com" with an ACME-based processing. For example, a CA "example.com" with an ACME-based
issuance system and a non-ACME-based issuance system could recognise issuance system and a non-ACME-based issuance system could recognise
only "acme.example.com" for the former and "example.com" for the only "acme.example.com" for the former and "example.com" for the
latter, and then implement support for the "account-uri" and "acme- latter, and then implement support for the "account-uri" and
methods" parameters for "acme.example.com" only. "validation-methods" parameters for "acme.example.com" only.
A CA which is unable to ensure consistent processing of the "account- A CA which is unable to ensure consistent processing of the "account-
uri" or "acme-methods" parameters for a given CA domain name as uri" or "validation-methods" parameters for a given CA domain name as
specifiable in CAA "issue" or "issuewild" properties MUST NOT specifiable in CAA "issue" or "issuewild" properties MUST NOT
implement support for these parameters. Failure to do so will result implement support for these parameters. Failure to do so will result
in an implementation of these parameters which does not provide in an implementation of these parameters which does not provide
effective security. effective security.
5.4. URI Ambiguity 5.4. URI Ambiguity
Suppose that CA A recognises "a.example.com" as identifying itself, Suppose that CA A recognises "a.example.com" as identifying itself,
CA B is a subsidiary of CA A which recognises both "a.example.com" CA B is a subsidiary of CA A which recognises both "a.example.com"
and "b.example.com" as identifying itself. and "b.example.com" as identifying itself.
skipping to change at page 7, line 28 skipping to change at page 7, line 36
DNSSEC. DNSSEC.
The CAA parameters described in this specification can be used to The CAA parameters described in this specification can be used to
ensure that only validation methods meeting these criteria are used. ensure that only validation methods meeting these criteria are used.
In particular, a domain secured via DNSSEC SHOULD either: In particular, a domain secured via DNSSEC SHOULD either:
1. Use the "account-uri" parameter to ensure that only accounts 1. Use the "account-uri" parameter to ensure that only accounts
which it controls are authorized to obtain certificates, or which it controls are authorized to obtain certificates, or
2. Exclusively use validation methods which rely solely on 2. Exclusively use validation methods which rely solely on
information obtained via DNSSEC, and use the "acme-methods" information obtained via DNSSEC, and use the "validation-methods"
parameter to ensure that only such methods are used. parameter to ensure that only such methods are used.
5.7. Use without DNSSEC 5.7. Use without DNSSEC
Where a domain does not secure its nameservers using DNSSEC, or one Where a domain does not secure its nameservers using DNSSEC, or one
or more of the CAs it authorizes do not perform CAA validation or more of the CAs it authorizes do not perform CAA validation
lookups using a trusted DNSSEC-validating resolver, use of the lookups using a trusted DNSSEC-validating resolver, use of the
"account-uri" or "acme-methods" parameters does not confer additional "account-uri" or "validation-methods" parameters does not confer
security against an attacker capable of performing a man-in-the- additional security against an attacker capable of performing a man-
middle attack against all validation attempts made by a CA, as such in-the-middle attack against all validation attempts made by a CA, as
an attacker could simply fabricate the responses to DNS lookups for such an attacker could simply fabricate the responses to DNS lookups
CAA records. for CAA records.
In this case, the "account-uri" and "acme-methods" parameters still In this case, the "account-uri" and "validation-methods" parameters
provide an effective means of administrative control over issuance, still provide an effective means of administrative control over
except where control over DNS is subdelegated (see below). issuance, except where control over DNS is subdelegated (see below).
5.8. Restrictions Supercedable by DNS Delegation 5.8. Restrictions Supercedable by DNS Delegation
Because CAA records are located during validation by walking up the Because CAA records are located during validation by walking up the
DNS hierarchy until one or more records are found, the use of the DNS hierarchy until one or more records are found, the use of the
"account-uri" and "acme-methods" parameters, or any CAA policy, is "account-uri" and "validation-methods" parameters, or any CAA policy,
not an effective way to restrict or control issuance for subdomains is not an effective way to restrict or control issuance for
of a domain, where control over those subdomains is delegated to subdomains of a domain, where control over those subdomains is
another party (such as via DNS delegation or by providing limited delegated to another party (such as via DNS delegation or by
access to manage subdomain DNS records). providing limited access to manage subdomain DNS records).
6. IANA Considerations 6. IANA Considerations
None. As per the CAA specification, the parameter namespace for the None. As per the CAA specification, the parameter namespace for the
CAA "issue" and "issuewild" properties has CA-defined semantics. CAA "issue" and "issuewild" properties has CA-defined semantics.
This document merely specifies a RECOMMENDED semantic for parameters This document merely specifies a RECOMMENDED semantic for parameters
of the names "account-uri" and "acme-methods". of the names "account-uri" and "validation-methods".
7. Normative References 7. Normative References
[I-D.ietf-acme-acme] [I-D.ietf-acme-acme]
Barnes, R., Hoffman-Andrews, J., and J. Kasten, "Automatic Barnes, R., Hoffman-Andrews, J., and J. Kasten, "Automatic
Certificate Management Environment (ACME)", draft-ietf- Certificate Management Environment (ACME)", draft-ietf-
acme-acme-07 (work in progress), June 2017. acme-acme-07 (work in progress), June 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997, RFC2119, March 1997, <https://www.rfc-editor.org/info/
<http://www.rfc-editor.org/info/rfc2119>. rfc2119>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC Resource Identifier (URI): Generic Syntax", STD 66, RFC
3986, DOI 10.17487/RFC3986, January 2005, 3986, DOI 10.17487/RFC3986, January 2005,
<http://www.rfc-editor.org/info/rfc3986>. <https://www.rfc-editor.org/info/rfc3986>.
[RFC6844] Hallam-Baker, P. and R. Stradling, "DNS Certification [RFC6844] Hallam-Baker, P. and R. Stradling, "DNS Certification
Authority Authorization (CAA) Resource Record", RFC 6844, Authority Authorization (CAA) Resource Record", RFC 6844,
DOI 10.17487/RFC6844, January 2013, DOI 10.17487/RFC6844, January 2013, <https://www.rfc-
<http://www.rfc-editor.org/info/rfc6844>. editor.org/info/rfc6844>.
Appendix A. Examples Appendix A. Examples
The following shows an example DNS zone file fragment which nominates The following shows an example DNS zone file fragment which nominates
two account URIs as authorized to issue certificates for the domain two account URIs as authorized to issue certificates for the domain
"example.com". Issuance is restricted to the CA "example.net". "example.com". Issuance is restricted to the CA "example.net".
example.com. IN CAA 0 issue "example.net; \ example.com. IN CAA 0 issue "example.net; \
account-uri=https://example.net/account/1234" account-uri=https://example.net/account/1234"
example.com. IN CAA 0 issue "example.net; \ example.com. IN CAA 0 issue "example.net; \
account-uri=https://example.net/account/2345" account-uri=https://example.net/account/2345"
The following shows a zone file fragment which restricts the ACME The following shows a zone file fragment which restricts the ACME
methods which can be used; only ACME methods "dns-01" and "xyz-01" methods which can be used; only ACME methods "dns-01" and "xyz-01"
can be used. can be used.
example.com. IN CAA 0 issue "example.net; \ example.com. IN CAA 0 issue "example.net; \
acme-methods=dns-01,xyz-01" validation-methods=dns-01,xyz-01"
The following shows an equivalent way of expressing the same The following shows an equivalent way of expressing the same
restriction: restriction:
example.com. IN CAA 0 issue "example.net; acme-methods=dns-01" example.com. IN CAA 0 issue "example.net; validation-methods=dns-01"
example.com. IN CAA 0 issue "example.net; acme-methods=xyz-01" example.com. IN CAA 0 issue "example.net; validation-methods=xyz-01"
The following shows a zone file fragment in which one account can be 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 used to issue with the "dns-01" method and one account can be used to
issue with the "http-01" method. issue with the "http-01" method.
example.com. IN CAA 0 issue "example.net; \ example.com. IN CAA 0 issue "example.net; \
account-uri=https://example.net/account/1234; \ account-uri=https://example.net/account/1234; \
acme-methods=dns-01" validation-methods=dns-01"
example.com. IN CAA 0 issue "example.net; \ example.com. IN CAA 0 issue "example.net; \
account-uri=https://example.net/account/2345; \ account-uri=https://example.net/account/2345; \
acme-methods=http-01" validation-methods=http-01"
The following shows a zone file fragment in which only ACME method The following shows a zone file fragment in which only ACME method
"dns-01" can be used, but non-ACME methods of issuance are also "dns-01" can be used, but non-ACME methods of issuance are also
allowed. allowed.
example.com. IN CAA 0 issue "example.net; \ example.com. IN CAA 0 issue "example.net; \
acme-methods=dns-01,non-acme" validation-methods=dns-01,non-acme"
Author's Address Author's Address
Hugo Landau Hugo Landau
Email: hlandau@devever.net Email: hlandau@devever.net
 End of changes. 30 change blocks. 
67 lines changed or deleted 71 lines changed or added

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