idnits 2.17.1 draft-ietf-uta-smtp-require-tls-07.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 (January 22, 2019) is 1919 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC3461' is defined on line 677, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'MailParams' -- Possible downref: Non-RFC (?) normative reference: ref. 'PermMessageHeaderFields' ** Obsolete normative reference: RFC 6125 (Obsoleted by RFC 9525) ** Obsolete normative reference: RFC 7525 (Obsoleted by RFC 9325) -- Possible downref: Non-RFC (?) normative reference: ref. 'SMTPStatusCodes' -- Obsolete informational reference (is this intentional?): RFC 3501 (Obsoleted by RFC 9051) -- Obsolete informational reference (is this intentional?): RFC 5751 (Obsoleted by RFC 8551) Summary: 2 errors (**), 0 flaws (~~), 2 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force J. Fenton 3 Internet-Draft Altmode Networks 4 Intended status: Standards Track January 22, 2019 5 Expires: July 26, 2019 7 SMTP Require TLS Option 8 draft-ietf-uta-smtp-require-tls-07 10 Abstract 12 The SMTP STARTTLS option, used in negotiating transport-level 13 encryption of SMTP connections, is not as useful from a security 14 standpoint as it might be because of its opportunistic nature; 15 message delivery is, by default, prioritized over security. This 16 document describes an SMTP service extension, REQUIRETLS, and message 17 header field, RequireTLS. If the REQUIRETLS option or RequireTLS 18 message header field is used when sending a message, it asserts a 19 request on the part of the message sender to override the default 20 negotiation of TLS, either by requiring that TLS be negotiated when 21 the message is relayed, or by requesting that recipient-side policy 22 mechanisms such as MTA-STS and DANE be ignored when relaying a 23 message for which security is unimportant. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on July 26, 2019. 42 Copyright Notice 44 Copyright (c) 2019 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 60 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 61 2. The REQUIRETLS Service Extension . . . . . . . . . . . . . . 4 62 3. The RequireTLS Header Field . . . . . . . . . . . . . . . . . 5 63 4. REQUIRETLS Semantics . . . . . . . . . . . . . . . . . . . . 6 64 4.1. REQUIRETLS Receipt Requirements . . . . . . . . . . . . . 6 65 4.2. REQUIRETLS Sender Requirements . . . . . . . . . . . . . 6 66 4.2.1. Sending with TLS Required . . . . . . . . . . . . . . 6 67 4.2.2. Sending with TLS Optional . . . . . . . . . . . . . . 7 68 4.3. REQUIRETLS Submission . . . . . . . . . . . . . . . . . . 8 69 4.4. Delivery of REQUIRETLS messages . . . . . . . . . . . . . 8 70 5. Non-delivery message handling . . . . . . . . . . . . . . . . 8 71 6. Mailing list considerations . . . . . . . . . . . . . . . . . 9 72 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 73 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 74 8.1. Passive attacks . . . . . . . . . . . . . . . . . . . . . 11 75 8.2. Active attacks . . . . . . . . . . . . . . . . . . . . . 11 76 8.3. Bad Actor MTAs . . . . . . . . . . . . . . . . . . . . . 11 77 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 78 10. Revision History . . . . . . . . . . . . . . . . . . . . . . 12 79 10.1. Changes since -06 Draft . . . . . . . . . . . . . . . . 12 80 10.2. Changes since -05 Draft . . . . . . . . . . . . . . . . 12 81 10.3. Changes since -04 Draft . . . . . . . . . . . . . . . . 12 82 10.4. Changes since -03 Draft . . . . . . . . . . . . . . . . 13 83 10.5. Changes since -02 Draft . . . . . . . . . . . . . . . . 13 84 10.6. Changes since -01 Draft . . . . . . . . . . . . . . . . 13 85 10.7. Changes since -00 Draft . . . . . . . . . . . . . . . . 13 86 10.8. Changes since fenton-03 Draft . . . . . . . . . . . . . 13 87 10.9. Changes Since -02 Draft . . . . . . . . . . . . . . . . 14 88 10.10. Changes Since -01 Draft . . . . . . . . . . . . . . . . 14 89 10.11. Changes Since -00 Draft . . . . . . . . . . . . . . . . 14 90 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 91 11.1. Normative References . . . . . . . . . . . . . . . . . . 14 92 11.2. Informative References . . . . . . . . . . . . . . . . . 16 93 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 17 94 A.1. REQUIRETLS SMTP Option . . . . . . . . . . . . . . . . . 17 95 A.2. RequireTLS Header Field . . . . . . . . . . . . . . . . . 18 96 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 98 1. Introduction 100 The SMTP [RFC5321] STARTTLS service extension [RFC3207] provides a 101 means by which an SMTP server and client can establish a Transport 102 Layer Security (TLS) protected session for the transmission of email 103 messages. By default, TLS is used only upon mutual agreement 104 (successful negotiation) of STARTTLS between the client and server; 105 if this is not possible, the message is sent without transport 106 encryption. Furthermore, it is common practice for the client to 107 negotiate TLS even if the SMTP server's certificate is invalid. 109 Policy mechanisms such as DANE [RFC7672] and MTA-STS [RFC8461] may 110 impose requirements for the use of TLS for email destined for some 111 domains. However, such policies do not allow the sender to specify 112 which messages are more sensitive and require transport-level 113 encryption, and which ones are less sensitive and ought to be relayed 114 even if TLS cannot be negotiated successfully. 116 The default opportunistic nature of SMTP TLS enables several "on the 117 wire" attacks on SMTP security between MTAs. These include passive 118 eavesdropping on connections for which TLS is not used, interference 119 in the SMTP protocol to prevent TLS from being negotiated (presumably 120 accompanied by eavesdropping), and insertion of a man-in-the-middle 121 attacker exploiting the lack of server authentication by the client. 122 Attacks are described in more detail in the Security Considerations 123 section of this document. 125 REQUIRETLS consists of two mechanisms: an SMTP service extension and 126 a message header field. The service extension is used to specify 127 that a given message sent during a particular session MUST be sent 128 over a TLS-protected session with specified security characteristics. 129 It also requires that the SMTP server advertise that it supports 130 REQUIRETLS, in effect promising that it will honor the requirement to 131 enforce TLS transmission and REQUIRETLS support for onward 132 transmission of those messages. 134 The RequireTLS message header field is used to convey a request to 135 ignore recipient-side policy mechanisms such as MTA-STS and DANE, 136 thereby prioritizing delivery over ability to negotiate TLS. Unlike 137 the service extension, the RequireTLS header field allows the message 138 to transit through one or more MTAs that do not support REQUIRETLS. 140 1.1. Requirements Language 142 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 143 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 144 "OPTIONAL" in this document are to be interpreted as described in BCP 145 14 [RFC2119] [RFC8174] when, and only when, they appear in all 146 capitals, as shown here. 148 The formal syntax uses the Augmented Backus-Naur Form (ABNF) 149 [RFC5234] including the core rules defined in Appendix B of that 150 document. 152 2. The REQUIRETLS Service Extension 154 1. The textual name of the extension is "Require TLS". 156 2. The EHLO keyword value associated with this extension is 157 "REQUIRETLS". 159 3. No additional SMTP verbs are defined by this extension. 161 4. One optional parameter ("REQUIRETLS") is added to the MAIL FROM 162 command by this extension. No value is associated with this 163 parameter. 165 5. The maximum length of a MAIL FROM command line is increased by 11 166 octets by the possible addition of a space and the REQUIRETLS 167 keyword. 169 6. One new SMTP status code is defined by this extension to convey 170 an error condition resulting from failure of the client to send 171 to a server not also supporting the REQUIRETLS extension. 173 7. The REQUIRETLS extension is valid for message relay [RFC5321], 174 submission [RFC6409], and the Local Mail Transfer Protocol (LMTP) 175 [RFC2033] 177 8. The ABNF syntax for the MAIL FROM parameter is as follows: 179 requiretls-param = "REQUIRETLS" 180 ; where requiretls-param is an instance of an 181 ; esmtp-param used in Mail-parameters in 182 ; RFC 5321 Section 4.1.2. There is no esmtp-value 183 ; associated with requiretls-param. 185 In order to specify REQUIRETLS treatment for a given message, the 186 REQUIRETLS option is specified on the MAIL FROM command when that 187 message is transmitted. This option MUST only be specified in the 188 context of an SMTP session meeting the security requirements of 189 REQUIRETLS: 191 o The session itself MUST employ TLS transmission. 193 o If the SMTP server to which the message is being transmitted is 194 identified through an MX record lookup, its name MUST be validated 195 via a DNSSEC signature on the recipient domain's MX record, or the 196 MX hostname MUST be validated by an MTA-STS policy as described in 197 Section 4.1 of RFC 8461 [RFC8461]. DNSSEC is defined in RFC 4033 198 [RFC4033], RFC 4034 [RFC4034], and RFC 4035 [RFC4035]. 200 o The certificate presented by the SMTP server MUST either verify 201 successfully in a trust chain leading to a certificate trusted by 202 the SMTP client or it MUST verify successfully using DANE as 203 specified in RFC 7672 [RFC7672]. For trust chains, the choice of 204 trusted (root) certificates is at the discretion of the SMTP 205 client. 207 o Following the negotiation of STARTTLS, the SMTP server MUST 208 advertise in the subsequent EHLO response that it supports 209 REQUIRETLS. 211 3. The RequireTLS Header Field 213 One new message header field [RFC5322], RequireTLS, is defined by 214 this specification. It is used for messages for which the originator 215 requests that recipient TLS policy (including MTA-STS [RFC8461] and 216 DANE [RFC7672]) be ignored. This might be done, for example, to 217 report a misconfigured mail server, such as an expired TLS 218 certificate. 220 The RequireTLS header field has a single REQUIRED parameter: 222 o NO - The SMTP client SHOULD attempt to send the message regardless 223 of its ability to negotiate STARTTLS with the SMTP server, 224 ignoring policy-based mechanisms (including MTA-STS and DANE), if 225 any, asserted by the recipient domain. Nevertheless, the client 226 SHOULD negotiate STARTTLS with the server if available. 228 More than one instance of the RequireTLS header field MUST NOT appear 229 in a given message. 231 The ABNF syntax for the RequireTLS header field is as follows: 233 requiretls-field = "RequireTLS:" [FWS] "No" CRLF 234 ; where requiretls-field in an instance of an 235 ; optional-field defined in RFC 5322 Section 236 ; 3.6.8. 237 FWS = 238 CRLF = 240 4. REQUIRETLS Semantics 242 4.1. REQUIRETLS Receipt Requirements 244 Upon receipt of the REQUIRETLS option on a MAIL FROM command during 245 the receipt of a message for which the return-path is not empty 246 (indicating a bounce message), an SMTP server MUST tag that message 247 as needing REQUIRETLS handling. 249 Upon receipt of a message not specifying the REQUIRETLS option on its 250 MAIL FROM command but containing the RequireTLS header field in its 251 message header, an SMTP server implementing this specification MUST 252 tag that message with the option specified in the RequireTLS header 253 field. If the REQUIRETLS MAIL FROM parameter is specified, the 254 RequireTLS header field MUST be ignored but MAY be included in onward 255 relay of the message. 257 The manner in which the above tagging takes place is implementation- 258 dependent. If the message is being locally aliased and redistributed 259 to multiple addresses, all instances of the message MUST be tagged in 260 the same manner. 262 4.2. REQUIRETLS Sender Requirements 264 4.2.1. Sending with TLS Required 266 When sending a message tagged as requiring TLS for which the MAIL 267 FROM return-path is not empty (an empty MAIL FROM return-path 268 indicating a bounce message), the sending (client) MTA MUST: 270 1. Look up the SMTP server to which the message is to be sent as 271 described in [RFC5321] Section 5.1. 273 2. If the server lookup is accomplished via the recipient domain's 274 MX record (the usual case) and is not accompanied by a valid 275 DNSSEC signature, the client MUST also validate the SMTP server 276 name using MTA-STS as described in RFC 8461 [RFC8461] 277 Section 4.1. 279 3. Open an SMTP session with the peer SMTP server using the EHLO 280 verb. 282 4. Establish a TLS-protected SMTP session with its peer SMTP server 283 and authenticate the server's certificate as specified in 284 [RFC6125] or [RFC7672] as applicable. 286 5. Ensure that the response to the subsequent EHLO following 287 establishment of the TLS protection advertises the REQUIRETLS 288 capability. 290 The SMTP client SHOULD follow the recommendations in [RFC7525] or its 291 successor with respect to negotiation of the TLS session. 293 If any of the above steps fail, the client MUST issue a QUIT to the 294 server and repeat steps 2-5 with each host on the recipient domain's 295 list of MX hosts in an attempt to find a mail path that meets the 296 sender's requirements. The client MAY send other, unprotected, 297 messages to that server if it has any prior to issuing the QUIT. If 298 there are no more MX hosts, the client MUST NOT transmit the message 299 to the domain. 301 Following such a failure, the SMTP client MUST send a non-delivery 302 notification to the reverse-path of the failed message as described 303 in section 3.6 of [RFC5321]. The following status codes [RFC5248] 304 SHOULD be used: 306 o REQUIRETLS not supported by server: 5.7.YYY REQUIRETLS needed 308 o Unable to establish TLS-protected SMTP session: 5.7.10 Encryption 309 needed 311 Refer to Section 5 for further requirements regarding non-delivery 312 messages. 314 If all REQUIRETLS requirements have been met, transmit the message, 315 issuing the REQUIRETLS option on the MAIL FROM command with the 316 required option(s), if any. 318 4.2.2. Sending with TLS Optional 320 Messages tagged RequireTLS: NO are handled as follows. When sending 321 such a message, the sending (client) MTA MUST: 323 o Look up the SMTP server to which the message is to be sent as 324 described in [RFC5321] Section 5.1. 326 o Open an SMTP session with the peer SMTP server using the EHLO 327 verb. Attempt to negotiate STARTTLS if possible, and follow any 328 policy published by the recipient domain, but do not fail if this 329 is unsuccessful. 331 Some SMTP servers may be configured to require STARTTLS connections 332 as a matter of policy and not accept messages in the absence of 333 STARTTLS. A non-delivery notification MUST be returned to the sender 334 if message relay fails due to an inability to negotiate STARTTLS when 335 required by the server. 337 Since messages tagged with RequireTLS: NO will sometimes be sent to 338 SMTP servers not supporting REQUIRETLS, that option will not be 339 uniformly observed by all SMTP relay hops. 341 4.3. REQUIRETLS Submission 343 An MUA or other agent making the initial introduction of a message 344 has authority to decide whether to require TLS. When TLS is to be 345 required, it MUST do so by negotiating STARTTLS and REQUIRETLS and 346 include the REQUIRETLS option on the MAIL FROM command, as is done 347 for message relay. 349 When TLS is not to be required, the sender MUST include the 350 RequireTLS header field in the message. SMTP servers implementing 351 this specification MUST interpret this header field as described in 352 Section 4.1. 354 In either case, the decision whether to specify REQUIRETLS MAY be 355 done based on a user interface selection or based on a ruleset or 356 other policy. The manner in which the decision to require TLS is 357 made is implementation-dependent and is beyond the scope of this 358 specification. 360 4.4. Delivery of REQUIRETLS messages 362 Messages are usually retrieved by end users using protocols other 363 than SMTP such as IMAP [RFC3501], POP [RFC1939], or web mail systems. 364 Mail delivery agents supporting the REQUIRETLS SMTP option SHOULD 365 observe the guidelines in [RFC8314]. 367 5. Non-delivery message handling 369 Non-delivery ("bounce") messages usually contain important metadata 370 about the message to which they refer, including the original message 371 header. They therefore MUST be protected in the same manner as the 372 original message. All non-delivery messages resulting from messages 373 with the REQUIRETLS SMTP option, whether resulting from a REQUIRETLS 374 error or some other, MUST also specify the REQUIRETLS SMTP option 375 unless redacted as described below. 377 The path from the origination of an error bounce message back to the 378 MAIL FROM address may not share the same REQUIRETLS support as the 379 forward path. Therefore, users requiring TLS are advised to make 380 sure that they are capable of receiving mail using REQUIRETLS as 381 well. Otherwise, such non-delivery messages will be lost. 383 If a REQUIRETLS message is bounced, the server MUST behave as if 384 RET=HDRS was present as described in [RFC3461]. If both RET=FULL and 385 REQUIRETLS are present, the RET=FULL MUST be disregarded and MAY be 386 transformed to RET=HDRS on relay. The SMTP client for a REQUIRETLS 387 bounce message uses an empty MAIL FROM return-path as required by 388 [RFC5321]. When the MAIL FROM return-path is empty, the REQUIRETLS 389 parameter SHOULD NOT cause a bounce message to be discarded even if 390 the next-hop relay does not advertise REQUIRETLS. 392 Senders of messages requiring TLS are advised to consider the 393 possibility that bounce messages will be lost as a result of 394 REQUIRETLS return path failure, and that some information could be 395 leaked if a bounce message is not able to be transmitted with 396 REQUIRETLS. 398 6. Mailing list considerations 400 Mailing lists, upon receipt of a message, originate new messages to 401 list addresses. This is distinct from an aliasing operation that 402 redirects the original message, in some cases to multiple recipients. 403 The requirement to preserve the REQUIRETLS tag therefore does not 404 necessarily extend to mailing lists, although the inclusion of the 405 RequireTLS header field MAY cause messages sent to mailing lists to 406 inherit this characteristic. REQUIRETLS users SHOULD be made aware 407 of this limitation so that they use caution when sending to mailing 408 lists and do not assume that REQUIRETLS applies to messages from the 409 list operator to list members. 411 Mailing list operators MAY apply REQUIRETLS requirements in incoming 412 messages to the resulting messages they originate. If this is done, 413 they SHOULD also apply these requirements to administrative traffic, 414 such as messages to moderators requesting approval of messages. 416 7. IANA Considerations 418 If published as an RFC, this draft requests the addition of the 419 following keyword to the SMTP Service Extensions Registry 420 [MailParams]: 422 Textual name: RequireTLS 423 EHLO keyword value: REQUIRETLS 424 Syntax and parameters: (no parameters) 425 Additional SMTP verbs: none 426 MAIL and RCPT parameters: REQUIRETLS parameter on MAIL 427 Behavior: Use of the REQUIRETLS parameter on the 428 MAIL verb causes that message to require 429 the use of TLS and tagging with 430 REQUIRETLS for all onward relay. 431 Command length increment: 11 characters 433 If published as an RFC, this draft requests the addition of an entry 434 to the Simple Mail Transfer Protocol (SMTP) Enhanced Status Codes 435 Registry [SMTPStatusCodes]: 437 Code: 5.7.YYY 438 Sample Text: REQUIRETLS support required 439 Associated basic status code: 530 440 Description: This indicates that the message was not 441 able to be forwarded because it was 442 received with a REQUIRETLS requirement 443 and none of the SMTP servers to which 444 the message should be forwarded provide 445 this support. 446 Reference: (this document) 447 Submitter: J. Fenton 448 Change controller: IESG 450 If published as an RFC, this draft requests the addition of an entry 451 to the Permanent Message Header Field Names Registry 452 [PermMessageHeaderFields]: 454 Header field name: RequireTLS 455 Applicable protocol: mail 456 Status: standard 457 Author/change controller: IETF 458 Specification document: (this document) 460 This section is to be updated for publication by the RFC Editor. 462 8. Security Considerations 464 The purpose of REQUIRETLS is to give the originator of a message 465 control over the security of email they send, either by conveying an 466 expectation that it will be transmitted in an encrypted form "over 467 the wire" or explicitly that transport encryption is not required if 468 it cannot be successfully negotiated. 470 The following considerations apply to the REQUIRETLS service 471 extension but not the RequireTLS header field, since messages 472 specifying the header field are less concerned with transport 473 security. 475 8.1. Passive attacks 477 REQUIRETLS is generally effective against passive attackers who are 478 merely trying to eavesdrop on an SMTP exchange between an SMTP client 479 and server. This assumes, of course, the cryptographic integrity of 480 the TLS connection being used. 482 8.2. Active attacks 484 Active attacks against TLS encrypted SMTP connections can take many 485 forms. One such attack is to interfere in the negotiation by 486 changing the STARTTLS command to something illegal such as XXXXXXXX. 487 This causes TLS negotiation to fail and messages to be sent in the 488 clear, where they can be intercepted. REQUIRETLS detects the failure 489 of STARTTLS and declines to send the message rather than send it 490 insecurely. 492 A second form of attack is a man-in-the-middle attack where the 493 attacker terminates the TLS connection rather than the intended SMTP 494 server. This is possible when, as is commonly the case, the SMTP 495 client either does not verify the server's certificate or establishes 496 the connection even when the verification fails. REQUIRETLS requires 497 successful certificate validation before sending the message. 499 Another active attack involves the spoofing of DNS MX records of the 500 recipient domain. An attacker having this capability could 501 potentially cause the message to be redirected to a mail server under 502 the attacker's own control, which would presumably have a valid 503 certificate. REQUIRETLS requires that the recipient domain's MX 504 record lookup be validated either using DNSSEC or via a published 505 MTA-STS policy that specifies the acceptable SMTP server hostname(s) 506 for the recipient domain. 508 8.3. Bad Actor MTAs 510 A bad-actor MTA along the message transmission path could 511 misrepresent its support of REQUIRETLS and/or actively strip 512 REQUIRETLS tags from messages it handles. However, since 513 intermediate MTAs are already trusted with the cleartext of messages 514 they handle, and are not part of the threat model for transport-layer 515 security, they are also not part of the threat model for REQUIRETLS. 517 It should be reemphasized that since SMTP TLS is a transport-layer 518 security protocol, messages sent using REQUIRETLS are not encrypted 519 end-to-end and are visible to MTAs that are part of the message 520 delivery path. Messages containing sensitive information that MTAs 521 should not have access to MUST be sent using end-to-end content 522 encryption such as OpenPGP [RFC4880] or S/MIME [RFC5751]. 524 9. Acknowledgements 526 The author would like to acknowledge many helpful suggestions on the 527 ietf-smtp and uta mailing lists, in particular those of Viktor 528 Dukhovni, Chris Newman, Tony Finch, Jeremy Harris, Arvel Hathcock, 529 John Klensin, John Levine, Rolf Sonneveld, and Per Thorsheim. 531 10. Revision History 533 To be removed by RFC Editor upon publication as an RFC. 535 10.1. Changes since -06 Draft 537 Various changes in response to AD review: 539 o Reference RFC 7525 for TLS negotiation recommendations. 541 o Make reference to requested 5.7.YYY error code consistent. 543 o Clarify applicability to LMTP and submission. 545 o Provide ABNF for syntax of SMTP option and header field and 546 examples in Appendix A. 548 o Correct use of normative language in Section 5. 550 o Clarify case where REQUIRETLS option is used on bounce messages. 552 o Improve Security Requirements wording to be incusive of both SMTP 553 option and header field. 555 10.2. Changes since -05 Draft 557 Corrected IANA Permanent Message Header Fields Registry request. 559 10.3. Changes since -04 Draft 561 Require validation of SMTP server hostname via DNSSEC or MTA-STS 562 policy when TLS is required. 564 10.4. Changes since -03 Draft 566 Working Group Last Call changes, including: 568 o Correct reference for SMTP DANE 570 o Clarify that RequireTLS: NO applies to both MTA-STS and DANE 571 policies 573 o Correct newly-defined status codes 575 o Update MTA-STS references to RFC 577 10.5. Changes since -02 Draft 579 o More complete documentation for IANA registration requests. 581 o Changed bounce handling to use RET parameters of RFC 3461, along 582 with slightly more liberal transmission of bounces even if 583 REQUIRETLS can't be negotiated. 585 10.6. Changes since -01 Draft 587 o Converted DEEP references to RFC 8314. 589 o Removed REQUIRETLS options: CHAIN, DANE, and DNSSEC. 591 o Editorial corrections, notably making the header field name 592 consistent (RequireTLS rather than Require-TLS). 594 10.7. Changes since -00 Draft 596 o Created new header field, Require-TLS, for use by "NO" option. 598 o Removed "NO" option from SMTP service extension. 600 o Recommend DEEP requirements for delivery of messages requiring 601 TLS. 603 o Assorted copy edits 605 10.8. Changes since fenton-03 Draft 607 o Wording improvements from Rolf Sonneveld review 22 July 2017 609 o A few copy edits 611 o Conversion from individual to UTA WG draft 613 10.9. Changes Since -02 Draft 615 o Incorporation of "MAY TLS" functionality as REQUIRETLS=NO per 616 suggestion on UTA WG mailing list. 618 o Additional guidance on bounce messages 620 10.10. Changes Since -01 Draft 622 o Specified retries when multiple MX hosts exist for a given domain. 624 o Clarified generation of non-delivery messages 626 o Specified requirements for application of REQUIRETLS to mail 627 forwarders and mailing lists. 629 o Clarified DNSSEC requirements to include MX lookup only. 631 o Corrected terminology regarding message retrieval vs. delivery. 633 o Changed category to standards track. 635 10.11. Changes Since -00 Draft 637 o Conversion of REQUIRETLS from an SMTP verb to a MAIL FROM 638 parameter to better associate REQUIRETLS requirements with 639 transmission of individual messages. 641 o Addition of an option to require DNSSEC lookup of the remote mail 642 server, since this affects the common name of the certificate that 643 is presented. 645 o Clarified the wording to more clearly state that TLS sessions must 646 be established and not simply that STARTTLS is negotiated. 648 o Introduced need for minimum encryption standards (key lengths and 649 algorithms) 651 o Substantially rewritten Security Considerations section 653 11. References 655 11.1. Normative References 657 [MailParams] 658 Internet Assigned Numbers Authority (IANA), "IANA Mail 659 Parameters", 2007, 660 . 662 [PermMessageHeaderFields] 663 Internet Assigned Numbers Authority (IANA), "Permanent 664 Message Header Field Names Registry", 2004, 665 . 668 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 669 Requirement Levels", BCP 14, RFC 2119, 670 DOI 10.17487/RFC2119, March 1997, 671 . 673 [RFC3207] Hoffman, P., "SMTP Service Extension for Secure SMTP over 674 Transport Layer Security", RFC 3207, DOI 10.17487/RFC3207, 675 February 2002, . 677 [RFC3461] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service 678 Extension for Delivery Status Notifications (DSNs)", 679 RFC 3461, DOI 10.17487/RFC3461, January 2003, 680 . 682 [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. 683 Rose, "DNS Security Introduction and Requirements", 684 RFC 4033, DOI 10.17487/RFC4033, March 2005, 685 . 687 [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. 688 Rose, "Resource Records for the DNS Security Extensions", 689 RFC 4034, DOI 10.17487/RFC4034, March 2005, 690 . 692 [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. 693 Rose, "Protocol Modifications for the DNS Security 694 Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005, 695 . 697 [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 698 Specifications: ABNF", STD 68, RFC 5234, 699 DOI 10.17487/RFC5234, January 2008, 700 . 702 [RFC5248] Hansen, T. and J. Klensin, "A Registry for SMTP Enhanced 703 Mail System Status Codes", BCP 138, RFC 5248, 704 DOI 10.17487/RFC5248, June 2008, 705 . 707 [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, 708 DOI 10.17487/RFC5321, October 2008, 709 . 711 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, 712 DOI 10.17487/RFC5322, October 2008, 713 . 715 [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and 716 Verification of Domain-Based Application Service Identity 717 within Internet Public Key Infrastructure Using X.509 718 (PKIX) Certificates in the Context of Transport Layer 719 Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March 720 2011, . 722 [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, 723 "Recommendations for Secure Use of Transport Layer 724 Security (TLS) and Datagram Transport Layer Security 725 (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May 726 2015, . 728 [RFC7672] Dukhovni, V. and W. Hardaker, "SMTP Security via 729 Opportunistic DNS-Based Authentication of Named Entities 730 (DANE) Transport Layer Security (TLS)", RFC 7672, 731 DOI 10.17487/RFC7672, October 2015, 732 . 734 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 735 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 736 May 2017, . 738 [RFC8314] Moore, K. and C. Newman, "Cleartext Considered Obsolete: 739 Use of Transport Layer Security (TLS) for Email Submission 740 and Access", RFC 8314, DOI 10.17487/RFC8314, January 2018, 741 . 743 [RFC8461] Margolis, D., Risher, M., Ramakrishnan, B., Brotman, A., 744 and J. Jones, "SMTP MTA Strict Transport Security (MTA- 745 STS)", RFC 8461, DOI 10.17487/RFC8461, September 2018, 746 . 748 [SMTPStatusCodes] 749 Internet Assigned Numbers Authority (IANA), "Simple Mail 750 Transfer Protocol (SMTP) Enhanced Status Codes Registry", 751 2008, . 754 11.2. Informative References 756 [RFC1939] Myers, J. and M. Rose, "Post Office Protocol - Version 3", 757 STD 53, RFC 1939, DOI 10.17487/RFC1939, May 1996, 758 . 760 [RFC2033] Myers, J., "Local Mail Transfer Protocol", RFC 2033, 761 DOI 10.17487/RFC2033, October 1996, 762 . 764 [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 765 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, 766 . 768 [RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. 769 Thayer, "OpenPGP Message Format", RFC 4880, 770 DOI 10.17487/RFC4880, November 2007, 771 . 773 [RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet 774 Mail Extensions (S/MIME) Version 3.2 Message 775 Specification", RFC 5751, DOI 10.17487/RFC5751, January 776 2010, . 778 [RFC6409] Gellens, R. and J. Klensin, "Message Submission for Mail", 779 STD 72, RFC 6409, DOI 10.17487/RFC6409, November 2011, 780 . 782 Appendix A. Examples 784 This section is informative. 786 A.1. REQUIRETLS SMTP Option 788 The RequireTLS SMTP option is used to express the intent of the 789 sender that the associated message be relayed using TLS. In the 790 following example, lines beginning with C: are transmitted from the 791 SMTP client to the server, and lines beginning with S: are 792 transmitted in the opposite direction. 794 S: 220 mail.example.net ESMTP 795 C: EHLO mail.example.org 796 S: 250-mail.example.net Hello example.org [192.0.2.1] 797 S: 250-SIZE 52428800 798 S: 250-8BITMIME 799 S: 250-PIPELINING 800 S: 250-STARTTLS 801 S: 250 HELP 802 C: STARTTLS 803 S: TLS go ahead 805 (at this point TLS negotiation takes place. The remainder of this 806 session occurs within TLS.) 808 S: 220 mail.example.net ESMTP 809 C: EHLO mail.example.org 810 S: 250-mail.example.net Hello example.org [192.0.2.1] 811 S: 250-SIZE 52428800 812 S: 250-8BITMIME 813 S: 250-PIPELINING 814 S: 250-REQUIRETLS 815 S: 250 HELP 816 C: MAIL FROM: REQUIRETLS 817 S: 250 OK 818 C: RCPT TO: 819 S: 250 Accepted 820 C: DATA 821 S: 354 Enter message, ending with "." on a line by itself 823 (message follows) 824 C: . 825 S: 250 OK 826 C: QUIT 828 A.2. RequireTLS Header Field 830 The RequireTLS header field is used when the sender of the message 831 wants to override the default policy of the recipient domain to 832 require TLS. It might be used, for example, to allow problems with 833 the recipient domain's TLS certificate to be reported: 835 From: Roger Reporter 836 To: Andy Admin 837 Subject: Certificate problem? 838 RequireTLS: NO 839 Date: Fri, 18 Jan 2019 10:26:55 -0800 840 Message-ID: <5c421a6f79c0e_d153ff8286d45c468473@mail.example.org> 842 Andy, there seems to be a problem with the TLS certificate 843 on your mail server. Are you aware of this? 845 Roger 847 Author's Address 849 Jim Fenton 850 Altmode Networks 851 Los Altos, California 94024 852 USA 854 Email: fenton@bluepopcorn.net