draft-ietf-acme-caa-05.txt   draft-ietf-acme-caa-06.txt 
ACME Working Group H. Landau ACME Working Group H. Landau
Internet-Draft June 21, 2018 Internet-Draft January 15, 2019
Intended status: Standards Track Intended status: Standards Track
Expires: December 23, 2018 Expires: July 19, 2019
CAA Record Extensions for Account URI and ACME Method Binding CAA Record Extensions for Account URI and ACME Method Binding
draft-ietf-acme-caa-05 draft-ietf-acme-caa-06
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 December 23, 2018. This Internet-Draft will expire on July 19, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 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
skipping to change at page 2, line 17 skipping to change at page 2, line 17
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Extensions to the CAA Record: accounturi Parameter . . . . . 3 3. Extensions to the CAA Record: accounturi 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: validationmethods Parameter . . 4 4. Extensions to the CAA Record: validationmethods Parameter . . 4
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
5.1. Limited to CAs Processing CAA Records . . . . . . . . . . 5 5.1. Limited to CAs Processing CAA Records . . . . . . . . . . 4
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. Use with and without DNSSEC . . . . . . . . . . . . . . . 7
5.7. Use without DNSSEC . . . . . . . . . . . . . . . . . . . 7 5.7. Restrictions Supercedable by DNS Delegation . . . . . . . 8
5.8. Restrictions Supercedable by DNS Delegation . . . . . . . 8 5.8. Misconfiguration Hazards . . . . . . . . . . . . . . . . 8
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
7. Normative References . . . . . . . . . . . . . . . . . . . . 8 7. Normative References . . . . . . . . . . . . . . . . . . . . 8
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 9 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 9
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, "accounturi", allows (CAA) DNS resource record [RFC6844]. The first, "accounturi", allows
skipping to change at page 3, line 18 skipping to change at page 3, line 18
"issuewild" properties defined by [RFC6844]. The value of this "issuewild" properties defined by [RFC6844]. The value of this
parameter, if specified, MUST be a URI [RFC3986] identifying a parameter, if specified, MUST be a URI [RFC3986] identifying a
specific CA account. specific CA account.
"CA account" means an object maintained by a specific CA representing "CA account" means an object maintained by a specific CA representing
a specific entity, or group of related entities, which may request a specific entity, or group of related entities, which may request
the issuance of certificates. the issuance of certificates.
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. Where a CAA property has an "accounturi" parameter, a CA attached. Where a CAA property has an "accounturi" parameter, a CA
MUST NOT consider that property to authorize issuance in the context MUST only consider that property to authorize issuance in the context
of a given certificate issuance request unless the CA recognises the of a given certificate issuance request if the CA recognises the URI
URI specified as identifying the account making that request. specified as identifying the account making that request.
If a certificate issuance request is made to a CA such that no
account URI is available, because the request is made in the absence
of any account or the account has no URI assigned to it, a CA MUST
NOT consider any property having an "accounturi" parameter as
authorizing issuance.
If a CA finds multiple CAA records pertaining to it (i.e., having If a CA finds multiple CAA records pertaining to it (i.e., having
property "issue" or "issuewild" as applicable and a domain that the property "issue" or "issuewild" as applicable and a domain that the
CA recognises as its own) with different "accounturi" parameters, the CA recognises as its own) with different "accounturi" parameters, the
CA MUST NOT consider the CAA record set to authorize issuance unless CA MUST consider the CAA record set to authorize issuance if and only
at least one of the specified account URIs identifies the account of if at least one of the specified account URIs identifies the account
the CA by which issuance is requested. A property without an of the CA by which issuance is requested.
"accounturi" parameter matches any account. A property with an
invalid or unrecognised "accounturi" parameter is unsatisfiable. A A property without an "accounturi" parameter matches any account. A
property with multiple "accounturi" parameters is unsatisfiable. property with an invalid or unrecognised "accounturi" parameter is
unsatisfiable. A property with multiple "accounturi" parameters is
unsatisfiable.
The presence of an "accounturi" parameter does not replace or The presence of an "accounturi" parameter does not replace or
supercede the need to validate the domain name specified in an supercede the need to validate the domain name specified in an
"issue" or "issuewild" record in the manner described in the CAA "issue" or "issuewild" record in the manner described in the CAA
specification. CAs MUST still perform such validation. For example, specification. CAs MUST still perform such validation. For example,
a CAA property which specifies a domain name belonging to CA A and an a CAA "issue" property which specifies a domain name belonging to CA
account URI identifying an account at CA B is unsatisfiable. A and an "accounturi" parameter identifying an account at CA B is
unsatisfiable.
3.1. Use with ACME 3.1. Use with ACME
An ACME [I-D.ietf-acme-acme] account object MAY be identified by An ACME [I-D.ietf-acme-acme] account object MAY be identified by
setting the "accounturi" parameter to the URI of the ACME account setting the "accounturi" parameter to the URI of the ACME account
object. object.
Implementations of this specification which also implement ACME MUST Implementations of this specification which also implement ACME MUST
recognise such URIs. recognise such URIs.
skipping to change at page 4, line 29 skipping to change at page 4, line 29
method name or a CA-assigned non-ACME challenge method name. 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 attached. A CA MUST only consider a property with the
"validationmethods" parameter to authorize issuance where the name of "validationmethods" parameter to authorize issuance where the name of
the challenge method being used is one of the names listed in the the challenge method being used is one of the names listed in the
comma-separated list. comma-separated list.
Where a CA supports both the "validationmethods" parameter and one or Where a CA supports both the "validationmethods" parameter and one or
more non-ACME challenge methods, it MUST assign identifiers to those more non-ACME challenge methods, it MUST assign identifiers to those
methods. These identifiers MUST be chosen to minimise the likelihood methods. If appropriate non-ACME identifiers are not present in the
of conflict with any ACME challenge method name; it is RECOMMENDED ACME Validation Methods IANA registry, the CA MUST use identifiers
that, at the very least, CAs avoid assigning identifiers ending in a beginning with the string "ca-", which are defined to have CA-
hyphen and two digits ("-00"). specific meaning.
A CA SHOULD assign individual identifiers to each of its non-ACME
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 21 skipping to change at page 5, line 12
specification. In particular, it provides no additional security specification. In particular, it provides no additional security
above that provided by use of the unextended CAA specification alone above that provided by use of the unextended CAA specification alone
as concerns matters relating to any other CA. The capacity of any as concerns matters relating to any other CA. The capacity of any
other CA to issue certificates for the given domain is completely other CA to issue certificates for the given domain is completely
unchanged. unchanged.
As such, a domain which via CAA records authorizes only CAs adopting As such, a domain which via CAA records authorizes only CAs adopting
this specification, and which constrains its policy by means of this this specification, and which constrains its policy by means of this
specification, remains vulnerable to unauthorized issuance by CAs specification, remains vulnerable to unauthorized issuance by CAs
which do not honour CAA records, or which honour them only on an which do not honour CAA records, or which honour them only on an
advisory basis. advisory basis. Where a domain uses DNSSEC, it also remains
vulnerable to CAs which honour CAA records but which do not validate
CAA records by means of a trusted DNSSEC-validating resolver.
5.2. Restrictions Ineffective without CA Recognition 5.2. Restrictions Ineffective without CA Recognition
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
skipping to change at page 6, line 39 skipping to change at page 6, line 33
If the CA domain name in a CAA record is specified as "a.example.com" If the CA domain name in a CAA record is specified as "a.example.com"
then this could be construed as identifying account number 1234 at CA then this could be construed as identifying account number 1234 at CA
A or at CA B. These may be different accounts, creating ambiguity. A or at CA B. These may be different accounts, creating ambiguity.
Thus, CAs MUST ensure that the URIs they recognise as pertaining to a Thus, CAs MUST ensure that the URIs they recognise as pertaining to a
specific account of that CA are unique within the scope of all domain specific account of that CA are unique within the scope of all domain
names which they recognise as identifying that CA for the purpose of names which they recognise as identifying that CA for the purpose of
CAA record validation. CAA record validation.
It is RECOMMENDED that CAs satisfy this requirement by using URIs CAs MUST satisfy this requirement by using URIs which include an
which include an authority: authority:
"https://a.example.com/account/1234" "https://a.example.com/account/1234"
5.5. Authorization Freshness 5.5. Authorization Freshness
The CAA specification governs the act of issuance by a CA. In some The CAA specification governs the act of issuance by a CA. In some
cases, a CA may establish authorization for an account to request cases, a CA may establish authorization for an account to request
certificate issuance for a specific domain separately to the act of certificate issuance for a specific domain separately to the act of
issuance itself. Such authorization may occur substantially prior to issuance itself. Such authorization may occur substantially prior to
a certificate issuance request. The CAA policy expressed by a domain a certificate issuance request. The CAA policy expressed by a domain
may have changed in the meantime, creating the risk that a CA will may have changed in the meantime, creating the risk that a CA will
issue certificates in a manner inconsistent with the presently issue certificates in a manner inconsistent with the presently
published CAA policy. published CAA policy.
CAs SHOULD consider adopting practices to reduce the risk of such CAs SHOULD adopt practices to reduce the risk of such circumstances.
circumstances. Possible countermeasures include issuing Possible countermeasures include issuing authorizations with very
authorizations with very limited validity periods, such as an hour, limited validity periods, such as an hour, or revalidating the CAA
or revalidating the CAA policy for a domain at certificate issuance policy for a domain at certificate issuance time.
time.
5.6. DNSSEC 5.6. Use with and without DNSSEC
Where a domain chooses to secure its nameservers using DNSSEC, the Where a domain chooses to secure its nameservers using DNSSEC, the
authenticity of its DNS data can be assured, providing that a CA authenticity of its DNS data can be assured, providing that a given
makes all DNS resolutions via an appropriate, trusted DNSSEC- CA makes all DNS resolutions via an appropriate, trusted DNSSEC-
validating resolver. A domain can use this property to protect validating resolver. A domain can use this property to protect
itself from the threat posed by a global adversary capable of itself from the threat posed by a global adversary capable of
performing man-in-the-middle attacks, which is not ordinarily performing man-in-the-middle attacks, which is not ordinarily
mitigated by the "domain validation" model. mitigated by the "domain validation" model.
In order to facilitate this, a CA validation process must either rely In order to facilitate this, a CA validation process must either rely
solely on information obtained via DNSSEC, or meaningfully bind the solely on information obtained via DNSSEC, or meaningfully bind the
other parts of the validation transaction using material obtained via other parts of the validation transaction using material obtained via
DNSSEC. DNSSEC.
skipping to change at page 7, line 39 skipping to change at page 7, line 33
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 "accounturi" parameter to ensure that only accounts which 1. Use the "accounturi" parameter to ensure that only accounts which
it controls are authorized to obtain certificates, or 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 "validationmethods" information obtained via DNSSEC, and use the "validationmethods"
parameter to ensure that only such methods are used. parameter to ensure that only such methods are used.
5.7. Use without DNSSEC Use of the "accounturi" or "validationmethods" parameters does not
confer additional security against an attacker capable of performing
a man-in-the-middle attack against all validation attempts made by a
given CA which is authorized by CAA where:
Where a domain does not secure its nameservers using DNSSEC, or one 1. A domain does not secure its nameservers using DNSSEC, or
or more of the CAs it authorizes do not perform CAA validation
lookups using a trusted DNSSEC-validating resolver, use of the
"accounturi" or "validationmethods" parameters does not confer
additional security against an attacker capable of performing a man-
in-the-middle attack against all validation attempts made by a CA, as
such an attacker could simply fabricate the responses to DNS lookups
for CAA records.
In this case, the "accounturi" and "validationmethods" parameters 2. That CA does not perform CAA validation using a trusted DNSSEC-
validating resolver.
Moreover, use of the "accounturi" or "validationmethods" parameters
does not mitigate against man-in-the-middle attacks against CAs which
do not validate CAA records, or which do not do so using a trusted
DNSSEC-validating resolver, regardless of whether those CAs are
authorized by CAA or not; see Section 5.1.
In these cases, the "accounturi" and "validationmethods" parameters
still provide an effective means of administrative control over still provide an effective means of administrative control over
issuance, 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.7. 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
"accounturi" and "validationmethods" parameters, or any CAA policy, "accounturi" and "validationmethods" parameters, or any CAA policy,
is not an effective way to restrict or control issuance for is not an effective way to restrict or control issuance for
subdomains of a domain, where control over those subdomains is subdomains of a domain, where control over those subdomains is
delegated to another party (such as via DNS delegation or by delegated to another party (such as via DNS delegation or by
providing limited access to manage subdomain DNS records). providing limited access to manage subdomain DNS records).
5.8. Misconfiguration Hazards
Because they express a restrictive security policy, misconfiguration
of the "accounturi" or "validationmethods" parameters may result in
legitimate issuance requests being refused.
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 "accounturi" and "validationmethods". of the names "accounturi" and "validationmethods".
7. Normative References 7. Normative References
[I-D.ietf-acme-acme] [I-D.ietf-acme-acme]
Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. Barnes, R., Hoffman-Andrews, J., McCarney, D., and J.
Kasten, "Automatic Certificate Management Environment Kasten, "Automatic Certificate Management Environment
(ACME)", draft-ietf-acme-acme-12 (work in progress), April (ACME)", draft-ietf-acme-acme-18 (work in progress),
2018. December 2018.
[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, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/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, Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005, RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>. <https://www.rfc-editor.org/info/rfc3986>.
 End of changes. 22 change blocks. 
59 lines changed or deleted 63 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/