idnits 2.17.1 draft-ietf-acme-email-smime-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 1 character in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (July 8, 2019) is 1744 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC7515' is defined on line 311, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2818 (Obsoleted by RFC 9110) Summary: 2 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group A. Melnikov 3 Internet-Draft Isode Ltd 4 Intended status: Informational July 8, 2019 5 Expires: January 9, 2020 7 Extensions to Automatic Certificate Management Environment for end user 8 S/MIME certificates 9 draft-ietf-acme-email-smime-05 11 Abstract 13 This document specifies identifiers and challenges required to enable 14 the Automated Certificate Management Environment (ACME) to issue 15 certificates for use by email users that want to use S/MIME. 17 Status of This Memo 19 This Internet-Draft is submitted in full conformance with the 20 provisions of BCP 78 and BCP 79. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF). Note that other groups may also distribute 24 working documents as Internet-Drafts. The list of current Internet- 25 Drafts is at https://datatracker.ietf.org/drafts/current/. 27 Internet-Drafts are draft documents valid for a maximum of six months 28 and may be updated, replaced, or obsoleted by other documents at any 29 time. It is inappropriate to use Internet-Drafts as reference 30 material or to cite them other than as "work in progress." 32 This Internet-Draft will expire on January 9, 2020. 34 Copyright Notice 36 Copyright (c) 2019 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents 41 (https://trustee.ietf.org/license-info) in effect on the date of 42 publication of this document. Please review these documents 43 carefully, as they describe your rights and restrictions with respect 44 to this document. Code Components extracted from this document must 45 include Simplified BSD License text as described in Section 4.e of 46 the Trust Legal Provisions and are provided without warranty as 47 described in the Simplified BSD License. 49 Table of Contents 51 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 52 2. Conventions Used in This Document . . . . . . . . . . . . . . 2 53 3. Use of ACME for issuing end user S/MIME certificates . . . . 2 54 3.1. ACME challenge email . . . . . . . . . . . . . . . . . . 3 55 3.2. ACME response email . . . . . . . . . . . . . . . . . . . 4 56 4. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 5 57 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 58 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 59 7. Normative References . . . . . . . . . . . . . . . . . . . . 6 60 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8 61 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 63 1. Introduction 65 ACME [RFC8555] is a mechanism for automating certificate management 66 on the Internet. It enables administrative entities to prove 67 effective control over resources like domain names, and automates the 68 process of generating and issuing certificates. 70 This document describes an extension to ACME for use by S/MIME. 71 Section 3 defines extensions for issuing end user S/MIME [RFC8550] 72 certificates. 74 2. Conventions Used in This Document 76 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 77 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 78 document are to be interpreted as described in [RFC2119]. 80 3. Use of ACME for issuing end user S/MIME certificates 82 ACME [RFC8555] defines "dns" Identifier Type that is used to verify 83 that a particular entity has control over a domain or specific 84 service associated with the domain. In order to be able to issue 85 end-user S/MIME certificates, ACME needs a new Identifier Type that 86 proves ownership of an email address. 88 This document defines a new Identifier Type "email" which corresponds 89 to an (all ASCII) email address [RFC5321] or Internationalized Email 90 addresses [RFC6531]. This can be used with S/MIME or other similar 91 service that requires posession of a certificate tied to an email 92 address. 94 Any identifier of type "email" in a newOrder request MUST NOT have a 95 wildcard ("*") character in its value. 97 A new challenge type "email-reply-00" is used with "email" Identifier 98 Type, which provides proof that an ACME client has control over an 99 email address: 101 1. ACME server generates a "challenge" email message with the 102 subject "ACME: ", where is the 103 base64url encoded first part of the token, which contains at 104 least 64 bit of entropy. The challenge email message structure 105 is described in more details in Section 3.1. The second part of 106 the token (token-part2, which also contains at least 64 bit of 107 entropy) is returned over HTTPS [RFC2818] to the ACME client. 109 2. ACME client concatenates "token-part1" and "token-part2" to 110 create "token", calculates key-authz (as per Section 8.1 of 111 [RFC8555]), then includes the base64url encoded SHA-256 digest 112 [FIPS180-4] of the key authorization in the body of a response 113 email message containing a single text/plain MIME body part 114 [RFC2045]. The response email message structure is described in 115 more details in Section 3.2 117 For an identifier of type "email", CSR MUST contain the request email 118 address in an extensionRequest attribute [RFC2985] requesting a 119 subjectAltName extension. 121 3.1. ACME challenge email 123 A "challenge" email message MUST have the following structure: 125 1. The message Subject header field has the following syntax: "ACME: 126 ", where the prefix "ACME:" is followed by folding 127 white space (FWS, see [RFC5322]) and then by is the 128 base64url encoded first part of the ACME token that MUST be at 129 least 64 octet long after decoding. Due to recommended 78 octet 130 line length limit in [RFC5322], the subject line can be folded, 131 so whitespaces (if any) within the MUST be ignored. 132 [RFC2231] encoding of subject MUST be supported, but when used, 133 only "UTF-8" and "US-ASCII" charsets MUST be used (i.e. other 134 charsets MUST NOT be used). 136 2. The message MUST include the "Auto-Submitted: auto-generated" 137 header field [RFC3834]. It MAY include optional parameters as 138 allowed by syntax of Auto-Submitted header field. 140 3. In order to prove authenticity of a challenge message, it MUST be 141 either DKIM [RFC6376] signed or S/MIME [RFC8551] signed. If DKIM 142 signing is used, the resulting DKIM-Signature header field MUST 143 contain the "h=" tag that includes at least "From", "To", 144 "Subject", "Content-Type" and "Message-ID" header fields. 146 4. If S/MIME signing is not used to prove authenticity of the 147 challenge message, then the message MUST have a single text/plain 148 MIME body part [RFC2045], that contains human readable 149 explanation of the purpose of the message. If S/MIME signing is 150 used, then the text/plain message is used to construct a 151 multipart/signed or "application/pkcs7-mime; smime-type=signed- 152 data;". Either way, it MUST use S/MIME header protection. 154 Example ACME "challenge" email 156 Auto-Submitted: auto-generated 157 Date: Sat, 1 Sep 2018 10:08:55 +0100 158 Message-ID: 159 From: acme-generator@example.org 160 To: alexey@example.com 161 Subject: ACME: 162 Content-Type: text/plain 163 MIME-Version: 1.0 165 This is an automatically generated ACME challenge for email address 166 "alexey@example.com". If you haven't requested an S/MIME 167 certificate generation for this email address, be very afraid. 168 If you did request it, your email client might be able to process 169 this request automatically, or you might have to paste the first 170 token part into an external program. 172 Figure 1 174 3.2. ACME response email 176 A "response" email message MUST have the following structure: 178 1. The message Subject header field has the following syntax: "Re: 179 ACME: ", where the string "ACME:" is followed by 180 folding white space (FWS, see [RFC5322]) and then by is the base64url encoded first part of the ACME token that 182 MUST be at least 64 octet long after decoding. Due to 183 recommended 78 octet line length limit in [RFC5322], the subject 184 line can be folded, so whitespaces (if any) within the MUST be ignored. [RFC2231] encoding of subject MUST be 186 supported, but when used, only "UTF-8" and "US-ASCII" charsets 187 MUST be used (i.e. other charsets MUST NOT be used). 189 2. The From: header field contains the email address of the user 190 that is requesting S/MIME certificate issuance. 192 3. The To: header field of the response contains the value from the 193 From: header field of the challenge email. 195 4. The Cc: header field is ignored if present in the "response" 196 email message. 198 5. The message MUST have a single text/plain MIME body part 199 [RFC2045], containing base64url encoded SHA-256 digest 200 [FIPS180-4] of the key authorization, calculated based on token- 201 part1 (received over email) and token-part2 (received over 202 HTTPS). Note that due to historic line length limitations in 203 email, line endings (CRLFs) can be freely inserted in the middle 204 of the encoded digest, so they MUST be ignored when processing 205 it. 207 6. There is no need to use any Content-Transfer-Encoding other than 208 7bit, however use of Quoted-Printable or base64 is not prohibited 209 in a "response" email message. 211 Example ACME "response" email 213 Date: Sat, 1 Sep 2018 11:12:00 +0100 214 Message-ID: <111-22222-3333333@example.com> 215 From: alexey@example.com 216 To: acme-generator@example.org 217 Subject: Re: ACME: 218 Content-Type: text/plain 219 MIME-Version: 1.0 221 LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowy 222 jxAjEuX0.9jg46WB3rR_AHD-EBXdN7cBkH1WOu0tA3M9 223 fm21mqTI 225 Figure 2 227 4. Open Issues 229 [[This section should be empty before publication]] 231 1. Do we need to handle text/html or multipart/alternative in email 232 challenge? Simplicity suggests "no". However, for automated 233 processing it might be better to use at least multipart/mixed 234 with a special MIME type. 236 2. How to verify authenticity of "response" email messages? We 237 can't require use of S/MIME, as this protocol is used for S/MIME 238 user enrollment. However DKIM/SPF/DMARC can be recommended. 240 3. Define a new parameter to "Auto-Submitted: auto-generated", so 241 that it is easier to figure out that a particilar message is an 242 ACME challenge message? 244 5. IANA Considerations 246 IANA is requested to register a new Identifier Type "email" which 247 corresponds to an (all ASCII) email address [RFC5321] or 248 Internationalized Email addresses [RFC6531]. 250 And finally, IANA is requested to register the following ACME 251 challenge types that are used with Identifier Type "email": "email- 252 reply". The reference for it is this document. 254 6. Security Considerations 256 TBD. 258 7. Normative References 260 [FIPS180-4] 261 National Institute of Standards and Technology, "Secure 262 Hash Standard (SHS)", FIPS PUB 180-4, August 2015, 263 . 266 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 267 Extensions (MIME) Part One: Format of Internet Message 268 Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, 269 . 271 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 272 Requirement Levels", BCP 14, RFC 2119, 273 DOI 10.17487/RFC2119, March 1997, 274 . 276 [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded 277 Word Extensions: Character Sets, Languages, and 278 Continuations", RFC 2231, DOI 10.17487/RFC2231, November 279 1997, . 281 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, 282 DOI 10.17487/RFC2818, May 2000, 283 . 285 [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object 286 Classes and Attribute Types Version 2.0", RFC 2985, 287 DOI 10.17487/RFC2985, November 2000, 288 . 290 [RFC3834] Moore, K., "Recommendations for Automatic Responses to 291 Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August 292 2004, . 294 [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, 295 DOI 10.17487/RFC5321, October 2008, 296 . 298 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, 299 DOI 10.17487/RFC5322, October 2008, 300 . 302 [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., 303 "DomainKeys Identified Mail (DKIM) Signatures", STD 76, 304 RFC 6376, DOI 10.17487/RFC6376, September 2011, 305 . 307 [RFC6531] Yao, J. and W. Mao, "SMTP Extension for Internationalized 308 Email", RFC 6531, DOI 10.17487/RFC6531, February 2012, 309 . 311 [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web 312 Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May 313 2015, . 315 [RFC8550] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 316 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 317 Certificate Handling", RFC 8550, DOI 10.17487/RFC8550, 318 April 2019, . 320 [RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 321 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 322 Message Specification", RFC 8551, DOI 10.17487/RFC8551, 323 April 2019, . 325 [RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. 326 Kasten, "Automatic Certificate Management Environment 327 (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, 328 . 330 Appendix A. Acknowledgements 332 Thank you to Andreas Schulze and Gerd v. Egidy for suggestions, 333 comments and corrections on this document. 335 Author's Address 337 Alexey Melnikov 338 Isode Ltd 339 14 Castle Mews 340 Hampton, Middlesex TW12 2NP 341 UK 343 EMail: alexey.melnikov@isode.com