idnits 2.17.1 draft-ietf-acme-email-smime-10.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 (October 27, 2020) is 1269 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: 'RFCXXXX' is mentioned on line 319, 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 October 27, 2020 5 Expires: April 30, 2021 7 Extensions to Automatic Certificate Management Environment for end-user 8 S/MIME certificates 9 draft-ietf-acme-email-smime-10 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 April 30, 2021. 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 . . . . . . . . . . . . . 7 57 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 58 5.1. ACME Identifier Type . . . . . . . . . . . . . . . . . . 7 59 5.2. ACME Challenge Type . . . . . . . . . . . . . . . . . . . 7 60 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 61 7. Normative References . . . . . . . . . . . . . . . . . . . . 9 62 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 12 63 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 12 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 a "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. An end-user initiates issuance of an S/MIME certificate for one 105 of her email addresses. This might be done using email client UI 106 (and might use some HTTP API underneath), by visiting a 107 Certificate Authority web page or by sending an email to a well 108 known Certificate Authority's email address. This document 109 doesn't prescribe how exactly S/MIME certificate issuance is 110 initiated. 112 2. The ACME server (run by the Certificate Authority or their 113 authorized third party) generates a "challenge" email message 114 with the subject "ACME: ", where is 115 the base64url encoded [RFC4648] first part of the token, which 116 contains at least 64 bits of entropy. (ACME server MUST generate 117 token afresh for each S/MIME issuance request.) The challenge 118 email message structure is described in more details in 119 Section 3.1. The second part of the token (token-part2, which 120 also contains at least 64 bits of entropy) is returned over HTTPS 121 [RFC2818] to the ACME client. 123 3. The ACME client concatenates "token-part1" and "token-part2" to 124 create "token", calculates keyAuthorization (as per Section 8.1 125 of [RFC8555]), then includes the base64url encoded SHA-256 digest 126 [FIPS180-4] of the key authorization in the body of a response 127 email message containing a single text/plain MIME body part 128 [RFC2045]. The response email message structure is described in 129 more details in Section 3.2. 131 For an identifier of type "email", the PKCS#10 [RFC2986] Certificate 132 Signing Request (CSR) MUST contain the requested email address in an 133 extensionRequest attribute [RFC2985] requesting a subjectAltName 134 extension. 136 3.1. ACME challenge email 138 A "challenge" email message MUST have the following structure: 140 1. The message Subject header field has the following syntax: "ACME: 141 ", where the prefix "ACME:" is followed by folding 142 white space (FWS, see [RFC5322]) and then by , which 143 is the base64url encoded first part of the ACME token that MUST 144 be at least 64 bits long after decoding. Due to the recommended 145 78-octet line length limit in [RFC5322], the subject line can be 146 folded, so whitespaces (if any) within the MUST be 147 ignored. [RFC2231] encoding of the message Subject header field 148 MUST be supported, but when used, only "UTF-8" and "US-ASCII" 149 charsets MUST be used (i.e. other charsets MUST NOT be used). 151 2. The To header field MUST be the email address of the entity that 152 requested the S/MIME certificate to be generated. 154 3. The message MAY contain a Reply-To header field. 156 4. The message MUST include the "Auto-Submitted: auto-generated" 157 header field [RFC3834]. The "Auto-Submitted" header field SHOULD 158 include the "type=acme" parameter. It MAY include other optional 159 parameters as allowed by the syntax of the Auto-Submitted header 160 field. 162 5. In order to prove authenticity of a challenge message, it MUST be 163 either DKIM [RFC6376] signed or S/MIME [RFC8551] signed. If DKIM 164 signing is used, the resulting DKIM-Signature header field MUST 165 contain the "h=" tag that includes at least "From", "Sender", 166 "Reply-To", "To", "CC", "Subject", "Date", "In-Reply-To", 167 "References", "Message-ID", "Content-Type", and "Content- 168 Transfer-Encoding" header fields. The message MUST also pass 169 DMARC validation [RFC7489], which implies DKIM and SPF validation 170 [RFC7208]. 172 6. The body of the challenge message is not used for automated 173 processing, so it can be any media type. (However there are 174 extra requirements on S/MIME signing, if used. See below.) 175 Typically it is text/plain or text/html containing a human- 176 readable explanation of the purpose of the message. If S/MIME 177 signing is used to prove authenticity of the challenge message, 178 then the multipart/signed or "application/pkcs7-mime; smime- 179 type=signed-data;" media type should be used. Either way, it 180 MUST use S/MIME header protection. 182 An example ACME "challenge" email (note that DKIM related header 183 fields are not included for simplicity). 185 Auto-Submitted: auto-generated; type=acme 186 Date: Sat, 1 Sep 2018 10:08:55 +0100 187 Message-ID: 188 From: acme-generator@example.org 189 To: alexey@example.com 190 Subject: ACME: 191 Content-Type: text/plain 192 MIME-Version: 1.0 194 This is an automatically generated ACME challenge for email address 195 "alexey@example.com". If you haven't requested an S/MIME 196 certificate generation for this email address, be very afraid. 197 If you did request it, your email client might be able to process 198 this request automatically, or you might have to paste the first 199 token part into an external program. 201 Figure 1 203 3.2. ACME response email 205 A valid "response" email message MUST have the following structure: 207 1. The message Subject header field has the following syntax: 208 " ACME: ", where is 209 typically the reply prefix "Re:" and the string "ACME:" is 210 preceded and followed by folding white space (FWS, see [RFC5322]) 211 and then by . is the base64url encoded 212 first part of the ACME token (as received in the ACME challenge) 213 that MUST be at least 64 bits long after decoding. Due to 214 recommended 78 octet line length limit in [RFC5322], the subject 215 line can be folded, so whitespaces (if any) within the MUST be ignored. [RFC2231] encoding of the Subject header 217 field MUST be supported, but when used, only "UTF-8" and "US- 218 ASCII" charsets MUST be used (i.e. other charsets MUST NOT be 219 used). When parsing subjects, ACME servers must decode [RFC2231] 220 encoding (if any) and then they can ignore any prefix before the 221 "ACME:" label. 223 2. The From: header field contains the email address of the user 224 that is requesting S/MIME certificate issuance. 226 3. The To: header field of the response contains the value from the 227 Reply-To: header field from the challenge message (if set) or 228 from the From: header field of the challenge message otherwise. 230 4. The Cc: header field is ignored if present in the "response" 231 email message. 233 5. The In-Reply-To: header field SHOULD be set to the Message-ID 234 header field of the challenge message according to rules in 235 Section 3.6.4 of [RFC5322]. 237 6. List-* header fields [RFC4021][RFC8058] MUST be absent (i.e., the 238 reply can't come from a mailing list) 240 7. The media type of the "response" email message is either text/ 241 plain or multipart/alternative containing text/plain as one of 242 the alternatives. The text/plain body part (whether or not it is 243 inside multipart/alternative) MUST contain a block of lines 244 starting with the line "-----BEGIN ACME RESPONSE-----", followed 245 by one or more line containing the base64url-encoded SHA-256 246 digest [FIPS180-4] of the key authorization, calculated from 247 concatenated token-part1 (received over email) and token-part2 248 (received over HTTPS). See the 3rd bullet point in Section 3 for 249 more details. (Note that due to historical line length 250 limitations in email, line endings (CRLFs) can be freely inserted 251 in the middle of the encoded digest, so they MUST be ignored when 252 processing it.) The final line of the encoded digest is followed 253 by a line containing "-----END ACME RESPONSE-----". Any text 254 before and after this block is ignored. For example such text 255 might explain what to do with it for ACME-unaware clients. 257 8. There is no need to use any Content-Transfer-Encoding other than 258 7bit for the text/plain body part, however use of Quoted- 259 Printable or base64 is not prohibited in a "response" email 260 message. 262 9. In order to prove authenticity of a response message, it MUST be 263 DKIM [RFC6376] signed. The resulting DKIM-Signature header field 264 MUST contain the "h=" tag that includes at least "From", 265 "Sender", "Reply-To", "To", "CC", "Subject", "Date", "In-Reply- 266 To", "References", "Message-ID", "Content-Type", and "Content- 267 Transfer-Encoding" header fields. The message MUST also pass 268 DMARC validation [RFC7489], which implies DKIM and SPF validation 269 [RFC7208]. 271 Example ACME "response" email (note that DKIM related header fields 272 are not included for simplicity). 274 Date: Sat, 1 Sep 2018 11:12:00 +0100 275 Message-ID: <111-22222-3333333@example.com> 276 From: alexey@example.com 277 To: acme-generator@example.org 278 Subject: Re: ACME: 279 Content-Type: text/plain 280 MIME-Version: 1.0 282 -----BEGIN ACME RESPONSE----- 283 LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowy 284 jxAjEuX0.9jg46WB3rR_AHD-EBXdN7cBkH1WOu0tA3M9 285 fm21mqTI 286 -----END ACME RESPONSE----- 288 Figure 2 290 4. Internationalization Considerations 292 [RFC8616] updated/clarified use of DKIM/SPF/DMARC with 293 Internationalized Email addresses [RFC6531]. Please consult RFC 8616 294 in regards to any changes that need to be implemented. 296 Use of non ASCII characters in left hand sides of Internationalized 297 Email addresses requires putting Internationalized Email Addresses in 298 X.509 Certificates [RFC8398]. 300 5. IANA Considerations 302 5.1. ACME Identifier Type 304 IANA is requested to register a new Identifier type in the "ACME 305 Identifier Types" registry defined in Section 9.7.7 of [RFC8555] with 306 Label "email" and a Reference to [RFCXXXX], [RFC5321] and [RFC6531]. 307 The new Identifier Type corresponds to an (all ASCII) email address 308 [RFC5321] or Internationalized Email addresses [RFC6531]. 310 5.2. ACME Challenge Type 312 IANA is also requested to register a new entry in the "ACME 313 Validation Methods" registry defined in Section 9.7.8 of [RFC8555]. 314 This entry is as follows: 316 +----------------+-----------------+------+-----------+ 317 | Label | Identifier Type | ACME | Reference | 318 +----------------+-----------------+------+-----------+ 319 | email-reply-00 | email | Y | [RFCXXXX] | 320 +----------------+-----------------+------+-----------+ 322 6. Security Considerations 324 Please see Security Considerations of [RFC8555] for general security 325 considerations related to use of ACME. This challenge/response 326 protocol demonstrates that an entity that controls the private key 327 (corresponding to the public key in the certificate) also controls 328 the named email account. Any claims about the correctness or 329 fitness-for-purpose of the email address must be otherwise assured. 330 I.e. ACME server is only vouching that the requested email address 331 seem to belong to the entity that requested the certificate. 333 The security of the "email-reply-00" challenge type depends on the 334 security of the email system. A third party that can read and reply 335 to user's email messages (by possessing a user's password or a secret 336 derived from it that can give read and reply access, such as 337 "password equivalent" information; or by being given permissions to 338 act on a user's behalf using email delegation feature common in some 339 email systems) can request S/MIME certificates using the protocol 340 specified in this document and is indistinguishable from the email 341 account owner. This has several possible implications: 343 1. an entity that compromised an email account would be able to 344 request S/MIME certificates using the protocol specified in this 345 document and such entity couldn't be distinguished from the 346 legitimate email account owner (unless some external sources of 347 information are consulted); 349 2. for email addresses with legitimate shared access/control by 350 multiple users, any such user would be able to request S/MIME 351 certificates using the protocol specified in this document and 352 such requests can't be attributed to a specific user without 353 consulting external systems (such as IMAP/SMTP access logs); 355 3. protocol specified in this document is not suitable for use with 356 email addresses associated with mailing lists [RFC5321]. While 357 it is not always possible to guarantee that a particular S/MIME 358 certificate request is not from a mailing list address, 359 prohibition on inclusion of List-* header fields helps 360 Certificate Issuers to handle most common cases. 362 An email system in its turn depends on DNS. A third party that can 363 manipulate DNS MX records for a domain might be able to redirect 364 email and can get (at least temporary) read and reply access to it. 365 Similar considerations apply to SPF and DMARC TXT records in DNS. 366 Use of DNSSEC by email system administrators is recommended to avoid 367 making it easy to spoof DNS records affecting email system. However 368 use of DNSSEC is not ubiquitous at the time of publishing of this 369 document, so it is not required here. Also, many existing systems 370 that rely on verification of ownership of an email address, for 371 example 2 factor authentication systems used by banks or traditional 372 certificate issuance systems send email messages to email addresses, 373 expecting the owner to click on the link supplied in them (or to 374 reply to a message), without requiring use of DNSSEC. So the risk of 375 not requiring DNSSEC is presumed acceptable in this document. 377 7. Normative References 379 [FIPS180-4] 380 National Institute of Standards and Technology, "Secure 381 Hash Standard (SHS)", FIPS PUB 180-4, August 2015, 382 . 385 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 386 Extensions (MIME) Part One: Format of Internet Message 387 Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, 388 . 390 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 391 Requirement Levels", BCP 14, RFC 2119, 392 DOI 10.17487/RFC2119, March 1997, 393 . 395 [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded 396 Word Extensions: Character Sets, Languages, and 397 Continuations", RFC 2231, DOI 10.17487/RFC2231, November 398 1997, . 400 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, 401 DOI 10.17487/RFC2818, May 2000, 402 . 404 [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object 405 Classes and Attribute Types Version 2.0", RFC 2985, 406 DOI 10.17487/RFC2985, November 2000, 407 . 409 [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification 410 Request Syntax Specification Version 1.7", RFC 2986, 411 DOI 10.17487/RFC2986, November 2000, 412 . 414 [RFC3834] Moore, K., "Recommendations for Automatic Responses to 415 Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August 416 2004, . 418 [RFC4021] Klyne, G. and J. Palme, "Registration of Mail and MIME 419 Header Fields", RFC 4021, DOI 10.17487/RFC4021, March 420 2005, . 422 [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data 423 Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, 424 . 426 [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, 427 DOI 10.17487/RFC5321, October 2008, 428 . 430 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, 431 DOI 10.17487/RFC5322, October 2008, 432 . 434 [RFC5890] Klensin, J., "Internationalized Domain Names for 435 Applications (IDNA): Definitions and Document Framework", 436 RFC 5890, DOI 10.17487/RFC5890, August 2010, 437 . 439 [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., 440 "DomainKeys Identified Mail (DKIM) Signatures", STD 76, 441 RFC 6376, DOI 10.17487/RFC6376, September 2011, 442 . 444 [RFC6531] Yao, J. and W. Mao, "SMTP Extension for Internationalized 445 Email", RFC 6531, DOI 10.17487/RFC6531, February 2012, 446 . 448 [RFC7208] Kitterman, S., "Sender Policy Framework (SPF) for 449 Authorizing Use of Domains in Email, Version 1", RFC 7208, 450 DOI 10.17487/RFC7208, April 2014, 451 . 453 [RFC7489] Kucherawy, M., Ed. and E. Zwicky, Ed., "Domain-based 454 Message Authentication, Reporting, and Conformance 455 (DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015, 456 . 458 [RFC8058] Levine, J. and T. Herkula, "Signaling One-Click 459 Functionality for List Email Headers", RFC 8058, 460 DOI 10.17487/RFC8058, January 2017, 461 . 463 [RFC8398] Melnikov, A., Ed. and W. Chuang, Ed., "Internationalized 464 Email Addresses in X.509 Certificates", RFC 8398, 465 DOI 10.17487/RFC8398, May 2018, 466 . 468 [RFC8550] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 469 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 470 Certificate Handling", RFC 8550, DOI 10.17487/RFC8550, 471 April 2019, . 473 [RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 474 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 475 Message Specification", RFC 8551, DOI 10.17487/RFC8551, 476 April 2019, . 478 [RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. 479 Kasten, "Automatic Certificate Management Environment 480 (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, 481 . 483 [RFC8616] Levine, J., "Email Authentication for Internationalized 484 Mail", RFC 8616, DOI 10.17487/RFC8616, June 2019, 485 . 487 Appendix A. Acknowledgements 489 Thank you to Andreas Schulze, Gerd v. Egidy, James A. Baker, Ben 490 Schwartz, Peter Yee and Michael Jenkins for suggestions, comments, 491 and corrections on this document. 493 Author's Address 495 Alexey Melnikov 496 Isode Ltd 497 14 Castle Mews 498 Hampton, Middlesex TW12 2NP 499 UK 501 EMail: alexey.melnikov@isode.com