draft-ietf-acme-caa-07.txt   draft-ietf-acme-caa-08.txt 
ACME Working Group H. Landau ACME Working Group H. Landau
Internet-Draft May 20, 2019 Internet-Draft May 31, 2019
Intended status: Standards Track Intended status: Standards Track
Expires: November 21, 2019 Expires: December 2, 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-07 draft-ietf-acme-caa-08
Abstract Abstract
The Certification Authority Authorization (CAA) DNS record allows a The Certification Authority Authorization (CAA) DNS record allows a
domain to communicate issuance policy to Certification Authorities domain to communicate issuance policy to Certification Authorities
(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
skipping to change at page 1, line 38 skipping to change at page 1, line 38
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 November 21, 2019. This Internet-Draft will expire on December 2, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 24 skipping to change at page 2, line 24
3.1. Use with ACME . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Use with ACME . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Use without ACME . . . . . . . . . . . . . . . . . . . . 3 3.2. Use without ACME . . . . . . . . . . . . . . . . . . . . 3
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 . . . . . . . . . . 4 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. Use with and without DNSSEC . . . . . . . . . . . . . . . 6 5.6. Use with and without DNSSEC . . . . . . . . . . . . . . . 6
5.7. Restrictions Supercedable by DNS Delegation . . . . . . . 7 5.7. Restrictions Supercedable by DNS Delegation . . . . . . . 8
5.8. Misconfiguration Hazards . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . 8 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10
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
authorization conferred by a CAA policy to be restricted to specific authorization conferred by a CAA policy to be restricted to specific
accounts of a CA, which are identified by URIs. The second, accounts of a CA, which are identified by URIs. The second,
"validationmethods", allows the set of validation methods supported "validationmethods", allows the set of validation methods supported
by a CA to validate domain control to be limited to a subset of the by a CA to validate domain control to be limited to a subset of the
skipping to change at page 3, line 12 skipping to change at page 3, line 12
described in BCP 14 [RFC2119] [RFC8174] when, and only when, they described in BCP 14 [RFC2119] [RFC8174] when, and only when, they
appear in all capitals, as shown here. appear in all capitals, as shown here.
3. Extensions to the CAA Record: accounturi Parameter 3. Extensions to the CAA Record: accounturi Parameter
A CAA parameter "accounturi" is defined for the "issue" and A CAA parameter "accounturi" is defined for the "issue" and
"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 and which
a specific entity, or group of related entities, which may request may request the issuance of certificates, which represents a specific
the issuance of certificates. entity or group of related entities.
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 only 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 if the CA recognises the URI of a given certificate issuance request if the CA recognises the URI
specified as identifying the account making that request. specified as identifying the account making that request.
A property without an "accounturi" parameter matches any account. A A property without an "accounturi" parameter matches any account. A
property with an invalid or unrecognised "accounturi" parameter is property with an invalid or unrecognised "accounturi" parameter is
unsatisfiable. A property with multiple "accounturi" parameters is unsatisfiable. A property with multiple "accounturi" parameters is
skipping to change at page 5, line 49 skipping to change at page 5, line 49
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 "accounturi" and latter, and then implement support for the "accounturi" and
"validationmethods" parameters for "acme.example.com" only. "validationmethods" parameters for "acme.example.com" only.
A CA which is unable to ensure consistent processing of the A CA which is unable to ensure consistent processing of the
"accounturi" or "validationmethods" parameters for a given CA domain "accounturi" or "validationmethods" parameters for a given CA domain
name as specifiable in CAA "issue" or "issuewild" properties MUST NOT name as 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 would
in an implementation of these parameters which does not provide result in an implementation of these parameters which does not
effective security. provide 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.
Suppose that both CA A and CA B issue account URIs of the form Suppose that both CA A and CA B issue account URIs of the form
"account-id:1234" "urn:example:account-id:1234"
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.
CAs MUST satisfy this requirement by using URIs which include an CAs SHOULD satisfy this requirement by using URIs which include an
authority: authority (see Section 3.2 of [RFC3986]):
"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
skipping to change at page 6, line 47 skipping to change at page 6, line 47
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 adopt practices to reduce the risk of such circumstances. CAs SHOULD adopt practices to reduce the risk of such circumstances.
Possible countermeasures include issuing authorizations with very Possible countermeasures include issuing authorizations with very
limited validity periods, such as an hour, or revalidating the CAA limited validity periods, such as an hour, or revalidating the CAA
policy for a domain at certificate issuance time. policy for a domain at certificate issuance time.
5.6. Use with and without DNSSEC 5.6. Use with and without DNSSEC
Where a domain chooses to secure its nameservers using DNSSEC, the The "domain validation" model of validation commonly used for
authenticity of its DNS data can be assured, providing that a given certificate issuance cannot ordinarily protect against adversaries
CA makes all DNS resolutions via an appropriate, trusted DNSSEC- who can conduct global man-in-the-middle attacks against a particular
validating resolver. A domain can use this property to protect domain. A global man-in-the-middle attack is an attack which can
itself from the threat posed by a global adversary capable of intercept traffic to or from a given domain, regardless of the origin
performing man-in-the-middle attacks, which is not ordinarily or destination of that traffic. Such an adversary can intercept all
mitigated by the "domain validation" model. validation traffic initiated by a CA and thus appear to have control
of the given domain.
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-validating resolver. A domain can
use this property to protect itself from the threat posed by an
adversary capable of performing a global man-in-the-middle attack
against that domain.
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.
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 "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.
A CA supporting the "accounturi" or "validationmethods" parameters
MUST perform CAA validation using a trusted, DNSSEC-validating
resolver.
"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 are secure. It is
RECOMMENDED that a CA ensure this by using a DNSSEC-validating
resolver running on the same machine as the system performing CAA
validation.
Use of the "accounturi" or "validationmethods" parameters does not Use of the "accounturi" or "validationmethods" parameters does not
confer additional security against an attacker capable of performing confer additional security against an attacker capable of performing
a man-in-the-middle attack against all validation attempts made by a a man-in-the-middle attack against all validation attempts made by a
given CA which is authorized by CAA where: given CA which is authorized by CAA where:
1. A domain does not secure its nameservers using DNSSEC, or 1. A domain does not secure its nameservers using DNSSEC, or
2. That CA does not perform CAA validation using a trusted DNSSEC- 2. That CA does not perform CAA validation using a trusted DNSSEC-
validating resolver. validating resolver.
skipping to change at page 7, line 45 skipping to change at page 8, line 17
do not validate CAA records, or which do not do so using a trusted do not validate CAA records, or which do not do so using a trusted
DNSSEC-validating resolver, regardless of whether those CAs are DNSSEC-validating resolver, regardless of whether those CAs are
authorized by CAA or not; see Section 5.1. authorized by CAA or not; see Section 5.1.
In these cases, the "accounturi" and "validationmethods" parameters 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.7. Restrictions Supercedable by DNS Delegation 5.7. Restrictions Supercedable by DNS Delegation
Because CAA records are located during validation by walking up the CAA records are located during validation by walking up the DNS
DNS hierarchy until one or more records are found, the use of the hierarchy until one or more records are found. CAA records are
"accounturi" and "validationmethods" parameters, or any CAA policy, therefore not an effective way of restricting or controlling issuance
is not an effective way to restrict or control issuance for 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 5.8. Misconfiguration Hazards
Because they express a restrictive security policy, misconfiguration Because the "accounturi" and "validationmethods" parameters express
of the "accounturi" or "validationmethods" parameters may result in restrictive security policies, misconfiguration of said parameters
legitimate issuance requests being refused. 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 and
This document merely specifies a RECOMMENDED semantic for parameters the identifiers within that namespace may be freely and arbitrarily
of the names "accounturi" and "validationmethods". assigned by a CA. This document merely specifies recommended
semantics for parameters of the names "accounturi" and
"validationmethods", which CAs may choose to adopt.
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-18 (work in progress), (ACME)", draft-ietf-acme-acme-18 (work in progress),
December 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
 End of changes. 15 change blocks. 
34 lines changed or deleted 54 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/