idnits 2.17.1 draft-ietf-uta-smtp-require-tls-09.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 (August 2, 2019) is 1728 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) -- 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) Summary: 2 errors (**), 0 flaws (~~), 1 warning (==), 5 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 August 2, 2019 5 Expires: February 3, 2020 7 SMTP Require TLS Option 8 draft-ietf-uta-smtp-require-tls-09 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, TLS-Required. If the REQUIRETLS option or TLS-Required 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 February 3, 2020. 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 . . . . . . . . . . . . . . . . . . 4 61 2. The REQUIRETLS Service Extension . . . . . . . . . . . . . . 4 62 3. The TLS-Required 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. Reorigination considerations . . . . . . . . . . . . . . . . 9 72 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 73 8. Security Considerations . . . . . . . . . . . . . . . . . . . 11 74 8.1. Passive attacks . . . . . . . . . . . . . . . . . . . . . 11 75 8.2. Active attacks . . . . . . . . . . . . . . . . . . . . . 11 76 8.3. Bad Actor MTAs . . . . . . . . . . . . . . . . . . . . . 12 77 8.4. Policy Conflicts . . . . . . . . . . . . . . . . . . . . 12 78 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 79 10. Revision History . . . . . . . . . . . . . . . . . . . . . . 13 80 10.1. Changes since -08 Draft . . . . . . . . . . . . . . . . 13 81 10.2. Changes since -07 Draft . . . . . . . . . . . . . . . . 13 82 10.3. Changes since -06 Draft . . . . . . . . . . . . . . . . 13 83 10.4. Changes since -05 Draft . . . . . . . . . . . . . . . . 14 84 10.5. Changes since -04 Draft . . . . . . . . . . . . . . . . 14 85 10.6. Changes since -03 Draft . . . . . . . . . . . . . . . . 14 86 10.7. Changes since -02 Draft . . . . . . . . . . . . . . . . 14 87 10.8. Changes since -01 Draft . . . . . . . . . . . . . . . . 14 88 10.9. Changes since -00 Draft . . . . . . . . . . . . . . . . 15 89 10.10. Changes since fenton-03 Draft . . . . . . . . . . . . . 15 90 10.11. Changes Since -02 Draft . . . . . . . . . . . . . . . . 15 91 10.12. Changes Since -01 Draft . . . . . . . . . . . . . . . . 15 92 10.13. Changes Since -00 Draft . . . . . . . . . . . . . . . . 15 93 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 94 11.1. Normative References . . . . . . . . . . . . . . . . . . 16 95 11.2. Informative References . . . . . . . . . . . . . . . . . 18 96 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 19 97 A.1. REQUIRETLS SMTP Option . . . . . . . . . . . . . . . . . 19 98 A.2. TLS-Required Header Field . . . . . . . . . . . . . . . . 20 99 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 21 101 1. Introduction 103 The SMTP [RFC5321] STARTTLS service extension [RFC3207] provides a 104 means by which an SMTP server and client can establish a Transport 105 Layer Security (TLS) protected session for the transmission of email 106 messages. By default, TLS is used only upon mutual agreement 107 (successful negotiation) of STARTTLS between the client and server; 108 if this is not possible, the message is sent without transport 109 encryption. Furthermore, it is common practice for the client to 110 negotiate TLS even if the SMTP server's certificate is invalid. 112 Policy mechanisms such as DANE [RFC7672] and MTA-STS [RFC8461] may 113 impose requirements for the use of TLS for email destined for some 114 domains. However, such policies do not allow the sender to specify 115 which messages are more sensitive and require transport-level 116 encryption, and which ones are less sensitive and ought to be relayed 117 even if TLS cannot be negotiated successfully. 119 The default opportunistic nature of SMTP TLS enables several "on the 120 wire" attacks on SMTP security between MTAs. These include passive 121 eavesdropping on connections for which TLS is not used, interference 122 in the SMTP protocol to prevent TLS from being negotiated (presumably 123 accompanied by eavesdropping), and insertion of a man-in-the-middle 124 attacker exploiting the lack of server authentication by the client. 125 Attacks are described in more detail in the Security Considerations 126 section of this document. 128 REQUIRETLS consists of two mechanisms: an SMTP service extension and 129 a message header field. The service extension is used to specify 130 that a given message sent during a particular session MUST be sent 131 over a TLS-protected session with specified security characteristics. 132 It also requires that the SMTP server advertise that it supports 133 REQUIRETLS, in effect promising that it will honor the requirement to 134 enforce TLS transmission and REQUIRETLS support for onward 135 transmission of those messages. 137 The TLS-Required message header field is used to convey a request to 138 ignore recipient-side policy mechanisms such as MTA-STS and DANE, 139 thereby prioritizing delivery over ability to negotiate TLS. Unlike 140 the service extension, the TLS-Required header field allows the 141 message to transit through one or more MTAs that do not support 142 REQUIRETLS. 144 1.1. Requirements Language 146 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 147 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 148 "OPTIONAL" in this document are to be interpreted as described in BCP 149 14 [RFC2119] [RFC8174] when, and only when, they appear in all 150 capitals, as shown here. 152 The formal syntax uses the Augmented Backus-Naur Form (ABNF) 153 [RFC5234] including the core rules defined in Appendix B of that 154 document. 156 2. The REQUIRETLS Service Extension 158 1. The textual name of the extension is "Require TLS". 160 2. The EHLO keyword value associated with this extension is 161 "REQUIRETLS". 163 3. No additional SMTP verbs are defined by this extension. 165 4. One optional parameter ("REQUIRETLS") is added to the MAIL FROM 166 command by this extension. No value is associated with this 167 parameter. 169 5. The maximum length of a MAIL FROM command line is increased by 11 170 octets by the possible addition of a space and the REQUIRETLS 171 keyword. 173 6. One new SMTP status code is defined by this extension to convey 174 an error condition resulting from failure of the client to send 175 to a server not also supporting the REQUIRETLS extension. 177 7. The REQUIRETLS extension is valid for message relay [RFC5321], 178 submission [RFC6409], and the Local Mail Transfer Protocol (LMTP) 179 [RFC2033] 181 8. The ABNF syntax for the MAIL FROM parameter is as follows: 183 requiretls-param = "REQUIRETLS" 184 ; where requiretls-param is an instance of an 185 ; esmtp-param used in Mail-parameters in 186 ; RFC 5321 Section 4.1.2. There is no esmtp-value 187 ; associated with requiretls-param. 189 In order to specify REQUIRETLS treatment for a given message, the 190 REQUIRETLS option is specified on the MAIL FROM command when that 191 message is transmitted. This option MUST only be specified in the 192 context of an SMTP session meeting the security requirements of 193 REQUIRETLS: 195 o The session itself MUST employ TLS transmission. 197 o If the SMTP server to which the message is being transmitted is 198 identified through an MX record lookup, its name MUST be validated 199 via a DNSSEC signature on the recipient domain's MX record, or the 200 MX hostname MUST be validated by an MTA-STS policy as described in 201 Section 4.1 of RFC 8461 [RFC8461]. DNSSEC is defined in RFC 4033 202 [RFC4033], RFC 4034 [RFC4034], and RFC 4035 [RFC4035]. 204 o The certificate presented by the SMTP server MUST either verify 205 successfully in a trust chain leading to a certificate trusted by 206 the SMTP client or it MUST verify successfully using DANE as 207 specified in RFC 7672 [RFC7672]. For trust chains, the choice of 208 trusted (root) certificates is at the discretion of the SMTP 209 client. 211 o Following the negotiation of STARTTLS, the SMTP server MUST 212 advertise in the subsequent EHLO response that it supports 213 REQUIRETLS. 215 3. The TLS-Required Header Field 217 One new message header field [RFC5322], TLS-Required, is defined by 218 this specification. It is used for messages for which the originator 219 requests that recipient TLS policy (including MTA-STS [RFC8461] and 220 DANE [RFC7672]) be ignored. This might be done, for example, to 221 report a misconfigured mail server, such as an expired TLS 222 certificate. 224 The TLS-Required header field has a single REQUIRED parameter: 226 o No - The SMTP client SHOULD attempt to send the message regardless 227 of its ability to negotiate STARTTLS with the SMTP server, 228 ignoring policy-based mechanisms (including MTA-STS and DANE), if 229 any, asserted by the recipient domain. Nevertheless, the client 230 SHOULD negotiate STARTTLS with the server if available. 232 More than one instance of the TLS-Required header field MUST NOT 233 appear in a given message. 235 The ABNF syntax for the TLS-Required header field is as follows: 237 requiretls-field = "TLS-Required:" [FWS] "No" CRLF 238 ; where requiretls-field in an instance of an 239 ; optional-field defined in RFC 5322 Section 240 ; 3.6.8. 241 FWS = 242 CRLF = 244 4. REQUIRETLS Semantics 246 4.1. REQUIRETLS Receipt Requirements 248 Upon receipt of the REQUIRETLS option on a MAIL FROM command during 249 the receipt of a message, an SMTP server MUST tag that message as 250 needing REQUIRETLS handling. 252 Upon receipt of a message not specifying the REQUIRETLS option on its 253 MAIL FROM command but containing the TLS-Required header field in its 254 message header, an SMTP server implementing this specification MUST 255 tag that message with the option specified in the TLS-Required header 256 field. If the REQUIRETLS MAIL FROM parameter is specified, the TLS- 257 Required header field MUST be ignored but MAY be included in onward 258 relay of the message. 260 The manner in which the above tagging takes place is implementation- 261 dependent. If the message is being locally aliased and redistributed 262 to multiple addresses, all instances of the message MUST be tagged in 263 the same manner. 265 4.2. REQUIRETLS Sender Requirements 267 4.2.1. Sending with TLS Required 269 When sending a message tagged as requiring TLS for which the MAIL 270 FROM return-path is not empty (an empty MAIL FROM return-path 271 indicating a bounce message), the sending (client) MTA MUST: 273 1. Look up the SMTP server to which the message is to be sent as 274 described in [RFC5321] Section 5.1. 276 2. If the server lookup is accomplished via the recipient domain's 277 MX record (the usual case) and is not accompanied by a valid 278 DNSSEC signature, the client MUST also validate the SMTP server 279 name using MTA-STS as described in RFC 8461 [RFC8461] 280 Section 4.1. 282 3. Open an SMTP session with the peer SMTP server using the EHLO 283 verb. 285 4. Establish a TLS-protected SMTP session with its peer SMTP server 286 and authenticate the server's certificate as specified in 287 [RFC6125] or [RFC7672] as applicable. The hostname from the MX 288 record lookup (or the domain name in the absence of an MX record 289 where an A record is used directly) MUST match the DNS-ID or CN- 290 ID of the certificate presented by the server. 292 5. Ensure that the response to the subsequent EHLO following 293 establishment of the TLS protection advertises the REQUIRETLS 294 capability. 296 The SMTP client SHOULD follow the recommendations in [RFC7525] or its 297 successor with respect to negotiation of the TLS session. 299 If any of the above steps fail, the client MUST issue a QUIT to the 300 server and repeat steps 2-5 with each host on the recipient domain's 301 list of MX hosts in an attempt to find a mail path that meets the 302 sender's requirements. The client MAY send other, unprotected, 303 messages to that server if it has any prior to issuing the QUIT. If 304 there are no more MX hosts, the client MUST NOT transmit the message 305 to the domain. 307 Following such a failure, the SMTP client MUST send a non-delivery 308 notification to the reverse-path of the failed message as described 309 in section 3.6 of [RFC5321]. The following status codes [RFC5248] 310 SHOULD be used: 312 o REQUIRETLS not supported by server: 5.7.YYY REQUIRETLS needed 314 o Unable to establish TLS-protected SMTP session: 5.7.10 Encryption 315 needed 317 Refer to Section 5 for further requirements regarding non-delivery 318 messages. 320 If all REQUIRETLS requirements have been met, transmit the message, 321 issuing the REQUIRETLS option on the MAIL FROM command with the 322 required option(s), if any. 324 4.2.2. Sending with TLS Optional 326 Messages tagged TLS-Required: No are handled as follows. When 327 sending such a message, the sending (client) MTA MUST: 329 o Look up the SMTP server to which the message is to be sent as 330 described in [RFC5321] Section 5.1. 332 o Open an SMTP session with the peer SMTP server using the EHLO 333 verb. Attempt to negotiate STARTTLS if possible, and follow any 334 policy published by the recipient domain, but do not fail if this 335 is unsuccessful. 337 Some SMTP servers may be configured to require STARTTLS connections 338 as a matter of policy and not accept messages in the absence of 339 STARTTLS. A non-delivery notification MUST be returned to the sender 340 if message relay fails due to an inability to negotiate STARTTLS when 341 required by the server. 343 Since messages tagged with TLS-Required: No will sometimes be sent to 344 SMTP servers not supporting REQUIRETLS, that option will not be 345 uniformly observed by all SMTP relay hops. 347 4.3. REQUIRETLS Submission 349 An MUA or other agent making the initial introduction of a message 350 has the option to decide whether to require TLS. If TLS is to be 351 required, it MUST do so by negotiating STARTTLS and REQUIRETLS and 352 include the REQUIRETLS option on the MAIL FROM command, as is done 353 for message relay. 355 When TLS is not to be required, the sender MUST include the TLS- 356 Required header field in the message. SMTP servers implementing this 357 specification MUST interpret this header field as described in 358 Section 4.1. 360 In either case, the decision whether to specify REQUIRETLS MAY be 361 done based on a user interface selection or based on a ruleset or 362 other policy. The manner in which the decision to require TLS is 363 made is implementation-dependent and is beyond the scope of this 364 specification. 366 4.4. Delivery of REQUIRETLS messages 368 Messages are usually retrieved by end users using protocols other 369 than SMTP such as IMAP [RFC3501], POP [RFC1939], or web mail systems. 370 Mail delivery agents supporting the REQUIRETLS SMTP option SHOULD 371 observe the guidelines in [RFC8314]. 373 5. Non-delivery message handling 375 Non-delivery ("bounce") messages usually contain important metadata 376 about the message to which they refer, including the original message 377 header. They therefore MUST be protected in the same manner as the 378 original message. All non-delivery messages resulting from messages 379 with the REQUIRETLS SMTP option, whether resulting from a REQUIRETLS 380 error or some other, MUST also specify the REQUIRETLS SMTP option 381 unless redacted as described below. 383 The path from the origination of an error bounce message back to the 384 MAIL FROM address may not share the same REQUIRETLS support as the 385 forward path. Therefore, users requiring TLS are advised to make 386 sure that they are capable of receiving mail using REQUIRETLS as 387 well. Otherwise, such non-delivery messages will be lost. 389 If a REQUIRETLS message is bounced, the server MUST behave as if 390 RET=HDRS was present as described in [RFC3461]. If both RET=FULL and 391 REQUIRETLS are present, the RET=FULL MUST be disregarded. The SMTP 392 client for a REQUIRETLS bounce message uses an empty MAIL FROM 393 return-path as required by [RFC5321]. When the MAIL FROM return-path 394 is empty, the REQUIRETLS parameter SHOULD NOT cause a bounce message 395 to be discarded even if the next-hop relay does not advertise 396 REQUIRETLS. 398 Senders of messages requiring TLS are advised to consider the 399 possibility that bounce messages will be lost as a result of 400 REQUIRETLS return path failure, and that some information could be 401 leaked if a bounce message is not able to be transmitted with 402 REQUIRETLS. 404 6. Reorigination considerations 406 In a number of situations, a mediator [RFC5598] originates a new 407 message as a result of an incoming message. These situations 408 include, but are not limited to, mailing lists (including 409 administrative traffic such as message approval requests), Sieve 410 [RFC5228], "vacation" responders, and other filters to which incoming 411 messages may be piped. These newly originated messages may 412 essentially be copies of the incoming message, such as with a 413 forwarding service or a mailing list expander. In other cases, such 414 as with a vacation message or a delivery notification, they will be 415 different but might contain parts of the original message or other 416 information for which the original message sender wants to influence 417 the requirement to use TLS transmission. 419 Mediators that reoriginate messages should apply REQUIRETLS 420 requirements in incoming messages (both requiring TLS transmission 421 and requesting that TLS not be required) to the reoriginated messages 422 to the extent feasible. A limitation to this might be that for a 423 message requiring TLS, redistribution to multiple addresses while 424 retaining the TLS requirement could result in the message not being 425 delivered to some of the intended recipients. 427 User-side mediators (such as use of Sieve rules on a user agent) 428 typically do not have access to the SMTP details, and therefore may 429 not be aware of the REQUIRETLS requirement on a delivered message. 430 Recipients that expect sensitive traffic should avoid the use of 431 user-side mediators. Alternatively, if operationally feasible (such 432 as when forwarding to a specific, known address), they should apply 433 REQUIRETLS to all reoriginated messages that do not contain the "TLS- 434 Required: No" header field. 436 7. IANA Considerations 438 If published as an RFC, this draft requests the addition of the 439 following keyword to the SMTP Service Extensions Registry 440 [MailParams]: 442 Textual name: Require TLS 443 EHLO keyword value: REQUIRETLS 444 Syntax and parameters: (no parameters) 445 Additional SMTP verbs: none 446 MAIL and RCPT parameters: REQUIRETLS parameter on MAIL 447 Behavior: Use of the REQUIRETLS parameter on the 448 MAIL verb causes that message to require 449 the use of TLS and tagging with 450 REQUIRETLS for all onward relay. 451 Command length increment: 11 characters 453 If published as an RFC, this draft requests the addition of an entry 454 to the Simple Mail Transfer Protocol (SMTP) Enhanced Status Codes 455 Registry [SMTPStatusCodes]: 457 Code: 5.7.YYY 458 Sample Text: REQUIRETLS support required 459 Associated basic status code: 550 460 Description: This indicates that the message was not 461 able to be forwarded because it was 462 received with a REQUIRETLS requirement 463 and none of the SMTP servers to which 464 the message should be forwarded provide 465 this support. 466 Reference: (this document) 467 Submitter: J. Fenton 468 Change controller: IESG 470 If published as an RFC, this draft requests the addition of an entry 471 to the Permanent Message Header Field Names Registry 472 [PermMessageHeaderFields]: 474 Header field name: TLS-Required 475 Applicable protocol: mail 476 Status: standard 477 Author/change controller: IETF 478 Specification document: (this document) 480 This section is to be updated for publication by the RFC Editor. 482 8. Security Considerations 484 The purpose of REQUIRETLS is to give the originator of a message 485 control over the security of email they send, either by conveying an 486 expectation that it will be transmitted in an encrypted form "over 487 the wire" or explicitly that transport encryption is not required if 488 it cannot be successfully negotiated. 490 The following considerations apply to the REQUIRETLS service 491 extension but not the TLS-Required header field, since messages 492 specifying the header field are less concerned with transport 493 security. 495 8.1. Passive attacks 497 REQUIRETLS is generally effective against passive attackers who are 498 merely trying to eavesdrop on an SMTP exchange between an SMTP client 499 and server. This assumes, of course, the cryptographic integrity of 500 the TLS connection being used. 502 8.2. Active attacks 504 Active attacks against TLS encrypted SMTP connections can take many 505 forms. One such attack is to interfere in the negotiation by 506 changing the STARTTLS command to something illegal such as XXXXXXXX. 507 This causes TLS negotiation to fail and messages to be sent in the 508 clear, where they can be intercepted. REQUIRETLS detects the failure 509 of STARTTLS and declines to send the message rather than send it 510 insecurely. 512 A second form of attack is a man-in-the-middle attack where the 513 attacker terminates the TLS connection rather than the intended SMTP 514 server. This is possible when, as is commonly the case, the SMTP 515 client either does not verify the server's certificate or establishes 516 the connection even when the verification fails. REQUIRETLS requires 517 successful certificate validation before sending the message. 519 Another active attack involves the spoofing of DNS MX records of the 520 recipient domain. An attacker having this capability could 521 potentially cause the message to be redirected to a mail server under 522 the attacker's own control, which would presumably have a valid 523 certificate. REQUIRETLS requires that the recipient domain's MX 524 record lookup be validated either using DNSSEC or via a published 525 MTA-STS policy that specifies the acceptable SMTP server hostname(s) 526 for the recipient domain. 528 8.3. Bad Actor MTAs 530 A bad-actor MTA along the message transmission path could 531 misrepresent its support of REQUIRETLS and/or actively strip 532 REQUIRETLS tags from messages it handles. However, since 533 intermediate MTAs are already trusted with the cleartext of messages 534 they handle, and are not part of the threat model for transport-layer 535 security, they are also not part of the threat model for REQUIRETLS. 537 It should be reemphasized that since SMTP TLS is a transport-layer 538 security protocol, messages sent using REQUIRETLS are not encrypted 539 end-to-end and are visible to MTAs that are part of the message 540 delivery path. Messages containing sensitive information that MTAs 541 should not have access to MUST be sent using end-to-end content 542 encryption such as OpenPGP [RFC4880] or S/MIME [RFC8551]. 544 8.4. Policy Conflicts 546 In some cases, the use of the TLS-Required header field may conflict 547 with a recipient domain policy expressed through the DANE [RFC7672] 548 or MTA-STS [RFC8461] protocols. Although these protocols encourage 549 the use of TLS transport by advertising availability of TLS, the use 550 of "TLS-Required: No" header field represents an explicit decision on 551 the part of the sender not to require the use of TLS, such as to 552 overcome a configuration error. The recipient domain has the 553 ultimate ability to require TLS by not accepting messages when 554 STARTTLS has not been negotiated; otherwise, "TLS-Required: No" is 555 effectively directing the client MTA to behave as if it does not 556 support DANE nor MTA-STS. 558 9. Acknowledgements 560 The author would like to acknowledge many helpful suggestions on the 561 ietf-smtp and uta mailing lists, in particular those of Viktor 562 Dukhovni, Chris Newman, Tony Finch, Jeremy Harris, Arvel Hathcock, 563 John Klensin, Barry Leiba, John Levine, Rolf Sonneveld, and Per 564 Thorsheim. 566 10. Revision History 568 To be removed by RFC Editor upon publication as an RFC. 570 10.1. Changes since -08 Draft 572 Additional changes in response to IESG review: 574 o Unify wording describing TLS-Required in Appendix A.2. 576 o Add specifics on verification of mail server hostnames with 577 certificates. 579 o Wording tweak in 4.3 to emphasize optional nature of REQUIRETLS. 581 o Update S/MIME reference from RFC 5751 to 8551 583 10.2. Changes since -07 Draft 585 Changes in response to IESG review and IETF Last Call comments: 587 o Change associated status code for 5.7.YYY from 530 to 550. 589 o Correct textual name of extension in IANA Considerations for 590 consistency with the rest of the document. 592 o Remove special handling of bounce messages in Section 4.1. 594 o Change name of header field from RequireTLS to TLS-Required and 595 make capitalization of parameter consistent. 597 o Remove mention of transforming RET=FULL to RET=HDRS on relay in 598 Section 5. 600 o Replace Section 6 dealing with mailing lists with a more general 601 section on reorigination by mediators. 603 o Add security considerations section on policy conflicts. 605 10.3. Changes since -06 Draft 607 Various changes in response to AD review: 609 o Reference RFC 7525 for TLS negotiation recommendations. 611 o Make reference to requested 5.7.YYY error code consistent. 613 o Clarify applicability to LMTP and submission. 615 o Provide ABNF for syntax of SMTP option and header field and 616 examples in Appendix A. 618 o Correct use of normative language in Section 5. 620 o Clarify case where REQUIRETLS option is used on bounce messages. 622 o Improve Security Requirements wording to be inclusive of both SMTP 623 option and header field. 625 10.4. Changes since -05 Draft 627 Corrected IANA Permanent Message Header Fields Registry request. 629 10.5. Changes since -04 Draft 631 Require validation of SMTP server hostname via DNSSEC or MTA-STS 632 policy when TLS is required. 634 10.6. Changes since -03 Draft 636 Working Group Last Call changes, including: 638 o Correct reference for SMTP DANE 640 o Clarify that RequireTLS: NO applies to both MTA-STS and DANE 641 policies 643 o Correct newly-defined status codes 645 o Update MTA-STS references to RFC 647 10.7. Changes since -02 Draft 649 o More complete documentation for IANA registration requests. 651 o Changed bounce handling to use RET parameters of [RFC3461], along 652 with slightly more liberal transmission of bounces even if 653 REQUIRETLS can't be negotiated. 655 10.8. Changes since -01 Draft 657 o Converted DEEP references to RFC 8314. 659 o Removed REQUIRETLS options: CHAIN, DANE, and DNSSEC. 661 o Editorial corrections, notably making the header field name 662 consistent (RequireTLS rather than Require-TLS). 664 10.9. Changes since -00 Draft 666 o Created new header field, Require-TLS, for use by "NO" option. 668 o Removed "NO" option from SMTP service extension. 670 o Recommend DEEP requirements for delivery of messages requiring 671 TLS. 673 o Assorted copy edits 675 10.10. Changes since fenton-03 Draft 677 o Wording improvements from Rolf Sonneveld review 22 July 2017 679 o A few copy edits 681 o Conversion from individual to UTA WG draft 683 10.11. Changes Since -02 Draft 685 o Incorporation of "MAY TLS" functionality as REQUIRETLS=NO per 686 suggestion on UTA WG mailing list. 688 o Additional guidance on bounce messages 690 10.12. Changes Since -01 Draft 692 o Specified retries when multiple MX hosts exist for a given domain. 694 o Clarified generation of non-delivery messages 696 o Specified requirements for application of REQUIRETLS to mail 697 forwarders and mailing lists. 699 o Clarified DNSSEC requirements to include MX lookup only. 701 o Corrected terminology regarding message retrieval vs. delivery. 703 o Changed category to standards track. 705 10.13. Changes Since -00 Draft 707 o Conversion of REQUIRETLS from an SMTP verb to a MAIL FROM 708 parameter to better associate REQUIRETLS requirements with 709 transmission of individual messages. 711 o Addition of an option to require DNSSEC lookup of the remote mail 712 server, since this affects the common name of the certificate that 713 is presented. 715 o Clarified the wording to more clearly state that TLS sessions must 716 be established and not simply that STARTTLS is negotiated. 718 o Introduced need for minimum encryption standards (key lengths and 719 algorithms) 721 o Substantially rewritten Security Considerations section 723 11. References 725 11.1. Normative References 727 [MailParams] 728 Internet Assigned Numbers Authority (IANA), "IANA Mail 729 Parameters", 2007, 730 . 732 [PermMessageHeaderFields] 733 Internet Assigned Numbers Authority (IANA), "Permanent 734 Message Header Field Names Registry", 2004, 735 . 738 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 739 Requirement Levels", BCP 14, RFC 2119, 740 DOI 10.17487/RFC2119, March 1997, 741 . 743 [RFC3207] Hoffman, P., "SMTP Service Extension for Secure SMTP over 744 Transport Layer Security", RFC 3207, DOI 10.17487/RFC3207, 745 February 2002, . 747 [RFC3461] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service 748 Extension for Delivery Status Notifications (DSNs)", 749 RFC 3461, DOI 10.17487/RFC3461, January 2003, 750 . 752 [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. 753 Rose, "DNS Security Introduction and Requirements", 754 RFC 4033, DOI 10.17487/RFC4033, March 2005, 755 . 757 [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. 758 Rose, "Resource Records for the DNS Security Extensions", 759 RFC 4034, DOI 10.17487/RFC4034, March 2005, 760 . 762 [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. 763 Rose, "Protocol Modifications for the DNS Security 764 Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005, 765 . 767 [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 768 Specifications: ABNF", STD 68, RFC 5234, 769 DOI 10.17487/RFC5234, January 2008, 770 . 772 [RFC5248] Hansen, T. and J. Klensin, "A Registry for SMTP Enhanced 773 Mail System Status Codes", BCP 138, RFC 5248, 774 DOI 10.17487/RFC5248, June 2008, 775 . 777 [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, 778 DOI 10.17487/RFC5321, October 2008, 779 . 781 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, 782 DOI 10.17487/RFC5322, October 2008, 783 . 785 [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and 786 Verification of Domain-Based Application Service Identity 787 within Internet Public Key Infrastructure Using X.509 788 (PKIX) Certificates in the Context of Transport Layer 789 Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March 790 2011, . 792 [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, 793 "Recommendations for Secure Use of Transport Layer 794 Security (TLS) and Datagram Transport Layer Security 795 (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May 796 2015, . 798 [RFC7672] Dukhovni, V. and W. Hardaker, "SMTP Security via 799 Opportunistic DNS-Based Authentication of Named Entities 800 (DANE) Transport Layer Security (TLS)", RFC 7672, 801 DOI 10.17487/RFC7672, October 2015, 802 . 804 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 805 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 806 May 2017, . 808 [RFC8314] Moore, K. and C. Newman, "Cleartext Considered Obsolete: 809 Use of Transport Layer Security (TLS) for Email Submission 810 and Access", RFC 8314, DOI 10.17487/RFC8314, January 2018, 811 . 813 [RFC8461] Margolis, D., Risher, M., Ramakrishnan, B., Brotman, A., 814 and J. Jones, "SMTP MTA Strict Transport Security (MTA- 815 STS)", RFC 8461, DOI 10.17487/RFC8461, September 2018, 816 . 818 [SMTPStatusCodes] 819 Internet Assigned Numbers Authority (IANA), "Simple Mail 820 Transfer Protocol (SMTP) Enhanced Status Codes Registry", 821 2008, . 824 11.2. Informative References 826 [RFC1939] Myers, J. and M. Rose, "Post Office Protocol - Version 3", 827 STD 53, RFC 1939, DOI 10.17487/RFC1939, May 1996, 828 . 830 [RFC2033] Myers, J., "Local Mail Transfer Protocol", RFC 2033, 831 DOI 10.17487/RFC2033, October 1996, 832 . 834 [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 835 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, 836 . 838 [RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. 839 Thayer, "OpenPGP Message Format", RFC 4880, 840 DOI 10.17487/RFC4880, November 2007, 841 . 843 [RFC5228] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email 844 Filtering Language", RFC 5228, DOI 10.17487/RFC5228, 845 January 2008, . 847 [RFC5598] Crocker, D., "Internet Mail Architecture", RFC 5598, 848 DOI 10.17487/RFC5598, July 2009, 849 . 851 [RFC6409] Gellens, R. and J. Klensin, "Message Submission for Mail", 852 STD 72, RFC 6409, DOI 10.17487/RFC6409, November 2011, 853 . 855 [RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ 856 Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 857 Message Specification", RFC 8551, DOI 10.17487/RFC8551, 858 April 2019, . 860 Appendix A. Examples 862 This section is informative. 864 A.1. REQUIRETLS SMTP Option 866 The TLS-Required SMTP option is used to express the intent of the 867 sender that the associated message be relayed using TLS. In the 868 following example, lines beginning with C: are transmitted from the 869 SMTP client to the server, and lines beginning with S: are 870 transmitted in the opposite direction. 872 S: 220 mail.example.net ESMTP 873 C: EHLO mail.example.org 874 S: 250-mail.example.net Hello example.org [192.0.2.1] 875 S: 250-SIZE 52428800 876 S: 250-8BITMIME 877 S: 250-PIPELINING 878 S: 250-STARTTLS 879 S: 250 HELP 880 C: STARTTLS 881 S: TLS go ahead 883 (at this point TLS negotiation takes place. The remainder of this 884 session occurs within TLS.) 886 S: 220 mail.example.net ESMTP 887 C: EHLO mail.example.org 888 S: 250-mail.example.net Hello example.org [192.0.2.1] 889 S: 250-SIZE 52428800 890 S: 250-8BITMIME 891 S: 250-PIPELINING 892 S: 250-REQUIRETLS 893 S: 250 HELP 894 C: MAIL FROM: REQUIRETLS 895 S: 250 OK 896 C: RCPT TO: 897 S: 250 Accepted 898 C: DATA 899 S: 354 Enter message, ending with "." on a line by itself 901 (message follows) 902 C: . 903 S: 250 OK 904 C: QUIT 906 A.2. TLS-Required Header Field 908 The TLS-Required header field is used when the sender requests that 909 the mail system not heed a default policy of the recipient domain 910 requiring TLS. It might be used, for example, to allow problems with 911 the recipient domain's TLS certificate to be reported: 913 From: Roger Reporter 914 To: Andy Admin 915 Subject: Certificate problem? 916 TLS-Required: No 917 Date: Fri, 18 Jan 2019 10:26:55 -0800 918 Message-ID: <5c421a6f79c0e_d153ff8286d45c468473@mail.example.org> 920 Andy, there seems to be a problem with the TLS certificate 921 on your mail server. Are you aware of this? 923 Roger 925 Author's Address 927 Jim Fenton 928 Altmode Networks 929 Los Altos, California 94024 930 USA 932 Email: fenton@bluepopcorn.net