idnits 2.17.1 draft-ietf-acme-email-smime-08.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 16, 2020) is 1410 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: 'RFCXXXX' is mentioned on line 299, but not defined ** Obsolete normative reference: RFC 2818 (Obsoleted by RFC 9110) Summary: 1 error (**), 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 June 16, 2020 5 Expires: December 18, 2020 7 Extensions to Automatic Certificate Management Environment for end user 8 S/MIME certificates 9 draft-ietf-acme-email-smime-08 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 December 18, 2020. 34 Copyright Notice 36 Copyright (c) 2020 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 . . . . . . . . . . . . . . . . . . . 5 56 4. Internationalization Considerations . . . . . . . . . . . . . 6 57 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 58 5.1. ACME Identifier Type . . . . . . . . . . . . . . . . . . 7 59 5.2. ACME Challenge Type . . . . . . . . . . . . . . . . . . . 7 60 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 61 7. Normative References . . . . . . . . . . . . . . . . . . . . 8 62 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 10 63 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 65 1. Introduction 67 ACME [RFC8555] is a mechanism for automating certificate management 68 on the Internet. It enables administrative entities to prove 69 effective control over resources like domain names, and automates the 70 process of generating and issuing certificates. 72 This document describes an extension to ACME for use by S/MIME. 73 Section 3 defines extensions for issuing end user S/MIME [RFC8550] 74 certificates. 76 2. Conventions Used in This Document 78 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 79 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 80 document are to be interpreted as described in [RFC2119]. 82 3. Use of ACME for issuing end user S/MIME certificates 84 ACME [RFC8555] defines "dns" Identifier Type that is used to verify 85 that a particular entity has control over a domain or specific 86 service associated with the domain. In order to be able to issue 87 end-user S/MIME certificates, ACME needs a new Identifier Type that 88 proves ownership of an email address. 90 This document defines a new Identifier Type "email" which corresponds 91 to an (all ASCII) email address [RFC5321] or Internationalized Email 92 addresses [RFC6531]. (When Internationalized Email addresses are 93 used, both U-labels and A-labels [RFC5890] are allowed in the domain 94 part.) This can be used with S/MIME or other similar service that 95 requires possession of a certificate tied to an email address. 97 Any identifier of type "email" in a newOrder request MUST NOT have a 98 wildcard ("*") character in its value. 100 A new challenge type "email-reply-00" is used with "email" Identifier 101 Type, which provides proof that an ACME client has control over an 102 email address: 104 1. ACME server generates a "challenge" email message with the 105 subject "ACME: ", where is the 106 base64url encoded [RFC4648] first part of the token, which 107 contains at least 64 bit of entropy. The challenge email message 108 structure is described in more details in Section 3.1. The 109 second part of the token (token-part2, which also contains at 110 least 64 bit of entropy) is returned over HTTPS [RFC2818] to the 111 ACME client. 113 2. ACME client concatenates "token-part1" and "token-part2" to 114 create "token", calculates key-authz (as per Section 8.1 of 115 [RFC8555]), then includes the base64url encoded SHA-256 digest 116 [FIPS180-4] of the key authorization in the body of a response 117 email message containing a single text/plain MIME body part 118 [RFC2045]. The response email message structure is described in 119 more details in Section 3.2 121 For an identifier of type "email", CSR MUST contain the request email 122 address in an extensionRequest attribute [RFC2985] requesting a 123 subjectAltName extension. 125 3.1. ACME challenge email 127 A "challenge" email message MUST have the following structure: 129 1. The message Subject header field has the following syntax: "ACME: 130 ", where the prefix "ACME:" is followed by folding 131 white space (FWS, see [RFC5322]) and then by is the 132 base64url encoded first part of the ACME token that MUST be at 133 least 64 bit long after decoding. Due to recommended 78 octet 134 line length limit in [RFC5322], the subject line can be folded, 135 so whitespaces (if any) within the MUST be ignored. 136 [RFC2231] encoding of subject MUST be supported, but when used, 137 only "UTF-8" and "US-ASCII" charsets MUST be used (i.e. other 138 charsets MUST NOT be used). 140 2. The To header field MUST be the email address of the entity that 141 requested S/MIME certificate to be generated. 143 3. The message MAY contain Reply-To header field. 145 4. The message MUST include the "Auto-Submitted: auto-generated" 146 header field [RFC3834]. The "Auto-Submitted" header field SHOULD 147 include "type=acme" parameter. It MAY include other optional 148 parameters as allowed by syntax of Auto-Submitted header field. 150 5. The message MAY contain Reply-To header field. 152 6. In order to prove authenticity of a challenge message, it MUST be 153 either DKIM [RFC6376] signed or S/MIME [RFC8551] signed. If DKIM 154 signing is used, the resulting DKIM-Signature header field MUST 155 contain the "h=" tag that includes at least "From", "Sender", 156 "Reply-To", "To", "CC", "Subject", "Date", "In-Reply-To", 157 "References", "Message-ID", "Content-Type" and "Content-Transfer- 158 Encoding" header fields. The message MUST also pass DMARC 159 validation [RFC7489], which implies DKIM and SPF validation 160 [RFC7208]. 162 7. The body of the challenge message is not used for automated 163 processing, so it can be any media type. (However there are 164 extra requirements on S/MIME signing, if used. See below.) 165 Typically it is text/plain or text/html containing human readable 166 explanation of the purpose of the message. If S/MIME signing is 167 used to prove authenticity of the challenge message, then 168 multipart/signed or "application/pkcs7-mime; smime-type=signed- 169 data;" media type should be used. Either way, it MUST use S/MIME 170 header protection. 172 Example ACME "challenge" email (note that DKIM related header fields 173 are not included for simplicity). 175 Auto-Submitted: auto-generated; type=acme 176 Date: Sat, 1 Sep 2018 10:08:55 +0100 177 Message-ID: 178 From: acme-generator@example.org 179 To: alexey@example.com 180 Subject: ACME: 181 Content-Type: text/plain 182 MIME-Version: 1.0 184 This is an automatically generated ACME challenge for email address 185 "alexey@example.com". If you haven't requested an S/MIME 186 certificate generation for this email address, be very afraid. 187 If you did request it, your email client might be able to process 188 this request automatically, or you might have to paste the first 189 token part into an external program. 191 Figure 1 193 3.2. ACME response email 195 A "response" email message MUST have the following structure: 197 1. The message Subject header field has the following syntax: 198 " ACME: ", where is 199 typically the reply prefix "Re: " and the string "ACME:" is 200 followed by folding white space (FWS, see [RFC5322]) and then by 201 . is the base64url encoded first part 202 of the ACME token (as received in the ACME challenge) that MUST 203 be at least 64 bit long after decoding. Due to recommended 78 204 octet line length limit in [RFC5322], the subject line can be 205 folded, so whitespaces (if any) within the MUST be 206 ignored. [RFC2231] encoding of subject MUST be supported, but 207 when used, only "UTF-8" and "US-ASCII" charsets MUST be used 208 (i.e. other charsets MUST NOT be used). 210 2. The From: header field contains the email address of the user 211 that is requesting S/MIME certificate issuance. 213 3. The To: header field of the response contains the value from the 214 Reply-To: header field from the challenge message (if set) or 215 from the From: header field of the challenge message otherwise. 217 4. The Cc: header field is ignored if present in the "response" 218 email message. 220 5. The In-Reply-To: header field SHOULD be set to the Message-ID 221 header field of the challenge message according to rules in 222 Section 3.6.4 of [RFC5322]. 224 6. Media type of the "response" email message is either text/plain 225 or multipart/alternative containing text/plain as one of the 226 alternatives. The text/plain body part (whether or not it is 227 inside multipart/alternative) MUST contain a block of lines 228 starting with the line "-----BEGIN ACME RESPONSE-----", followed 229 by one or more line containing base64url encoded SHA-256 digest 230 [FIPS180-4] of the key authorization, calculated based on token- 231 part1 (received over email) and token-part2 (received over 232 HTTPS). (Note that due to historic line length limitations in 233 email, line endings (CRLFs) can be freely inserted in the middle 234 of the encoded digest, so they MUST be ignored when processing 235 it.). The final line of the encoded digest is followed by the 236 line containing "-----END ACME RESPONSE-----". Any text before 237 and after this block is ignored. For example such text might 238 explain what to do with it for ACME-unaware clients. 240 7. There is no need to use any Content-Transfer-Encoding other than 241 7bit for the text/plain body part, however use of Quoted- 242 Printable or base64 is not prohibited in a "response" email 243 message. 245 8. In order to prove authenticity of a response message, it MUST be 246 DKIM [RFC6376] signed. The resulting DKIM-Signature header field 247 MUST contain the "h=" tag that includes at least "From", 248 "Sender", "Reply-To", "To", "CC", "Subject", "Date", "In-Reply- 249 To", "References", "Message-ID", "Content-Type" and "Content- 250 Transfer-Encoding" header fields. 252 Example ACME "response" email (note that DKIM related header fields 253 are not included for simplicity). 255 Date: Sat, 1 Sep 2018 11:12:00 +0100 256 Message-ID: <111-22222-3333333@example.com> 257 From: alexey@example.com 258 To: acme-generator@example.org 259 Subject: Re: ACME: 260 Content-Type: text/plain 261 MIME-Version: 1.0 263 -----BEGIN ACME RESPONSE----- 264 LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowy 265 jxAjEuX0.9jg46WB3rR_AHD-EBXdN7cBkH1WOu0tA3M9 266 fm21mqTI 267 -----END ACME RESPONSE----- 269 Figure 2 271 4. Internationalization Considerations 273 [RFC8616] updated/clarified use of DKIM/SPF/DMARC with 274 Internationalized Email addresses [RFC6531]. Please consult RFC 8616 275 in regards to any changes that need to be implemented. 277 Use of non ASCII characters in left hand sides of Internationalized 278 Email addresses requires putting Internationalized Email Addresses in 279 X.509 Certificates [RFC8398]. 281 5. IANA Considerations 282 5.1. ACME Identifier Type 284 IANA is requested to register a new Identifier type in the "ACME 285 Identifier Types" registry defined in Section 9.7.7 of [RFC8555] with 286 Label "email" and a Reference to [RFCXXXX], [RFC5321] and [RFC6531]. 287 The new Identifier Type corresponds to an (all ASCII) email address 288 [RFC5321] or Internationalized Email addresses [RFC6531]. 290 5.2. ACME Challenge Type 292 IANA is also requested to register a new entry in the "ACME 293 Validation Methods" registry defined in Section 9.7.8 of [RFC8555]. 294 This entry is as follows: 296 +----------------+-----------------+------+-----------+ 297 | Label | Identifier Type | ACME | Reference | 298 +----------------+-----------------+------+-----------+ 299 | email-reply-00 | email | Y | [RFCXXXX] | 300 +----------------+-----------------+------+-----------+ 302 6. Security Considerations 304 Please see Security Considerations of [RFC8555] for general security 305 considerations related to use of ACME. This challenge/response 306 protocol demonstrates that an entity that controls the private key 307 (corresponding to the public key in the certificate) also controls 308 the named email account. Any claims about the correctness or 309 fitness-for-purpose of the email address must be otherwise assured. 311 Security of "email-reply-00" challenge type depends on security of 312 email system. A third party that can read and reply to user's email 313 messages (by possessing a user's password or a secret derived from it 314 that can give read and reply access, such as "password equivalent" 315 information; or by being given permissions to act on user's behalf 316 using email delegation feature common in some email systems) can 317 request S/MIME certificates and is indistinguishable from the email 318 account owner. 320 Email system in its turn depends on DNS. A third party that can 321 manipulate DNS MX records for a domain might be able to redirect 322 email and can get (at least temporary) read and reply access to it. 323 Similar considerations apply to SPF and DMARC TXT records in DNS. 324 Use of DNSSEC by email system administrators is recommended to avoid 325 easy spoofing of DNS records affecting email system. 327 7. Normative References 329 [FIPS180-4] 330 National Institute of Standards and Technology, "Secure 331 Hash Standard (SHS)", FIPS PUB 180-4, August 2015, 332 . 335 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 336 Extensions (MIME) Part One: Format of Internet Message 337 Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, 338 . 340 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 341 Requirement Levels", BCP 14, RFC 2119, 342 DOI 10.17487/RFC2119, March 1997, 343 . 345 [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded 346 Word Extensions: Character Sets, Languages, and 347 Continuations", RFC 2231, DOI 10.17487/RFC2231, November 348 1997, . 350 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, 351 DOI 10.17487/RFC2818, May 2000, 352 . 354 [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object 355 Classes and Attribute Types Version 2.0", RFC 2985, 356 DOI 10.17487/RFC2985, November 2000, 357 . 359 [RFC3834] Moore, K., "Recommendations for Automatic Responses to 360 Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August 361 2004, . 363 [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data 364 Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, 365 . 367 [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, 368 DOI 10.17487/RFC5321, October 2008, 369 . 371 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, 372 DOI 10.17487/RFC5322, October 2008, 373 . 375 [RFC5890] Klensin, J., "Internationalized Domain Names for 376 Applications (IDNA): Definitions and Document Framework", 377 RFC 5890, DOI 10.17487/RFC5890, August 2010, 378 . 380 [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., 381 "DomainKeys Identified Mail (DKIM) Signatures", STD 76, 382 RFC 6376, DOI 10.17487/RFC6376, September 2011, 383 . 385 [RFC6531] Yao, J. and W. Mao, "SMTP Extension for Internationalized 386 Email", RFC 6531, DOI 10.17487/RFC6531, February 2012, 387 . 389 [RFC7208] Kitterman, S., "Sender Policy Framework (SPF) for 390 Authorizing Use of Domains in Email, Version 1", RFC 7208, 391 DOI 10.17487/RFC7208, April 2014, 392 . 394 [RFC7489] Kucherawy, M., Ed. and E. Zwicky, Ed., "Domain-based 395 Message Authentication, Reporting, and Conformance 396 (DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015, 397 . 399 [RFC8398] Melnikov, A., Ed. and W. Chuang, Ed., "Internationalized 400 Email Addresses in X.509 Certificates", RFC 8398, 401 DOI 10.17487/RFC8398, May 2018, 402 . 404 [RFC8550] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 405 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 406 Certificate Handling", RFC 8550, DOI 10.17487/RFC8550, 407 April 2019, . 409 [RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 410 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 411 Message Specification", RFC 8551, DOI 10.17487/RFC8551, 412 April 2019, . 414 [RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. 415 Kasten, "Automatic Certificate Management Environment 416 (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, 417 . 419 [RFC8616] Levine, J., "Email Authentication for Internationalized 420 Mail", RFC 8616, DOI 10.17487/RFC8616, June 2019, 421 . 423 Appendix A. Acknowledgements 425 Thank you to Andreas Schulze, Gerd v. Egidy, James A Baker, Ben 426 Schwartz and Michael Jenkins for suggestions, comments and 427 corrections on this document. 429 Author's Address 431 Alexey Melnikov 432 Isode Ltd 433 14 Castle Mews 434 Hampton, Middlesex TW12 2NP 435 UK 437 EMail: alexey.melnikov@isode.com