< draft-ietf-acme-email-smime-04.txt   draft-ietf-acme-email-smime-05.txt >
Network Working Group A. Melnikov Network Working Group A. Melnikov
Internet-Draft Isode Ltd Internet-Draft Isode Ltd
Intended status: Informational October 19, 2018 Intended status: Informational July 8, 2019
Expires: April 22, 2019 Expires: January 9, 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-04 draft-ietf-acme-email-smime-05
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 April 22, 2019. This Internet-Draft will expire on January 9, 2020.
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 21 skipping to change at page 2, line 21
3.2. ACME response email . . . . . . . . . . . . . . . . . . . 4 3.2. ACME response email . . . . . . . . . . . . . . . . . . . 4
4. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6
7. Normative References . . . . . . . . . . . . . . . . . . . . 6 7. Normative References . . . . . . . . . . . . . . . . . . . . 6
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
[I-D.ietf-acme-acme] is a mechanism for automating certificate ACME [RFC8555] is a mechanism for automating certificate management
management on the Internet. It enables administrative entities to on the Internet. It enables administrative entities to prove
prove effective control over resources like domain names, and effective control over resources like domain names, and automates the
automates the process of generating and issuing certificates. process of generating and issuing certificates.
This document describes an extension to ACME for use by S/MIME. This document describes an extension to ACME for use by S/MIME.
Section 3 defines extensions for issuing end user S/MIME [RFC5750] Section 3 defines extensions for issuing end user S/MIME [RFC8550]
certificates. certificates.
2. Conventions Used in This Document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
3. Use of ACME for issuing end user S/MIME certificates 3. Use of ACME for issuing end user S/MIME certificates
[I-D.ietf-acme-acme] defines "dns" Identifier Type that is used to ACME [RFC8555] defines "dns" Identifier Type that is used to verify
verify that a particular entity has control over a domain or specific that a particular entity has control over a domain or specific
service associated with the domain. In order to be able to issue service associated with the domain. In order to be able to issue
end-user S/MIME certificates, ACME needs a new Identifier Type that end-user S/MIME certificates, ACME needs a new Identifier Type that
proves ownership of an email address. proves ownership of an email address.
This document defines a new Identifier Type "email" which corresponds This document defines a new Identifier Type "email" which corresponds
to an (all ASCII) email address [RFC5321] or Internationalized Email to an (all ASCII) email address [RFC5321] or Internationalized Email
addresses [RFC6531]. This can be used with S/MIME or other similar addresses [RFC6531]. This can be used with S/MIME or other similar
service that requires posession of a certificate tied to an email service that requires posession of a certificate tied to an email
address. address.
skipping to change at page 3, line 19 skipping to change at page 3, line 19
1. ACME server generates a "challenge" email message with the 1. ACME server generates a "challenge" email message with the
subject "ACME: <token-part1>", where <token-part1> is the subject "ACME: <token-part1>", where <token-part1> is the
base64url encoded first part of the token, which contains at base64url encoded first part of the token, which contains at
least 64 bit of entropy. The challenge email message structure least 64 bit of entropy. The challenge email message structure
is described in more details in Section 3.1. The second part of is described in more details in Section 3.1. The second part of
the token (token-part2, which also contains at least 64 bit of the token (token-part2, which also contains at least 64 bit of
entropy) is returned over HTTPS [RFC2818] to the ACME client. entropy) is returned over HTTPS [RFC2818] to the ACME client.
2. ACME client concatenates "token-part1" and "token-part2" to 2. ACME client concatenates "token-part1" and "token-part2" to
create "token", calculates key-authz (as per Section 8.1 of create "token", calculates key-authz (as per Section 8.1 of
[I-D.ietf-acme-acme]), then includes the base64url encoded [RFC8555]), then includes the base64url encoded SHA-256 digest
SHA-256 digest [FIPS180-4] of the key authorization in the body [FIPS180-4] of the key authorization in the body of a response
of a response email message containing a single text/plain MIME email message containing a single text/plain MIME body part
body part [RFC2045]. The response email message structure is [RFC2045]. The response email message structure is described in
described in more details in Section 3.2 more details in Section 3.2
For an identifier of type "email", CSR MUST contain the request email For an identifier of type "email", CSR MUST contain the request email
address in an extensionRequest attribute [RFC2985] requesting a address in an extensionRequest attribute [RFC2985] requesting a
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 exactly <token-part1>", where the prefix "ACME:" is followed by folding
one SP character. <token-part1> is the base64url encoded first white space (FWS, see [RFC5322]) and then by <token-part1> is the
part of the ACME token that MUST be at least 64 octet long after base64url encoded first part of the ACME token that MUST be at
decoding. [[Alexey: is the following going to be problematic due least 64 octet long after decoding. Due to recommended 78 octet
to the total subject lenght and recommended 78 octet line length line length limit in [RFC5322], the subject line can be folded,
limit?]] For ease of implementation, no RFC 2231 encoding of so whitespaces (if any) within the <token-part1> MUST be ignored.
subject is allowed in the "challenge" email message. [RFC2231] encoding of subject MUST be supported, but when used,
only "UTF-8" and "US-ASCII" charsets MUST be used (i.e. other
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]. It MAY include optional parameters as header field [RFC3834]. It MAY include optional parameters as
allowed by syntax of Auto-Submitted header field. allowed by syntax of Auto-Submitted header field.
3. The message MUST have a single text/plain MIME body part 3. In order to prove authenticity of a challenge message, it MUST be
[RFC2045], that contains human readable explanation of the either DKIM [RFC6376] signed or S/MIME [RFC8551] signed. If DKIM
purpose of the message. signing is used, the resulting DKIM-Signature header field MUST
contain the "h=" tag that includes at least "From", "To",
"Subject", "Content-Type" and "Message-ID" header fields.
4. If S/MIME signing is not used to prove authenticity of the
challenge message, then the message MUST have a single text/plain
MIME body part [RFC2045], that contains human readable
explanation of the purpose of the message. If S/MIME signing is
used, then the text/plain message is used to construct a
multipart/signed or "application/pkcs7-mime; smime-type=signed-
data;". Either way, it MUST use S/MIME header protection.
Example ACME "challenge" email Example ACME "challenge" email
Auto-Submitted: auto-generated Auto-Submitted: auto-generated
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-octets-of-entropy>
Content-Type: text/plain Content-Type: text/plain
skipping to change at page 4, line 31 skipping to change at page 4, line 39
token part into an external program. token part into an external program.
Figure 1 Figure 1
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: "Re: 1. The message Subject header field has the following syntax: "Re:
ACME: <token-part1>", where the string "ACME:" is followed by ACME: <token-part1>", where the string "ACME:" is followed by
exactly one SP character. <token-part1> is the base64url encoded folding white space (FWS, see [RFC5322]) and then by <token-
first part of the ACME token. (Note that this would be a subject part1> is the base64url encoded first part of the ACME token that
generated by any email client replying to the "challenge" email MUST be at least 64 octet long after decoding. Due to
message.) [[Alexey: is the following going to be problematic due recommended 78 octet line length limit in [RFC5322], the subject
to the total subject lenght and recommended 78 octet line length line can be folded, so whitespaces (if any) within the <token-
limit?]] For ease of implementation, no RFC 2231 encoding of part1> MUST be ignored. [RFC2231] encoding of subject MUST be
subject is allowed in the "response" email message. supported, but when used, only "UTF-8" and "US-ASCII" charsets
MUST 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
From: header field of the challenge email. From: header field of the challenge email.
4. The Cc: header field must be absent in the "response" email 4. The Cc: header field is ignored if present in the "response"
message. email message.
5. The message MUST have a single text/plain MIME body part 5. The message MUST have a single text/plain MIME body part
[RFC2045], containing base64url encoded SHA-256 digest [RFC2045], containing base64url encoded SHA-256 digest
[FIPS180-4] of the key authorization, calculated based on token- [FIPS180-4] of the key authorization, calculated based on token-
part1 (received over email) and token-part2 (received over part1 (received over email) and token-part2 (received over
HTTPS). Note that due to historic line length limitations in HTTPS). Note that due to historic line length limitations in
email, line endings (CRLFs) can be freely inserted in the middle email, line endings (CRLFs) can be freely inserted in the middle
of the encoded digest, so they need to be ignored when processing of the encoded digest, so they MUST be ignored when processing
it. it.
6. There is no need to use any Content-Transfer-Encoding other than 6. There is no need to use any Content-Transfer-Encoding other than
7bit, however use of Quoted-Printable or base64 is not prohibited 7bit, however use of Quoted-Printable or base64 is not prohibited
in a "response" email message. in a "response" email message.
Example ACME "response" email Example ACME "response" email
Date: Sat, 1 Sep 2018 11:12:00 +0100 Date: Sat, 1 Sep 2018 11:12:00 +0100
Message-ID: <111-22222-3333333@example.com> Message-ID: <111-22222-3333333@example.com>
skipping to change at page 5, line 38 skipping to change at page 5, line 49
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 1. Do we need to handle text/html or multipart/alternative in email
challenge? Simplicity suggests "no". However, for automated challenge? Simplicity suggests "no". However, for automated
processing it might be better to use at least multipart/mixed processing it might be better to use at least multipart/mixed
with a special MIME type. with a special MIME type.
2. How to verify authenticity of "challenge" email messages? The 2. How to verify authenticity of "response" email messages? We
document can recommend either S/MIME signing (in which case the can't require use of S/MIME, as this protocol is used for S/MIME
"challenge" email message should be allowed to be S/MIME signed user enrollment. However DKIM/SPF/DMARC can be recommended.
multipart/signed or application/pkcs7-mime containing SignedData)
and/or presence of DKIM signature covering at least From/To/
Subject, with working SPF and DMARC.
3. Similarly to the above: how to verify authenticity of "response"
email messages? We can't require use of S/MIME, as this protocol
is used for S/MIME user enrollment. However DKIM/SPF/DMARC can
be recommended.
4. Define a new parameter to "Auto-Submitted: auto-generated", so 3. Define a new parameter to "Auto-Submitted: auto-generated", so
that it is easier to figure out that a particilar message is an that it is easier to figure out that a particilar message is an
ACME challenge message? ACME challenge message?
5. IANA Considerations 5. IANA Considerations
IANA is requested to register a new Identifier Type "email" which IANA is requested to register a new Identifier Type "email" which
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
skipping to change at page 6, line 31 skipping to change at page 6, line 31
TBD. TBD.
7. Normative References 7. Normative References
[FIPS180-4] [FIPS180-4]
National Institute of Standards and Technology, "Secure National Institute of Standards and Technology, "Secure
Hash Standard (SHS)", FIPS PUB 180-4, August 2015, Hash Standard (SHS)", FIPS PUB 180-4, August 2015,
<https://csrc.nist.gov/publications/detail/fips/180/4/ <https://csrc.nist.gov/publications/detail/fips/180/4/
final>. final>.
[I-D.ietf-acme-acme]
Barnes, R., Hoffman-Andrews, J., and J. Kasten, "Automatic
Certificate Management Environment (ACME)", draft-ietf-
acme-acme-14 (work in progress), August 2018.
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996,
<https://www.rfc-editor.org/info/rfc2045>. <https://www.rfc-editor.org/info/rfc2045>.
[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>.
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded
Word Extensions: Character Sets, Languages, and
Continuations", RFC 2231, DOI 10.17487/RFC2231, November
1997, <https://www.rfc-editor.org/info/rfc2231>.
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818,
DOI 10.17487/RFC2818, May 2000, DOI 10.17487/RFC2818, May 2000,
<https://www.rfc-editor.org/info/rfc2818>. <https://www.rfc-editor.org/info/rfc2818>.
[RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object
Classes and Attribute Types Version 2.0", RFC 2985, Classes and Attribute Types Version 2.0", RFC 2985,
DOI 10.17487/RFC2985, November 2000, DOI 10.17487/RFC2985, November 2000,
<https://www.rfc-editor.org/info/rfc2985>. <https://www.rfc-editor.org/info/rfc2985>.
[RFC3834] Moore, K., "Recommendations for Automatic Responses to [RFC3834] Moore, K., "Recommendations for Automatic Responses to
Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August
2004, <https://www.rfc-editor.org/info/rfc3834>. 2004, <https://www.rfc-editor.org/info/rfc3834>.
[RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321,
DOI 10.17487/RFC5321, October 2008, DOI 10.17487/RFC5321, October 2008,
<https://www.rfc-editor.org/info/rfc5321>. <https://www.rfc-editor.org/info/rfc5321>.
[RFC5750] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
Mail Extensions (S/MIME) Version 3.2 Certificate DOI 10.17487/RFC5322, October 2008,
Handling", RFC 5750, DOI 10.17487/RFC5750, January 2010, <https://www.rfc-editor.org/info/rfc5322>.
<https://www.rfc-editor.org/info/rfc5750>.
[RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed.,
"DomainKeys Identified Mail (DKIM) Signatures", STD 76,
RFC 6376, DOI 10.17487/RFC6376, September 2011,
<https://www.rfc-editor.org/info/rfc6376>.
[RFC6531] Yao, J. and W. Mao, "SMTP Extension for Internationalized [RFC6531] Yao, J. and W. Mao, "SMTP Extension for Internationalized
Email", RFC 6531, DOI 10.17487/RFC6531, February 2012, Email", RFC 6531, DOI 10.17487/RFC6531, February 2012,
<https://www.rfc-editor.org/info/rfc6531>. <https://www.rfc-editor.org/info/rfc6531>.
[RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web
Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May
2015, <https://www.rfc-editor.org/info/rfc7515>. 2015, <https://www.rfc-editor.org/info/rfc7515>.
[RFC8550] Schaad, J., Ramsdell, B., and S. Turner, "Secure/
Multipurpose Internet Mail Extensions (S/MIME) Version 4.0
Certificate Handling", RFC 8550, DOI 10.17487/RFC8550,
April 2019, <https://www.rfc-editor.org/info/rfc8550>.
[RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/
Multipurpose Internet Mail Extensions (S/MIME) Version 4.0
Message Specification", RFC 8551, DOI 10.17487/RFC8551,
April 2019, <https://www.rfc-editor.org/info/rfc8551>.
[RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J.
Kasten, "Automatic Certificate Management Environment
(ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019,
<https://www.rfc-editor.org/info/rfc8555>.
Appendix A. Acknowledgements Appendix A. Acknowledgements
Thank you to Andreas Schulze and Gerd v. Egidy for suggestions, Thank you to Andreas Schulze and Gerd v. Egidy for suggestions,
comments and corrections on this document. 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
 End of changes. 19 change blocks. 
58 lines changed or deleted 82 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/