draft-ietf-acme-email-smime-06.txt   draft-ietf-acme-email-smime-07.txt 
Network Working Group A. Melnikov Network Working Group A. Melnikov
Internet-Draft Isode Ltd Internet-Draft Isode Ltd
Intended status: Informational November 1, 2019 Intended status: Informational May 2, 2020
Expires: May 4, 2020 Expires: November 3, 2020
Extensions to Automatic Certificate Management Environment for end user Extensions to Automatic Certificate Management Environment for end user
S/MIME certificates S/MIME certificates
draft-ietf-acme-email-smime-06 draft-ietf-acme-email-smime-07
Abstract Abstract
This document specifies identifiers and challenges required to enable This document specifies identifiers and challenges required to enable
the Automated Certificate Management Environment (ACME) to issue the Automated Certificate Management Environment (ACME) to issue
certificates for use by email users that want to use S/MIME. certificates for use by email users that want to use S/MIME.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 33 skipping to change at page 1, line 33
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 May 4, 2020. This Internet-Draft will expire on November 3, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2020 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
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. Conventions Used in This Document . . . . . . . . . . . . . . 2 2. Conventions Used in This Document . . . . . . . . . . . . . . 2
3. Use of ACME for issuing end user S/MIME certificates . . . . 2 3. Use of ACME for issuing end user S/MIME certificates . . . . 2
3.1. ACME challenge email . . . . . . . . . . . . . . . . . . 3 3.1. ACME challenge email . . . . . . . . . . . . . . . . . . 3
3.2. ACME response email . . . . . . . . . . . . . . . . . . . 4 3.2. ACME response email . . . . . . . . . . . . . . . . . . . 5
4. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 6
5. Internationalization Considerations . . . . . . . . . . . . . 6 5. Internationalization Considerations . . . . . . . . . . . . . 6
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7
8. Normative References . . . . . . . . . . . . . . . . . . . . 7 8. Normative References . . . . . . . . . . . . . . . . . . . . 7
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 10 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction 1. Introduction
ACME [RFC8555] is a mechanism for automating certificate management ACME [RFC8555] is a mechanism for automating certificate management
on the Internet. It enables administrative entities to prove on the Internet. It enables administrative entities to prove
effective control over resources like domain names, and automates the effective control over resources like domain names, and automates the
skipping to change at page 3, line 41 skipping to change at page 3, line 41
subjectAltName extension. subjectAltName extension.
3.1. ACME challenge email 3.1. ACME challenge email
A "challenge" email message MUST have the following structure: A "challenge" email message MUST have the following structure:
1. The message Subject header field has the following syntax: "ACME: 1. The message Subject header field has the following syntax: "ACME:
<token-part1>", where the prefix "ACME:" is followed by folding <token-part1>", where the prefix "ACME:" is followed by folding
white space (FWS, see [RFC5322]) and then by <token-part1> is the white space (FWS, see [RFC5322]) and then by <token-part1> is the
base64url encoded first part of the ACME token that MUST be at base64url encoded first part of the ACME token that MUST be at
least 64 octet long after decoding. Due to recommended 78 octet least 64 bit long after decoding. Due to recommended 78 octet
line length limit in [RFC5322], the subject line can be folded, line length limit in [RFC5322], the subject line can be folded,
so whitespaces (if any) within the <token-part1> MUST be ignored. so whitespaces (if any) within the <token-part1> MUST be ignored.
[RFC2231] encoding of subject MUST be supported, but when used, [RFC2231] encoding of subject MUST be supported, but when used,
only "UTF-8" and "US-ASCII" charsets MUST be used (i.e. other only "UTF-8" and "US-ASCII" charsets MUST be used (i.e. other
charsets MUST NOT be used). charsets MUST NOT be used).
2. The message MUST include the "Auto-Submitted: auto-generated" 2. The message MUST include the "Auto-Submitted: auto-generated"
header field [RFC3834]. The "Auto-Submitted" header field SHOULD header field [RFC3834]. The "Auto-Submitted" header field SHOULD
include "type=acme" parameter. It MAY include other optional include "type=acme" parameter. It MAY include other optional
parameters as allowed by syntax of Auto-Submitted header field. parameters as allowed by syntax of Auto-Submitted header field.
skipping to change at page 4, line 17 skipping to change at page 4, line 17
4. In order to prove authenticity of a challenge message, it MUST be 4. In order to prove authenticity of a challenge message, it MUST be
either DKIM [RFC6376] signed or S/MIME [RFC8551] signed. If DKIM either DKIM [RFC6376] signed or S/MIME [RFC8551] signed. If DKIM
signing is used, the resulting DKIM-Signature header field MUST signing is used, the resulting DKIM-Signature header field MUST
contain the "h=" tag that includes at least "From", "Sender", contain the "h=" tag that includes at least "From", "Sender",
"Reply-To", "To", "CC", "Subject", "Date", "In-Reply-To", "Reply-To", "To", "CC", "Subject", "Date", "In-Reply-To",
"References", "Message-ID", "Content-Type" and "Content-Transfer- "References", "Message-ID", "Content-Type" and "Content-Transfer-
Encoding" header fields. The message MUST also pass DMARC Encoding" header fields. The message MUST also pass DMARC
validation [RFC7489], which implies DKIM and SPF validation validation [RFC7489], which implies DKIM and SPF validation
[RFC7208]. [RFC7208].
5. If S/MIME signing is not used to prove authenticity of the 5. The body of the challenge message is not used for automated
challenge message, then the message MUST have a single text/plain processing, so it can be any media type. (However there are
MIME body part [RFC2045], that contains human readable extra requirements on S/MIME signing, if used. See below.)
Typically it is text/plain or text/html containing human readable
explanation of the purpose of the message. If S/MIME signing is explanation of the purpose of the message. If S/MIME signing is
used, then the text/plain message is used to construct a used to prove authenticity of the challenge message, then
multipart/signed or "application/pkcs7-mime; smime-type=signed- multipart/signed or "application/pkcs7-mime; smime-type=signed-
data;". Either way, it MUST use S/MIME header protection. data;" media type should be used. Either way, it MUST use S/MIME
header protection.
Example ACME "challenge" email (note that DKIM related header fields Example ACME "challenge" email (note that DKIM related header fields
are not included for simplicity). are not included for simplicity).
Auto-Submitted: auto-generated; type=acme Auto-Submitted: auto-generated; type=acme
Date: Sat, 1 Sep 2018 10:08:55 +0100 Date: Sat, 1 Sep 2018 10:08:55 +0100
Message-ID: <A2299BB.FF7788@example.org> Message-ID: <A2299BB.FF7788@example.org>
From: acme-generator@example.org From: acme-generator@example.org
To: alexey@example.com To: alexey@example.com
Subject: ACME: <base64url-encoded-token-with-64-octets-of-entropy> Subject: ACME: <base64url-encoded-token-with-64-bits-of-entropy>
Content-Type: text/plain Content-Type: text/plain
MIME-Version: 1.0 MIME-Version: 1.0
This is an automatically generated ACME challenge for email address This is an automatically generated ACME challenge for email address
"alexey@example.com". If you haven't requested an S/MIME "alexey@example.com". If you haven't requested an S/MIME
certificate generation for this email address, be very afraid. certificate generation for this email address, be very afraid.
If you did request it, your email client might be able to process If you did request it, your email client might be able to process
this request automatically, or you might have to paste the first this request automatically, or you might have to paste the first
token part into an external program. token part into an external program.
skipping to change at page 5, line 8 skipping to change at page 5, line 15
3.2. ACME response email 3.2. ACME response email
A "response" email message MUST have the following structure: A "response" email message MUST have the following structure:
1. The message Subject header field has the following syntax: 1. The message Subject header field has the following syntax:
"<Reply-prefix> ACME: <token-part1>", where <Reply-prefix> is "<Reply-prefix> ACME: <token-part1>", where <Reply-prefix> is
typically the reply prefix "Re: " and the string "ACME:" is typically the reply prefix "Re: " and the string "ACME:" is
followed by folding white space (FWS, see [RFC5322]) and then by followed by folding white space (FWS, see [RFC5322]) and then by
<token-part1>. <token-part1> is the base64url encoded first part <token-part1>. <token-part1> is the base64url encoded first part
of the ACME token (as received in the ACME challenge) that MUST of the ACME token (as received in the ACME challenge) that MUST
be at least 64 octet long after decoding. Due to recommended 78 be at least 64 bit long after decoding. Due to recommended 78
octet line length limit in [RFC5322], the subject line can be octet line length limit in [RFC5322], the subject line can be
folded, so whitespaces (if any) within the <token-part1> MUST be folded, so whitespaces (if any) within the <token-part1> MUST be
ignored. [RFC2231] encoding of subject MUST be supported, but ignored. [RFC2231] encoding of subject MUST be supported, but
when used, only "UTF-8" and "US-ASCII" charsets MUST be used when used, only "UTF-8" and "US-ASCII" charsets MUST be used
(i.e. other charsets MUST NOT be used). (i.e. other charsets MUST NOT be used).
2. The From: header field contains the email address of the user 2. The From: header field contains the email address of the user
that is requesting S/MIME certificate issuance. that is requesting S/MIME certificate issuance.
3. The To: header field of the response contains the value from the 3. The To: header field of the response contains the value from the
skipping to change at page 5, line 31 skipping to change at page 5, line 38
4. The Cc: header field is ignored if present in the "response" 4. The Cc: header field is ignored if present in the "response"
email message. email message.
5. The In-Reply-To: header field SHOULD be set to the Message-ID 5. The In-Reply-To: header field SHOULD be set to the Message-ID
header field of the challenge message according to rules in header field of the challenge message according to rules in
Section 3.6.4 of [RFC5322]. Section 3.6.4 of [RFC5322].
6. Media type of the "response" email message is either text/plain 6. Media type of the "response" email message is either text/plain
or multipart/alternative containing text/plain as one of the or multipart/alternative containing text/plain as one of the
alternatives. The text/plain body part MUST start with the line alternatives. The text/plain body part (whether or not it is
"-----BEGIN ACME RESPONSE-----", followed by one or more line inside multipart/alternative) MUST contain a block of lines
containing base64url encoded SHA-256 digest [FIPS180-4] of the starting with the line "-----BEGIN ACME RESPONSE-----", followed
key authorization, calculated based on token-part1 (received over by one or more line containing base64url encoded SHA-256 digest
email) and token-part2 (received over HTTPS). (Note that due to [FIPS180-4] of the key authorization, calculated based on token-
historic line length limitations in email, line endings (CRLFs) part1 (received over email) and token-part2 (received over
can be freely inserted in the middle of the encoded digest, so HTTPS). (Note that due to historic line length limitations in
they MUST be ignored when processing it.). The final line of the email, line endings (CRLFs) can be freely inserted in the middle
encoded digest is followed by the line containing "-----END ACME of the encoded digest, so they MUST be ignored when processing
RESPONSE-----". There should not be any text after the it.). The final line of the encoded digest is followed by the
terminating line, but if any text is found, it is ignored. line containing "-----END ACME RESPONSE-----". Any text before
and after this block is ignored. For example such text might
explain what to do with it for ACME-unaware clients.
7. There is no need to use any Content-Transfer-Encoding other than 7. There is no need to use any Content-Transfer-Encoding other than
7bit for the text/plain body part, however use of Quoted- 7bit for the text/plain body part, however use of Quoted-
Printable or base64 is not prohibited in a "response" email Printable or base64 is not prohibited in a "response" email
message. message.
8. In order to prove authenticity of a response message, it MUST be 8. In order to prove authenticity of a response message, it MUST be
DKIM [RFC6376] signed. The resulting DKIM-Signature header field DKIM [RFC6376] signed. The resulting DKIM-Signature header field
MUST contain the "h=" tag that includes at least "From", MUST contain the "h=" tag that includes at least "From",
"Sender", "Reply-To", "To", "CC", "Subject", "Date", "In-Reply- "Sender", "Reply-To", "To", "CC", "Subject", "Date", "In-Reply-
skipping to change at page 6, line 30 skipping to change at page 6, line 40
jxAjEuX0.9jg46WB3rR_AHD-EBXdN7cBkH1WOu0tA3M9 jxAjEuX0.9jg46WB3rR_AHD-EBXdN7cBkH1WOu0tA3M9
fm21mqTI fm21mqTI
-----END ACME RESPONSE----- -----END ACME RESPONSE-----
Figure 2 Figure 2
4. Open Issues 4. Open Issues
[[This section should be empty before publication]] [[This section should be empty before publication]]
1. Do we need to handle text/html or multipart/alternative in email
challenge? Simplicity suggests "no". Also, for automated
processing it might be better to define a special MIME type that
is included as one of body parts inside multipart/mixed
container.
5. Internationalization Considerations 5. Internationalization Considerations
[RFC8616] updated/clarified use of DKIM/SPF/DMARC with [RFC8616] updated/clarified use of DKIM/SPF/DMARC with
Internationalized Email addresses [RFC6531]. Please consult RFC 8616 Internationalized Email addresses [RFC6531]. Please consult RFC 8616
in regards to any changes that need to be implemented. in regards to any changes that need to be implemented.
Use of non ASCII characters in left hand sides of Internationalized Use of non ASCII characters in left hand sides of Internationalized
Email addresses requires putting Internationalized Email Addresses in Email addresses requires putting Internationalized Email Addresses in
X.509 Certificates [RFC8398]. X.509 Certificates [RFC8398].
skipping to change at page 7, line 12 skipping to change at page 7, line 18
corresponds to an (all ASCII) email address [RFC5321] or corresponds to an (all ASCII) email address [RFC5321] or
Internationalized Email addresses [RFC6531]. Internationalized Email addresses [RFC6531].
And finally, IANA is requested to register the following ACME And finally, IANA is requested to register the following ACME
challenge types that are used with Identifier Type "email": "email- challenge types that are used with Identifier Type "email": "email-
reply". The reference for it is this document. reply". The reference for it is this document.
7. Security Considerations 7. Security Considerations
Please see Security Considerations of [RFC8555] for general security Please see Security Considerations of [RFC8555] for general security
considerations related to use of ACME. considerations related to use of ACME. This challenge/response
protocol demonstrates that an entity that controls the private key
(corresponding to the public key in the certificate) also controls
the named email account. Any claims about the correctness or
fitness-for-purpose of the email address must be otherwise assured.
Security of "email-reply-00" challenge type depends on security of Security of "email-reply-00" challenge type depends on security of
email system. A third party that can can read and reply to user's email system. A third party that can can read and reply to user's
email messages (by posessing user's password or a secret derived from email messages (by posessing user's password or a secret derived from
it that can give read and reply access ("password equivalent" it that can give read and reply access ("password equivalent"
information), or by being given permissions to act on user's behalf information), or by being given permissions to act on user's behalf
using email delegation feature) can request S/MIME certificates and using email delegation feature) can request S/MIME certificates and
is indistinguishable from the email account owner. is indistinguishable from the email account owner.
Email system in its turn depends on DNS. A third party that can Email system in its turn depends on DNS. A third party that can
skipping to change at page 10, line 7 skipping to change at page 10, line 7
Kasten, "Automatic Certificate Management Environment Kasten, "Automatic Certificate Management Environment
(ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019,
<https://www.rfc-editor.org/info/rfc8555>. <https://www.rfc-editor.org/info/rfc8555>.
[RFC8616] Levine, J., "Email Authentication for Internationalized [RFC8616] Levine, J., "Email Authentication for Internationalized
Mail", RFC 8616, DOI 10.17487/RFC8616, June 2019, Mail", RFC 8616, DOI 10.17487/RFC8616, June 2019,
<https://www.rfc-editor.org/info/rfc8616>. <https://www.rfc-editor.org/info/rfc8616>.
Appendix A. Acknowledgements Appendix A. Acknowledgements
Thank you to Andreas Schulze, Gerd v. Egidy and James A Baker for Thank you to Andreas Schulze, Gerd v. Egidy, James A Baker, Ben
suggestions, comments and corrections on this document. Schwartz and Michael Jenkins for suggestions, comments and
corrections on this document.
Author's Address Author's Address
Alexey Melnikov Alexey Melnikov
Isode Ltd Isode Ltd
14 Castle Mews 14 Castle Mews
Hampton, Middlesex TW12 2NP Hampton, Middlesex TW12 2NP
UK UK
EMail: alexey.melnikov@isode.com EMail: alexey.melnikov@isode.com
 End of changes. 16 change blocks. 
35 lines changed or deleted 38 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/