rfc8689xml2.original.xml | rfc8689.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='US-ASCII'?> | |||
<!-- This template is for creating an Internet Draft using xml2rfc, | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
which is available here: http://xml.resource.org. --> | ||||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
<!-- One method to get references from the online citation libraries. | ||||
There has to be one entity for each item to be referenced. | ||||
An alternate method (rfc include) is described in the references. --> | ||||
<!-- [rfced] updated by Chris /08/29/19 --> | ||||
<!ENTITY RFC2033 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.2033.xml"> | ||||
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.2119.xml"> | ||||
<!ENTITY RFC3461 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.3461.xml"> | ||||
<!ENTITY RFC4033 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.4033.xml"> | ||||
<!ENTITY RFC4034 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.4034.xml"> | ||||
<!ENTITY RFC4035 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.4035.xml"> | ||||
<!ENTITY RFC4880 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.4880.xml"> | ||||
<!ENTITY RFC5228 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5228.xml"> | ||||
<!ENTITY RFC5234 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5234.xml"> | ||||
<!ENTITY RFC5248 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5248.xml"> | ||||
<!ENTITY RFC5321 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5321.xml"> | ||||
<!ENTITY RFC5322 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5322.xml"> | ||||
<!ENTITY RFC5598 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5598.xml"> | ||||
<!ENTITY RFC3207 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.3207.xml"> | ||||
<!ENTITY RFC6125 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.6125.xml"> | ||||
<!ENTITY RFC6409 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.6409.xml"> | ||||
<!ENTITY RFC7525 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.7525.xml"> | ||||
<!ENTITY RFC7672 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.7672.xml"> | ||||
<!ENTITY RFC1939 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.1939.xml"> | ||||
<!ENTITY RFC3501 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.3501.xml"> | ||||
<!ENTITY RFC8174 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8174.xml"> | ||||
<!ENTITY RFC8314 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8314.xml"> | ||||
<!ENTITY RFC8461 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8461.xml"> | ||||
<!ENTITY RFC8551 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8551.xml"> | ||||
]> | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
<!-- used by XSLT processors --> | ||||
<!-- For a complete list and description of processing instructions (PIs), | ||||
please see http://xml.resource.org/authoring/README.html. --> | ||||
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | ||||
might want to use. | ||||
(Here they are set differently than their defaults in xml2rfc v1.32) --> | ||||
<?rfc strict="yes" ?> | ||||
<!-- give errors regarding ID-nits and DTD validation --> | ||||
<!-- control the table of contents (ToC) --> | ||||
<?rfc toc="yes"?> | ||||
<!-- generate a ToC --> | ||||
<?rfc tocdepth="4"?> | ||||
<!-- the number of levels of subsections in ToC. default: 3 --> | ||||
<!-- control references --> | ||||
<?rfc symrefs="yes"?> | ||||
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
<?rfc sortrefs="yes" ?> | ||||
<!-- sort the reference entries alphabetically --> | ||||
<!-- control vertical white space | ||||
(using these PIs as follows is recommended by the RFC Editor) --> | ||||
<?rfc compact="yes" ?> | ||||
<!-- do not start each main section on a new page --> | ||||
<?rfc subcompact="no" ?> | ||||
<!-- keep one blank line between list items --> | ||||
<!-- end of list of popular I-D processing instructions --> | ||||
<rfc submissionType="IETF" category="std" consensus="yes" number="XXXX" ipr="tru | ||||
st200902"> | ||||
<!-- category values: std, bcp, info, exp, and historic | ||||
ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902 | ||||
, | ||||
or pre5378Trust200902 | ||||
you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
they will automatically be output with "(if approved)" --> | ||||
<!-- ***** FRONT MATTER ***** --> | ||||
<front> | ||||
<title>SMTP Require TLS Option</title> | ||||
<!-- add 'role="editor"' below for the editors if appropriate --> | ||||
<author fullname="Jim Fenton" initials="J.L." | ||||
surname="Fenton"> | ||||
<organization>Altmode Networks</organization> | ||||
<address> | ||||
<postal> | ||||
<street> </street> | ||||
<city>Los Altos</city> | ||||
<region>California</region> | ||||
<code>94024</code> | ||||
<country>USA</country> | ||||
</postal> | ||||
<email>fenton@bluepopcorn.net</email> | ||||
<!-- uri and facsimile elements may also be added --> | ||||
</address> | ||||
</author> | ||||
<date year="2019" month="August" /> | ||||
<!-- If the month and year are both specified and are the current ones, xml2r | ||||
fc will fill | ||||
in the current day for you. If only the current year is specified, xml2r | ||||
fc will fill | ||||
in the current day and month for you. If the year is not the current one | ||||
, it is | ||||
necessary to specify at least a month (xml2rfc assumes day="1" if not sp | ||||
ecified for the | ||||
purpose of calculating the expiry date). With drafts it is normally suf | ||||
ficient to | ||||
specify just the year. --> | ||||
<!-- Meta-data Declarations --> | ||||
<area>General</area> | ||||
<workgroup>Internet Engineering Task Force</workgroup> | ||||
<!-- WG name at the upperleft corner of the doc, | ||||
IETF is fine for individual submissions. | ||||
If this element is not present, the default is "Network Working Group", | ||||
which is used by the RFC Editor as a nod to the history of the IETF. --> | ||||
<keyword>SMTP</keyword> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" | |||
category="std" consensus="true" number="8689" ipr="trust200902" | ||||
obsoletes="" updates="" xml:lang="en" tocInclude="true" symRefs="true" | ||||
sortRefs="true" version="3" docName="draft-ietf-uta-smtp-require-tls-09"> | ||||
<!-- Keywords will be incorporated into HTML output | <!-- xml2rfc v2v3 conversion 2.30.0 --> | |||
files in a meta tag but they have no effect on text or nroff | <front> | |||
output. If you submit your draft to the RFC Editor, the | <title>SMTP Require TLS Option</title> | |||
keywords will be used for the search engine. --> | <seriesInfo name="RFC" value="8689"/> | |||
<abstract> | <author fullname="Jim Fenton" initials="J." surname="Fenton"> | |||
<t>The SMTP STARTTLS option, used in negotiating transport-level | <organization>Altmode Networks</organization> | |||
<address> | ||||
<postal> | ||||
<street> </street> | ||||
<city>Los Altos</city> | ||||
<region>California</region> | ||||
<code>94024</code> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<email>fenton@bluepopcorn.net</email> | ||||
</address> | ||||
</author> | ||||
<date year="2019" month="November"/> | ||||
<area>General</area> | ||||
<workgroup>Internet Engineering Task Force</workgroup> | ||||
<keyword>SMTP</keyword> | ||||
<abstract> | ||||
<t>The SMTP STARTTLS option, used in negotiating transport-level | ||||
encryption of SMTP connections, is not as useful from a security | encryption of SMTP connections, is not as useful from a security | |||
standpoint as it might be because of its opportunistic nature; | standpoint as it might be because of its opportunistic nature; | |||
message delivery is, by default, prioritized over security. This | message delivery is, by default, prioritized over security. This | |||
document describes an SMTP service extension, REQUIRETLS, and | document describes an SMTP service extension, REQUIRETLS, and | |||
message header field, TLS-Required. If the REQUIRETLS option or | a message header field, TLS-Required. If the REQUIRETLS option or | |||
TLS-Required message header field is used when sending a message, | TLS-Required message header field is used when sending a message, | |||
it asserts a request on the part of the message sender to | it asserts a request on the part of the message sender to | |||
override the default negotiation of TLS, either by requiring that | override the default negotiation of TLS, either by requiring that | |||
TLS be negotiated when the message is relayed, or by requesting | TLS be negotiated when the message is relayed or by requesting | |||
that recipient-side policy mechanisms such as MTA-STS and DANE be | that recipient-side policy mechanisms such as MTA-STS and DNS-Based | |||
Authentication of Named Entities (DANE) be | ||||
ignored when relaying a message for which security is | ignored when relaying a message for which security is | |||
unimportant.</t> | unimportant.</t> | |||
</abstract> | </abstract> | |||
</front> | ||||
</front> | <middle> | |||
<section numbered="true" toc="default"> | ||||
<middle> | <name>Introduction</name> | |||
<section title="Introduction"> | <t>The <xref target="RFC5321" format="default">SMTP</xref> <xref target="R | |||
<t>The <xref target="RFC5321">SMTP</xref> <xref | FC3207" format="default">STARTTLS service extension</xref> provides a | |||
target="RFC3207">STARTTLS service extension</xref> provides a | ||||
means by which an SMTP server and client can establish a | means by which an SMTP server and client can establish a | |||
Transport Layer Security (TLS) protected session for the | Transport Layer Security (TLS) protected session for the | |||
transmission of email messages. By default, TLS is used only upon | transmission of email messages. By default, TLS is used only upon | |||
mutual agreement (successful negotiation) of STARTTLS between the | mutual agreement (successful negotiation) of STARTTLS between the | |||
client and server; if this is not possible, the message is sent | client and server; if this is not possible, the message is sent | |||
without transport encryption. Furthermore, it is common practice | without transport encryption. Furthermore, it is common practice | |||
for the client to negotiate TLS even if the SMTP server's | for the client to negotiate TLS even if the SMTP server's | |||
certificate is invalid.</t> | certificate is invalid.</t> | |||
<t>Policy mechanisms such as <xref target="RFC7672" format="default">DANE< | ||||
<t>Policy mechanisms such as <xref target="RFC7672">DANE</xref> | /xref> | |||
and <xref target="RFC8461">MTA-STS</xref> may | and <xref target="RFC8461" format="default">MTA-STS</xref> may | |||
impose requirements for the use of TLS for email destined for | impose requirements for the use of TLS for email destined for | |||
some domains. However, such policies do not allow the sender to | some domains. However, such policies do not allow the sender to | |||
specify which messages are more sensitive and require | specify which messages are more sensitive and require | |||
transport-level encryption, and which ones are less sensitive and | transport-level encryption and which ones are less sensitive and | |||
ought to be relayed even if TLS cannot be negotiated | ought to be relayed even if TLS cannot be negotiated | |||
successfully.</t> | successfully.</t> | |||
<t>The default opportunistic nature of SMTP TLS enables several | <t>The default opportunistic nature of SMTP TLS enables several | |||
"on the wire" attacks on SMTP security between MTAs. These | on-the-wire attacks on SMTP security between MTAs. These | |||
include passive eavesdropping on connections for which TLS is not | include passive eavesdropping on connections for which TLS is not | |||
used, interference in the SMTP protocol to prevent TLS from being | used, interference in the SMTP protocol to prevent TLS from being | |||
negotiated (presumably accompanied by eavesdropping), and insertion | negotiated (presumably accompanied by eavesdropping), and insertion | |||
of a man-in-the-middle attacker exploiting the lack of | of a man-in-the-middle attacker exploiting the lack of | |||
server authentication by the client. Attacks are described | server authentication by the client. Attacks are described | |||
in more detail in the Security Considerations section of this | in more detail in the <xref target="Security" format="title" /> section | |||
of this | ||||
document.</t> | document.</t> | |||
<t>REQUIRETLS consists of two mechanisms: an SMTP service | ||||
<t>REQUIRETLS consists of two mechanisms: an SMTP service | ||||
extension and a message header field. The service extension is | extension and a message header field. The service extension is | |||
used to specify that a given message sent during a particular session | used to specify that a given message sent during a particular session | |||
MUST be sent over a TLS-protected session with specified security | <bcp14>MUST</bcp14> be sent over a TLS-protected session with specified sec urity | |||
characteristics. It also requires that the SMTP server advertise | characteristics. It also requires that the SMTP server advertise | |||
that it supports REQUIRETLS, in effect promising that it | that it supports REQUIRETLS, in effect promising that it | |||
will honor the requirement to enforce TLS transmission and | will honor the requirement to enforce TLS transmission and | |||
REQUIRETLS support for onward transmission of those messages.</t> | REQUIRETLS support for onward transmission of those messages.</t> | |||
<t>The TLS-Required message header field is used to convey a | ||||
<t>The TLS-Required message header field is used to convey a | ||||
request to ignore recipient-side policy mechanisms such as | request to ignore recipient-side policy mechanisms such as | |||
MTA-STS and DANE, thereby prioritizing delivery over ability to | MTA-STS and DANE, thereby prioritizing delivery over ability to | |||
negotiate TLS. Unlike the service extension, the TLS-Required | negotiate TLS. Unlike the service extension, the TLS-Required | |||
header field allows the message to transit through one or more | header field allows the message to transit through one or more | |||
MTAs that do not support REQUIRETLS.</t> | MTAs that do not support REQUIRETLS.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Requirements Language"> | <name>Requirements Language</name> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", | <t> | |||
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
interpreted as described in BCP 14 <xref target="RFC2119" /> | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
<xref target="RFC8174" /> when, and only when, they appear in | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
all capitals, as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
to be interpreted as described in BCP 14 <xref target="RFC2119"/> | ||||
<t>The formal syntax uses the Augmented Backus-Naur Form (ABNF) | <xref target="RFC8174"/> when, and only when, they appear in all capitals, | |||
<xref target="RFC5234" /> including the core rules defined in | as shown here. | |||
</t> | ||||
<t>The formal syntax uses the Augmented Backus-Naur Form (ABNF) | ||||
<xref target="RFC5234" format="default"/>, including the core rules defin | ||||
ed in | ||||
Appendix B of that document.</t> | Appendix B of that document.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="service_extension" numbered="true" toc="default"> | ||||
<section anchor="service_extension" title="The REQUIRETLS Service Extension"> | <name>The REQUIRETLS Service Extension</name> | |||
<t><list style="numbers"> | ||||
<t>The textual name of the extension is "Require TLS".</t> | ||||
<t>The EHLO keyword value associated with this extension is | ||||
"REQUIRETLS".</t> | ||||
<t>No additional SMTP verbs are defined by this extension.</t> | <t>The REQUIRETLS SMTP service extension has the following characteristics:</t> | |||
<t>One optional parameter ("REQUIRETLS") is added to the MAIL | <ol spacing="normal" type="1"> | |||
<li>The textual name of the extension is "Require TLS".</li> | ||||
<li>The EHLO keyword value associated with this extension is | ||||
"REQUIRETLS".</li> | ||||
<li>No additional SMTP verbs are defined by this extension.</li> | ||||
<li>One optional parameter ("REQUIRETLS") is added to the MAIL | ||||
FROM command by this extension. No value is associated with | FROM command by this extension. No value is associated with | |||
this parameter.</t> | this parameter.</li> | |||
<li>The maximum length of a MAIL FROM command line is increased | ||||
<t>The maximum length of a MAIL FROM command line is increased | ||||
by 11 octets by the possible addition of a space and the | by 11 octets by the possible addition of a space and the | |||
REQUIRETLS keyword.</t> | REQUIRETLS keyword.</li> | |||
<li>One new SMTP status code is defined by this extension to | ||||
<t>One new SMTP status code is defined by this extension to | ||||
convey an error condition resulting from failure of the client to | convey an error condition resulting from failure of the client to | |||
send to a server not also supporting | send data to a server that does not also support | |||
the REQUIRETLS extension.</t> | the REQUIRETLS extension.</li> | |||
<li>The REQUIRETLS extension is valid for message relay <xref target="RF | ||||
<t>The REQUIRETLS extension is valid for message relay <xref | C5321" format="default"/>, submission <xref target="RFC6409" format="default"/>, | |||
target="RFC5321"></xref>, submission <xref | and the Local Mail Transfer Protocol | |||
target="RFC6409"></xref>, and the Local Mail Transfer Protocol | (LMTP) <xref target="RFC2033" format="default"/>.</li> | |||
(LMTP) <xref target="RFC2033"></xref></t> | <li> | |||
<t>The ABNF syntax for the MAIL FROM parameter is as follows: | ||||
<t>The ABNF syntax for the MAIL FROM parameter is as follows: | </t> | |||
<figure> | <sourcecode type="abnf"><![CDATA[ | |||
<artwork> | requiretls-param = "REQUIRETLS" | |||
requiretls-param = "REQUIRETLS" | ; where requiretls-param is an instance of an | |||
; where requiretls-param is an instance of an | ; esmtp-param used in Mail-parameters in | |||
; esmtp-param used in Mail-parameters in | ; RFC 5321, Section 4.1.2. There is no esmtp-value | |||
; RFC 5321 Section 4.1.2. There is no esmtp-value | ; associated with requiretls-param. ]]></sourcecode> | |||
; associated with requiretls-param. | </li> | |||
</artwork> | </ol> | |||
</figure> | <t>In order to specify REQUIRETLS treatment for a given message, | |||
</t> | the REQUIRETLS option is specified in the MAIL FROM command when | |||
</list></t> | that message is transmitted. This option <bcp14>MUST</bcp14> only be specif | |||
ied in the | ||||
<t>In order to specify REQUIRETLS treatment for a given message, | ||||
the REQUIRETLS option is specified on the MAIL FROM command when | ||||
that message is transmitted. This option MUST only be specified in the | ||||
context of an SMTP session meeting the security requirements of | context of an SMTP session meeting the security requirements of | |||
REQUIRETLS: | REQUIRETLS: | |||
<list style="symbols"> | </t> | |||
<t>The session itself MUST employ TLS transmission.</t> | <ul spacing="normal"> | |||
<t>If the SMTP server to which the message is being transmitted | <li>The session itself <bcp14>MUST</bcp14> employ TLS transmission.</li> | |||
<li>If the SMTP server to which the message is being transmitted | ||||
is identified through an MX record lookup, its name | is identified through an MX record lookup, its name | |||
MUST be validated via a DNSSEC signature on the recipient | <bcp14>MUST</bcp14> be validated via a DNSSEC signature on the recipient | |||
domain's MX record, or the MX hostname MUST be | domain's MX record, or the MX hostname <bcp14>MUST</bcp14> be | |||
validated by an MTA-STS policy as described in Section 4.1 of | validated by an MTA-STS policy as described in <xref target="RFC8461" | |||
<xref target="RFC8461">RFC 8461</xref>. DNSSEC is defined | sectionFormat="of" section="4.1" />. DNSSEC is defined | |||
in <xref target="RFC4033">RFC 4033</xref>, | in <xref target="RFC4033" format="default" />, | |||
<xref target="RFC4034">RFC 4034</xref>, and | <xref target="RFC4034" format="default" />, and | |||
<xref target="RFC4035">RFC 4035</xref>.</t> | <xref target="RFC4035" format="default" />.</li> | |||
<t>The certificate presented by the SMTP server MUST either | ||||
verify successfully in a trust chain leading to a certificate | ||||
trusted by the SMTP client or it MUST verify successfully using | ||||
DANE as specified in <xref | ||||
target="RFC7672">RFC 7672</xref>. For trust chains, the | ||||
choice of trusted (root) certificates is at the discretion of | ||||
the SMTP client.</t> | ||||
<t>Following the negotiation of STARTTLS, the SMTP server MUST | ||||
advertise in the subsequent EHLO response that it supports REQUIRETLS.</t | ||||
> | ||||
</list> | ||||
</t> | ||||
</section> | ||||
<section anchor="header_field" title="The TLS-Required Header Field"> | ||||
<t>One new message header field <xref target="RFC5322" />, | <li>The certificate presented by the SMTP server either <bcp14>MUST</bcp | |||
14> | ||||
be verified successfully by a trust chain leading to a certificate | ||||
trusted by the SMTP client, or it <bcp14>MUST</bcp14> be verified success | ||||
fully using | ||||
DANE, as specified in <xref target="RFC7672" format="default" />. For tru | ||||
st chains, the | ||||
choice of trusted (root) certificates is at the discretion of | ||||
the SMTP client.</li> | ||||
<li>Following the negotiation of STARTTLS, the SMTP server <bcp14>MUST</ | ||||
bcp14> | ||||
advertise in the subsequent EHLO response that it supports REQUIRETLS.</l | ||||
i> | ||||
</ul> | ||||
</section> | ||||
<section anchor="header_field" numbered="true" toc="default"> | ||||
<name>The TLS-Required Header Field</name> | ||||
<t>One new message header field <xref target="RFC5322" format="default"/>, | ||||
TLS-Required, is defined by this | TLS-Required, is defined by this | |||
specification. It is used for messages for which the originator | specification. It is used for messages for which the originator | |||
requests that recipient | requests that the recipient | |||
TLS policy (including <xref target="RFC8461">MTA-STS</xref> and | TLS policy (including <xref target="RFC8461" format="default">MTA-STS</xref | |||
<xref target="RFC7672">DANE</xref>) be ignored. This might be | > and | |||
<xref target="RFC7672" format="default">DANE</xref>) be ignored. This might | ||||
be | ||||
done, for example, to report a misconfigured mail server, such as | done, for example, to report a misconfigured mail server, such as | |||
an expired TLS certificate.</t> | an expired TLS certificate.</t> | |||
<t>The TLS-Required header field has a single <bcp14>REQUIRED</bcp14> para | ||||
<t>The TLS-Required header field has a single REQUIRED parameter:</t> | meter:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>No - The SMTP client <bcp14>SHOULD</bcp14> attempt to send the messa | |||
<t>No - The SMTP client SHOULD attempt to send the message | ge | |||
regardless of its ability to negotiate STARTTLS with the SMTP | regardless of its ability to negotiate STARTTLS with the SMTP | |||
server, ignoring policy-based mechanisms (including MTA-STS and | server, ignoring policy-based mechanisms (including MTA-STS and | |||
DANE), if any, asserted by | DANE), if any, asserted by | |||
the recipient domain. Nevertheless, the client SHOULD negotiate | the recipient domain. Nevertheless, the client <bcp14>SHOULD</bcp14> negot | |||
STARTTLS with the server if available.</t> | iate | |||
</list></t> | STARTTLS with the server if available.</li> | |||
</ul> | ||||
<t>More than one instance of the TLS-Required header field MUST | <t>More than one instance of the TLS-Required header field <bcp14>MUST | |||
NOT appear in a given message.</t> | NOT</bcp14> appear in a given message.</t> | |||
<t>The ABNF syntax for the TLS-Required header field is as | ||||
<t>The ABNF syntax for the TLS-Required header field is as | ||||
follows:</t> | follows:</t> | |||
<figure> | <sourcecode type="abnf"><![CDATA[ | |||
<artwork> | requiretls-field = "TLS-Required:" [FWS] "No" CRLF | |||
requiretls-field = "TLS-Required:" [FWS] "No" CRLF | ; where requiretls-field in an instance of an | |||
; where requiretls-field in an instance of an | ; optional-field defined in RFC 5322, Section 3.6.8. | |||
; optional-field defined in RFC 5322 Section | FWS = <as defined in RFC 5322> | |||
; 3.6.8. | CRLF = <as defined in RFC 5322> ]]></sourcecode> | |||
FWS = <as defined in RFC 5322> | </section> | |||
CRLF = <as defined in RFC 5322> | <section anchor="semantics" numbered="true" toc="default"> | |||
</artwork> | <name>REQUIRETLS Semantics</name> | |||
</figure> | <section anchor="receipt" numbered="true" toc="default"> | |||
<name>REQUIRETLS Receipt Requirements</name> | ||||
</section> | <t>Upon receipt of the REQUIRETLS option on a MAIL FROM command | |||
during the receipt of a message, an SMTP server <bcp14>MUST</bcp14> tag t | ||||
<section anchor="semantics" title="REQUIRETLS Semantics"> | hat | |||
<section anchor="receipt" title="REQUIRETLS Receipt Requirements"> | ||||
<t>Upon receipt of the REQUIRETLS option on a MAIL FROM command | ||||
during the receipt of a message, an SMTP server MUST tag that | ||||
message as needing REQUIRETLS handling.</t> | message as needing REQUIRETLS handling.</t> | |||
<t>Upon receipt of a message not specifying the REQUIRETLS | ||||
<t>Upon receipt of a message not specifying the REQUIRETLS | ||||
option on its MAIL FROM command but containing the TLS-Required | option on its MAIL FROM command but containing the TLS-Required | |||
header field in its message header, an SMTP server implementing | header field in its message header, an SMTP server implementing | |||
this specification MUST tag that message with the option | this specification <bcp14>MUST</bcp14> tag that message with the option | |||
specified in the TLS-Required header field. If the REQUIRETLS | specified in the TLS-Required header field. If the REQUIRETLS | |||
MAIL FROM parameter is specified, the TLS-Required header field | MAIL FROM parameter is specified, the TLS-Required header field | |||
MUST be ignored but MAY be included in onward relay of the | <bcp14>MUST</bcp14> be ignored but <bcp14>MAY</bcp14> be included in the onward relay of the | |||
message.</t> | message.</t> | |||
<t>The manner in which the above tagging takes place is | ||||
<t>The manner in which the above tagging takes place is | implementation dependent. If the message is being locally | |||
implementation-dependent. If the message is being locally | ||||
aliased and redistributed to multiple addresses, all instances | aliased and redistributed to multiple addresses, all instances | |||
of the message MUST be tagged in the same manner.</t> | of the message <bcp14>MUST</bcp14> be tagged in the same manner.</t> | |||
</section> | </section> | |||
<section anchor="sender" numbered="true" toc="default"> | ||||
<section anchor="sender" title="REQUIRETLS Sender Requirements"> | <name>REQUIRETLS Sender Requirements</name> | |||
<section anchor="yestls" title="Sending with TLS Required"> | <section anchor="yestls" numbered="true" toc="default"> | |||
<t>When sending a message tagged as requiring TLS for which the | <name>Sending with TLS Required</name> | |||
<t>When sending a message tagged as requiring TLS for which the | ||||
MAIL FROM return-path is not empty (an empty MAIL FROM | MAIL FROM return-path is not empty (an empty MAIL FROM | |||
return-path indicating a bounce message), the sending | return-path indicating a bounce message), the sending | |||
(client) MTA MUST: | (client) MTA <bcp14>MUST</bcp14>: | |||
<list style="numbers"> | ||||
<t>Look up the SMTP server to which the message is to be sent | ||||
as described in <xref target="RFC5321"></xref> Section | ||||
5.1.</t> | ||||
<t>If the server lookup is accomplished via the recipient | </t> | |||
<ol spacing="normal" type="1"> | ||||
<li>Look up the SMTP server to which the message is to be sent, | ||||
as described in <xref target="RFC5321" sectionFormat="comma" | ||||
section="5.1" />.</li> | ||||
<li>If the server lookup is accomplished via the recipient | ||||
domain's MX record (the usual case) and is not accompanied by a valid | domain's MX record (the usual case) and is not accompanied by a valid | |||
DNSSEC signature, the client MUST also validate the SMTP | DNSSEC signature, the client <bcp14>MUST</bcp14> also validate the SMTP | |||
server name using MTA-STS as described in | server name using MTA-STS, as described in | |||
<xref target="RFC8461">RFC 8461</xref> Section 4.1.</t> | <xref target="RFC8461" sectionFormat="comma" section="4.1"/>.</li> | |||
<li>Open an SMTP session with the peer SMTP server using the | ||||
<t>Open an SMTP session with the peer SMTP server using the | EHLO verb.</li> | |||
EHLO verb.</t> | <li>Establish a TLS-protected SMTP session with its peer SMTP | |||
<t>Establish a TLS-protected SMTP session with its peer SMTP | ||||
server and authenticate the server's certificate as specified | server and authenticate the server's certificate as specified | |||
in <xref target="RFC6125"></xref> or <xref | in <xref target="RFC6125" format="default"/> or <xref target="RFC7672" f | |||
target="RFC7672"></xref> as applicable. The hostname from the | ormat="default"/>, as applicable. The hostname from the | |||
MX record lookup (or the domain name in the absence of an MX | MX record lookup (or the domain name in the absence of an MX | |||
record where an A record is used directly) MUST match the DNS-ID | record where an A record is used directly) <bcp14>MUST</bcp14> match the DNS- | |||
or CN-ID of the certificate presented by the server.</t> | ID | |||
or CN-ID of the certificate presented by the server.</li> | ||||
<t>Ensure that the response to the subsequent EHLO following | <li>Ensure that the response to the subsequent EHLO following | |||
establishment of the TLS protection advertises the REQUIRETLS | establishment of the TLS protection advertises the REQUIRETLS | |||
capability.</t> | capability.</li> | |||
</ol> | ||||
</list></t> | <t>The SMTP client <bcp14>SHOULD</bcp14> follow the recommendations in | |||
<xref target="RFC7525" format="default"/> or its successor with respect to | ||||
<t>The SMTP client SHOULD follow the recommendations in <xref | ||||
target="RFC7525"></xref> or its successor with respect to | ||||
negotiation of the TLS session.</t> | negotiation of the TLS session.</t> | |||
<t>If any of the above steps fail, the client MUST issue a QUIT | <t>If any of the above steps fail, the client <bcp14>MUST</bcp14> issu e a QUIT | |||
to the server and repeat steps 2-5 with each host on the | to the server and repeat steps 2-5 with each host on the | |||
recipient domain's list of MX hosts in an attempt to find a | recipient domain's list of MX hosts in an attempt to find a | |||
mail path that meets the sender's requirements. The client MAY | mail path that meets the sender's requirements. The client <bcp14>MAY</bc | |||
send other, unprotected, messages to that server if it has any | p14> | |||
prior to issuing the QUIT. If there are no more MX hosts, the | send other, unprotected messages to that server if it has any | |||
client MUST NOT transmit the message to the domain. </t> | such messages prior to issuing the QUIT. If there are no more MX hosts, t | |||
he | ||||
<t>Following such a failure, the SMTP client MUST send a | client <bcp14>MUST NOT</bcp14> transmit the message to the domain. </t> | |||
<t>Following such a failure, the SMTP client <bcp14>MUST</bcp14> send | ||||
a | ||||
non-delivery notification to the reverse-path of the failed | non-delivery notification to the reverse-path of the failed | |||
message as described in section 3.6 of <xref target="RFC5321" />. The | message, as described in <xref target="RFC5321" | |||
following <xref target="RFC5248">status codes</xref> SHOULD be used: | sectionFormat="of" section="3.6"/>. The | |||
following <xref target="RFC5248" format="default">status codes</xref> <bc | ||||
<list style="symbols"> | p14>SHOULD</bcp14> be used: | |||
<t>REQUIRETLS not supported by server: 5.7.YYY REQUIRETLS | </t> | |||
needed</t> | ||||
<t>Unable to establish TLS-protected SMTP session: 5.7.10 | ||||
Encryption needed</t> | ||||
</list></t> | ||||
<t>Refer to <xref target="errors" /> for further requirements regarding | <ul spacing="normal"> | |||
<li>REQUIRETLS not supported by server: 5.7.30 REQUIRETLS | ||||
support required</li> | ||||
<li>Unable to establish TLS-protected SMTP session: 5.7.10 | ||||
Encryption needed</li> | ||||
</ul> | ||||
<t>Refer to <xref target="errors" format="default"/> for further requi | ||||
rements regarding | ||||
non-delivery messages.</t> | non-delivery messages.</t> | |||
<t>If all REQUIRETLS requirements have been met, transmit the | ||||
<t>If all REQUIRETLS requirements have been met, transmit the | ||||
message, issuing the REQUIRETLS option on the MAIL FROM command | message, issuing the REQUIRETLS option on the MAIL FROM command | |||
with the required option(s), if any.</t> | with the required option(s), if any.</t> | |||
</section> | ||||
</section> | <section anchor="maytls" numbered="true" toc="default"> | |||
<section anchor="maytls" title="Sending with TLS Optional"> | <name>Sending with TLS Optional</name> | |||
<t>Messages tagged TLS-Required: No are handled as | <t>Messages tagged "TLS-Required: No" are handled as | |||
follows. When sending such a message, the sending (client) | follows. When sending such a message, the sending (client) | |||
MTA MUST: | MTA <bcp14>MUST</bcp14>: | |||
<list style="symbols"> | </t> | |||
<t>Look up the SMTP server to which the message is to be | <ul spacing="normal"> | |||
sent as described in <xref target="RFC5321"></xref> Section | <li>Look up the SMTP server to which the message is to be | |||
5.1.</t> | sent, as described in <xref target="RFC5321" sectionFormat="comma" sec | |||
tion="5.1"/>.</li> | ||||
<t>Open an SMTP session with the peer SMTP server using the | <li>Open an SMTP session with the peer SMTP server using the | |||
EHLO verb. Attempt to negotiate STARTTLS if possible, and | EHLO verb. Attempt to negotiate STARTTLS if possible, and | |||
follow any policy published by the recipient domain, but do | follow any policy published by the recipient domain, but do | |||
not fail if this is unsuccessful.</t> | not fail if this is unsuccessful.</li> | |||
</ul> | ||||
</list> | <t>Some SMTP servers may be configured to require STARTTLS | |||
</t> | ||||
<t>Some SMTP servers may be configured to require STARTTLS | ||||
connections as a matter of policy and not accept messages in | connections as a matter of policy and not accept messages in | |||
the absence of STARTTLS. A non-delivery notification MUST be | the absence of STARTTLS. A non-delivery notification <bcp14>MUST</bcp14> be | |||
returned to the sender if message relay fails due to an | returned to the sender if message relay fails due to an | |||
inability to negotiate STARTTLS when required by the | inability to negotiate STARTTLS when required by the | |||
server.</t> | server.</t> | |||
<t>Since messages tagged with "TLS-Required: No" will sometimes | ||||
<t>Since messages tagged with TLS-Required: No will sometimes | ||||
be sent to SMTP servers not supporting REQUIRETLS, that | be sent to SMTP servers not supporting REQUIRETLS, that | |||
option will not be uniformly observed by all SMTP relay | option will not be uniformly observed by all SMTP relay | |||
hops.</t> | hops.</t> | |||
</section> | ||||
</section> | ||||
<section anchor="submission" numbered="true" toc="default"> | ||||
<name>REQUIRETLS Submission</name> | ||||
</section> | <t>A Mail User Agent (MUA) or other agent making the initial introductio | |||
n of a | ||||
</section> | ||||
<section anchor="submission" title="REQUIRETLS Submission"> | ||||
<t>An MUA or other agent making the initial introduction of a | ||||
message has the option to decide whether to require TLS. If | message has the option to decide whether to require TLS. If | |||
TLS is to be required, it MUST do so by negotiating STARTTLS | TLS is to be required, it <bcp14>MUST</bcp14> do so by negotiating STARTT | |||
and REQUIRETLS and include the REQUIRETLS option on the MAIL | LS | |||
and REQUIRETLS and including the REQUIRETLS option on the MAIL | ||||
FROM command, as is done for message relay.</t> | FROM command, as is done for message relay.</t> | |||
<t>When TLS is not to be required, the sender <bcp14>MUST</bcp14> includ | ||||
<t>When TLS is not to be required, the sender MUST include the | e the | |||
TLS-Required header field in the message. SMTP servers | TLS-Required header field in the message. SMTP servers | |||
implementing this specification MUST interpret this header | implementing this specification <bcp14>MUST</bcp14> interpret this header | |||
field as described in <xref target="receipt" />.</t> | field as described in <xref target="receipt" format="default"/>.</t> | |||
<t>In either case, the decision whether to specify REQUIRETLS | ||||
<t>In either case, the decision whether to specify REQUIRETLS | <bcp14>MAY</bcp14> be done based on a user interface selection or based o | |||
MAY be done based on a user interface selection or based on a | n a | |||
ruleset or other policy. The manner in which the decision to | ruleset or other policy. The manner in which the decision to | |||
require TLS is made is implementation-dependent and is beyond | require TLS is made is implementation dependent and is beyond | |||
the scope of this specification.</t> | the scope of this specification.</t> | |||
</section> | </section> | |||
<section anchor="delivery" numbered="true" toc="default"> | ||||
<section anchor="delivery" title="Delivery of REQUIRETLS messages"> | <name>Delivery of REQUIRETLS messages</name> | |||
<t>Messages are usually retrieved by end users using protocols | <t>Messages are usually retrieved by end users using protocols | |||
other than SMTP such as <xref target="RFC3501">IMAP</xref>, | other than SMTP such as <xref target="RFC3501" format="default">IMAP</xre | |||
<xref target="RFC1939">POP</xref>, or web mail systems. Mail | f>, | |||
delivery agents supporting the REQUIRETLS SMTP option SHOULD | <xref target="RFC1939" format="default">POP</xref>, or Web mail systems. | |||
observe the guidelines in <xref target="RFC8314" />.</t> | ||||
</section> | delivery agents supporting the REQUIRETLS SMTP option <bcp14>SHOULD</bcp1 | |||
</section> | 4> | |||
observe the guidelines in <xref target="RFC8314" format="default"/>.</t> | ||||
<section anchor="errors" title="Non-delivery message handling"> | </section> | |||
</section> | ||||
<section anchor="errors" numbered="true" toc="default"> | ||||
<name>Non-delivery Message Handling</name> | ||||
<t>Non-delivery ("bounce") messages usually contain important | <t>Non-delivery ("bounce") messages usually contain important | |||
metadata about the message to which they refer, including the | metadata about the message to which they refer, including the | |||
original message header. They therefore MUST be protected in | original message header. They therefore <bcp14>MUST</bcp14> be protected | |||
the same manner as the original message. All non-delivery | in | |||
messages resulting from messages with the REQUIRETLS SMTP | the same manner as the original message. | |||
option, whether resulting from a REQUIRETLS error or some | All non-delivery messages resulting from messages with the REQUIRETLS SMTP | |||
other, MUST also specify the REQUIRETLS SMTP option unless | option, whether resulting from a REQUIRETLS error or some other issue, <bcp14 | |||
redacted as described below.</t> | >MUST</bcp14> | |||
also specify the REQUIRETLS SMTP option unless redacted as described below. | ||||
<t>The path from the origination of an error bounce message | </t> | |||
<t>The path from the origination of an error bounce message | ||||
back to the MAIL FROM address may not share the same REQUIRETLS | back to the MAIL FROM address may not share the same REQUIRETLS | |||
support as the forward path. Therefore, users requiring TLS are | support as the forward path. Therefore, users requiring TLS are | |||
advised to make sure that they are capable of receiving mail | advised to make sure that they are capable of receiving mail | |||
using REQUIRETLS as well. Otherwise, such non-delivery messages | using REQUIRETLS as well. Otherwise, such non-delivery messages | |||
will be lost.</t> | will be lost.</t> | |||
<t>If a REQUIRETLS message is bounced, the server <bcp14>MUST</bcp14> beha | ||||
<t>If a REQUIRETLS message is bounced, the server MUST behave | ve | |||
as if RET=HDRS was present as described in <xref | as if RET=HDRS was present, as described in <xref target="RFC3461" format | |||
target="RFC3461"></xref>. If both RET=FULL and REQUIRETLS are | ="default"/>. If both RET=FULL and REQUIRETLS are | |||
present, the RET=FULL MUST be disregarded. The SMTP client for a | present, the RET=FULL <bcp14>MUST</bcp14> be disregarded. The SMTP client | |||
for a | ||||
REQUIRETLS bounce message uses an empty MAIL FROM | REQUIRETLS bounce message uses an empty MAIL FROM | |||
return-path as required by <xref target="RFC5321"></xref>. When | return-path, as required by <xref target="RFC5321" format="default"/>. Wh en | |||
the MAIL FROM return-path is empty, the REQUIRETLS parameter | the MAIL FROM return-path is empty, the REQUIRETLS parameter | |||
SHOULD NOT cause a bounce message to be discarded even if the | <bcp14>SHOULD NOT</bcp14> cause a bounce message to be discarded even if the | |||
next-hop relay does not advertise REQUIRETLS.</t> | next-hop relay does not advertise REQUIRETLS.</t> | |||
<t>Senders of messages requiring TLS are advised to consider | ||||
<t>Senders of messages requiring TLS are advised to consider | ||||
the possibility that bounce messages will be lost as a result | the possibility that bounce messages will be lost as a result | |||
of REQUIRETLS return path failure, and that some information | of REQUIRETLS return path failure and that some information | |||
could be leaked if a bounce message is not able to be | could be leaked if a bounce message is not able to be | |||
transmitted with REQUIRETLS.</t> | transmitted with REQUIRETLS.</t> | |||
</section> | </section> | |||
<section anchor="reorigination" numbered="true" toc="default"> | ||||
<section anchor="reorigination" title="Reorigination considerations"> | <name>Reorigination Considerations</name> | |||
<t>In a number of situations, a <xref target="RFC5598" format="default">me | ||||
<t>In a number of situations, a <xref target="RFC5598">mediator</xref> | diator</xref> | |||
originates a new message as a result of an incoming message. These | originates a new message as a result of an incoming message. These | |||
situations include, but are not limited to, mailing lists (including | situations include but are not limited to mailing lists (including | |||
administrative traffic such as message approval requests), | administrative traffic such as message approval requests), | |||
<xref target="RFC5228">Sieve</xref>, "vacation" responders, and other | <xref target="RFC5228" format="default">Sieve</xref>, "vacation" responder s, and other | |||
filters to which incoming | filters to which incoming | |||
messages may be piped. These newly originated messages may essentially | messages may be piped. These newly originated messages may essentially | |||
be copies of the incoming message, such as with a forwarding service | be copies of the incoming message, such as with a forwarding service | |||
or a mailing list expander. In other cases, such as with a vacation | or a mailing list expander. In other cases, such as with a vacation | |||
message or a delivery notification, they will be different but might | message or a delivery notification, they will be different but might | |||
contain parts of the original message or other information for which | contain parts of the original message or other information for which | |||
the original message sender wants to influence the requirement to use | the original message sender wants to influence the requirement to use | |||
TLS transmission.</t> | TLS transmission.</t> | |||
<t>Mediators that reoriginate messages should apply REQUIRETLS requirement s | <t>Mediators that reoriginate messages should apply REQUIRETLS requirement s | |||
in incoming messages (both requiring TLS transmission and requesting | in incoming messages (both requiring TLS transmission and requesting | |||
that TLS not be required) to the reoriginated messages to the extent | that TLS not be required) to the reoriginated messages to the extent | |||
feasible. A limitation to this might be that for a message requiring | feasible. A limitation to this might be that for a message requiring | |||
TLS, redistribution to multiple addresses while retaining the TLS | TLS, redistribution to multiple addresses while retaining the TLS | |||
requirement could result in the message not being delivered to some of | requirement could result in the message not being delivered to some of | |||
the intended recipients.</t> | the intended recipients.</t> | |||
<t>User-side mediators (such as use of Sieve rules on a user agent) | <t>User-side mediators (such as use of Sieve rules on a user agent) | |||
typically do not have access to the SMTP details, and therefore may | typically do not have access to the SMTP details and therefore may | |||
not be aware of the REQUIRETLS requirement on a delivered message. | not be aware of the REQUIRETLS requirement on a delivered message. | |||
Recipients that expect sensitive traffic should avoid the use of | Recipients that expect sensitive traffic should avoid the use of | |||
user-side mediators. Alternatively, if operationally feasible (such as whe n | user-side mediators. Alternatively, if operationally feasible (such as whe n | |||
forwarding to a specific, known address), they should apply REQUIRETLS | forwarding to a specific, known address), they should apply REQUIRETLS | |||
to all reoriginated messages that do not contain the "TLS-Required: No" he ader | to all reoriginated messages that do not contain the "TLS-Required: No" he ader | |||
field.</t> | field.</t> | |||
</section> | ||||
</section> | <section anchor="IANA" numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | ||||
<!-- Possibly a 'Contributors' section ... --> | <t>Per this document, IANA has added | |||
the following keyword to the "SMTP Service Extensions" subregistry of the | ||||
<section anchor="IANA" title="IANA Considerations"> | <xref target="MailParams" format="default">"Mail Parameters" registry</xre | |||
<t>If published as an RFC, this draft requests the addition of | f>:</t> | |||
the following keyword to the <xref target="MailParams">SMTP | ||||
Service Extensions Registry</xref>:</t> | ||||
<figure align="left"><artwork align="left"> | ||||
Textual name: Require TLS | ||||
EHLO keyword value: REQUIRETLS | ||||
Syntax and parameters: (no parameters) | ||||
Additional SMTP verbs: none | ||||
MAIL and RCPT parameters: REQUIRETLS parameter on MAIL | ||||
Behavior: Use of the REQUIRETLS parameter on the | ||||
MAIL verb causes that message to require | ||||
the use of TLS and tagging with | ||||
REQUIRETLS for all onward relay. | ||||
Command length increment: 11 characters | ||||
</artwork></figure> | ||||
<t>If published as an RFC, this draft requests the addition of an | ||||
entry to the <xref | ||||
target="SMTPStatusCodes">Simple Mail Transfer Protocol (SMTP) Enhanced Stat | ||||
us | ||||
Codes Registry</xref>:</t> | ||||
<figure align="left"><artwork align="left"> | ||||
Code: 5.7.YYY | ||||
Sample Text: REQUIRETLS support required | ||||
Associated basic status code: 550 | ||||
Description: This indicates that the message was not | ||||
able to be forwarded because it was | ||||
received with a REQUIRETLS requirement | ||||
and none of the SMTP servers to which | ||||
the message should be forwarded provide | ||||
this support. | ||||
Reference: (this document) | ||||
Submitter: J. Fenton | ||||
Change controller: IESG | ||||
</artwork></figure> | ||||
<t>If published as an RFC, this draft requests the addition of | ||||
an entry to the <xref | ||||
target="PermMessageHeaderFields">Permanent Message Header Field | ||||
Names Registry</xref>:</t> | ||||
<figure align="left"><artwork align="left"> | ||||
Header field name: TLS-Required | ||||
Applicable protocol: mail | ||||
Status: standard | ||||
Author/change controller: IETF | ||||
Specification document: (this document) | ||||
</artwork></figure> | ||||
<t>This section is to be updated for publication by | ||||
the RFC Editor.</t> | ||||
</section> | ||||
<section anchor="Security" title="Security Considerations"> | <ul empty="true"><li> | |||
<t>The purpose of REQUIRETLS is to give the originator of a | <dl newline="false" spacing="compact" indent="30"> | |||
<dt>EHLO Keyword:</dt><dd>REQUIRETLS</dd> | ||||
<dt>Description:</dt><dd>Require TLS</dd> | ||||
<dt>Syntax and parameters:</dt><dd>(no parameters)</dd> | ||||
<dt>Additional SMTP verbs:</dt><dd>none</dd> | ||||
<dt>MAIL and RCPT parameters:</dt><dd>REQUIRETLS parameter on MAIL</dd> | ||||
<dt>Behavior:</dt><dd>Use of the REQUIRETLS parameter on the MAIL verb causes | ||||
that message to require the use of TLS and tagging with REQUIRETLS for all onwar | ||||
d relay.</dd> | ||||
<dt>Command length increment:</dt><dd>11 characters</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t>Per this document, IANA has added an | ||||
entry to the "Enumerated Status Codes" subregistry of the <xref target="SMT | ||||
PStatusCodes" format="default">"Simple Mail Transfer Protocol (SMTP) Enhanced St | ||||
atus | ||||
Codes Registry"</xref>:</t> | ||||
<ul empty="true"><li> | ||||
<dl newline="false" spacing="compact" indent="30"> | ||||
<dt>Code:</dt><dd>X.7.30</dd> | ||||
<dt>Sample Text:</dt><dd>REQUIRETLS support required</dd> | ||||
<dt>Associated basic status code:</dt><dd>550</dd> | ||||
<dt>Description:</dt><dd>This indicates that the message was not able to be | ||||
forwarded because it was received with a REQUIRETLS requirement and none of | ||||
the SMTP servers to which the message should be forwarded provide this support.< | ||||
/dd> | ||||
<dt>Reference:</dt><dd>RFC 8689</dd> | ||||
<dt>Submitter:</dt><dd>J. Fenton</dd> | ||||
<dt>Change Controller:</dt><dd>IESG</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t>Per this document, IANA has added | ||||
an entry to the "Permanent Message Header Field | ||||
Names" subregistry of the <xref target="MessageHeaders" | ||||
format="default">"Message Headers" registry</xref> as follows:</t> | ||||
<ul empty="true"><li> | ||||
<dl newline="false" spacing="compact" indent="30"> | ||||
<dt>Header field name:</dt><dd>TLS-Required</dd> | ||||
<dt>Applicable protocol:</dt><dd>mail</dd> | ||||
<dt>Status:</dt><dd>standard</dd> | ||||
<dt>Author/change controller:</dt><dd>IETF</dd> | ||||
<dt>Specification document:</dt><dd>RFC 8689</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="Security" numbered="true" toc="default"> | ||||
<name>Security Considerations</name> | ||||
<t>The purpose of REQUIRETLS is to give the originator of a | ||||
message control over the security of email they send, either by | message control over the security of email they send, either by | |||
conveying an expectation that it will be transmitted in an | conveying an expectation that it will be transmitted in an | |||
encrypted form "over the wire" or explicitly that transport | encrypted form over the wire or explicitly indicating that transport | |||
encryption is not required if it cannot be successfully | encryption is not required if it cannot be successfully | |||
negotiated.</t> | negotiated.</t> | |||
<t>The following considerations apply to the REQUIRETLS service | ||||
<t>The following considerations apply to the REQUIRETLS service | ||||
extension but not the TLS-Required header field, since messages | extension but not the TLS-Required header field, since messages | |||
specifying the header field are less concerned with transport | specifying the header field are less concerned with transport | |||
security.</t> | security.</t> | |||
<section anchor="Passive" numbered="true" toc="default"> | ||||
<section anchor="Passive" title="Passive attacks"> | <name>Passive Attacks</name> | |||
<t>REQUIRETLS is generally effective against passive | <t>REQUIRETLS is generally effective against passive | |||
attackers who are merely trying to eavesdrop on an SMTP | attackers who are merely trying to eavesdrop on an SMTP | |||
exchange between an SMTP client and server. This assumes, of | exchange between an SMTP client and server. This assumes, of | |||
course, the cryptographic integrity of the TLS connection | course, the cryptographic integrity of the TLS connection | |||
being used.</t> | being used.</t> | |||
</section> | </section> | |||
<section anchor="Active" numbered="true" toc="default"> | ||||
<section anchor="Active" title="Active attacks"> | <name>Active Attacks</name> | |||
<t>Active attacks against TLS-encrypted SMTP connections can | ||||
<t>Active attacks against TLS encrypted SMTP connections can | ||||
take many forms. One such attack is to interfere in the | take many forms. One such attack is to interfere in the | |||
negotiation by changing the STARTTLS command to something | negotiation by changing the STARTTLS command to something | |||
illegal such as XXXXXXXX. This causes TLS negotiation to fail | illegal such as XXXXXXXX. This causes TLS negotiation to fail | |||
and messages to be sent in the clear, where they can be | and messages to be sent in the clear, where they can be | |||
intercepted. REQUIRETLS detects the failure of STARTTLS and | intercepted. REQUIRETLS detects the failure of STARTTLS and | |||
declines to send the message rather than send it | declines to send the message rather than send it | |||
insecurely.</t> | insecurely.</t> | |||
<t>A second form of attack is a man-in-the-middle attack | ||||
<t>A second form of attack is a man-in-the-middle attack | ||||
where the attacker terminates the TLS connection rather than | where the attacker terminates the TLS connection rather than | |||
the intended SMTP server. This is possible when, as is | the intended SMTP server. This is possible when, as is | |||
commonly the case, the SMTP client either does not verify the | commonly the case, the SMTP client either does not verify the | |||
server's certificate or establishes the connection even when | server's certificate or establishes the connection even when | |||
the verification fails. REQUIRETLS requires successful | the verification fails. REQUIRETLS requires successful | |||
certificate validation before sending the message.</t> | certificate validation before sending the message.</t> | |||
<t>Another active attack involves the spoofing of DNS MX | ||||
<t>Another active attack involves the spoofing of DNS MX | records of the recipient domain. An attacker with this | |||
records of the recipient domain. An attacker having this | ||||
capability could potentially cause the message to be redirected to a mai l | capability could potentially cause the message to be redirected to a mai l | |||
server under the attacker's own control, which would | server under the attacker's own control, which would | |||
presumably have a valid certificate. REQUIRETLS requires that | presumably have a valid certificate. REQUIRETLS requires that | |||
the recipient domain's MX record lookup be validated either | the recipient domain's MX record lookup be validated either | |||
using DNSSEC or via a published MTA-STS policy that specifies | using DNSSEC or via a published MTA-STS policy that specifies | |||
the acceptable SMTP server hostname(s) for the recipient domain.</t> | the acceptable SMTP server hostname(s) for the recipient domain.</t> | |||
</section> | ||||
</section> | <section anchor="badactor" numbered="true" toc="default"> | |||
<name>Bad-Actor MTAs</name> | ||||
<section anchor="badactor" title="Bad Actor MTAs"> | <t>A bad-actor MTA along the message transmission path could | |||
<t>A bad-actor MTA along the message transmission path could | ||||
misrepresent its support of REQUIRETLS and/or actively strip | misrepresent its support of REQUIRETLS and/or actively strip | |||
REQUIRETLS tags from messages it handles. However, since | REQUIRETLS tags from messages it handles. However, since | |||
intermediate MTAs are already trusted with the cleartext of | intermediate MTAs are already trusted with the cleartext of | |||
messages they handle, and are not part of the threat model | messages they handle, and are not part of the threat model | |||
for transport-layer security, they are also not part of the | for transport-layer security, they are also not part of the | |||
threat model for REQUIRETLS.</t> | threat model for REQUIRETLS.</t> | |||
<t>It should be reemphasized that since SMTP TLS is a | ||||
<t>It should be reemphasized that since SMTP TLS is a | ||||
transport-layer security protocol, messages sent using | transport-layer security protocol, messages sent using | |||
REQUIRETLS are not encrypted end-to-end and are visible to | REQUIRETLS are not encrypted end-to-end and are visible to | |||
MTAs that are part of the message delivery path. Messages | MTAs that are part of the message delivery path. Messages | |||
containing sensitive information that MTAs should not have | containing sensitive information that MTAs should not have | |||
access to MUST be sent using end-to-end content encryption | access to <bcp14>MUST</bcp14> be sent using end-to-end content encryptio | |||
such as <xref target="RFC4880">OpenPGP</xref> or <xref | n | |||
target="RFC8551">S/MIME</xref>.</t> | such as <xref target="RFC4880" format="default">OpenPGP</xref> or <xref | |||
</section> | target="RFC8551" format="default">S/MIME</xref>.</t> | |||
</section> | ||||
<section anchor="conflicts" title="Policy Conflicts"> | <section anchor="conflicts" numbered="true" toc="default"> | |||
<name>Policy Conflicts</name> | ||||
<t>In some cases, the use of the TLS-Required header field may conflict | <t>In some cases, the use of the TLS-Required header field may conflict | |||
with a recipient domain policy expressed through the <xref | with a recipient domain policy expressed through the <xref target="RFC7672" form | |||
target="RFC7672">DANE</xref> or <xref target="RFC8461">MTA-STS</xref> protocols. | at="default">DANE</xref> or <xref target="RFC8461" format="default">MTA-STS</xre | |||
f> protocols. | ||||
Although these protocols encourage the use of TLS transport by advertising | Although these protocols encourage the use of TLS transport by advertising | |||
availability of TLS, the use of "TLS-Required: No" header field represents an | the availability of TLS, the use of the "TLS-Required: No" header field represen ts an | |||
explicit decision on the part of the sender not to require the use of TLS, such | explicit decision on the part of the sender not to require the use of TLS, such | |||
as to overcome a configuration error. The recipient domain has the ultimate | as to overcome a configuration error. The recipient domain has the ultimate | |||
ability to require TLS by not accepting messages when STARTTLS has not been | ability to require TLS by not accepting messages when STARTTLS has not been | |||
negotiated; otherwise, "TLS-Required: No" is effectively directing the client | negotiated; otherwise, "TLS-Required: No" is effectively directing the client | |||
MTA to behave as if it does not support DANE nor MTA-STS.</t> | MTA to behave as if it does not support DANE or MTA-STS.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.3207.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.4033.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.4034.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.4035.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.3461.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5234.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5248.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5321.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5322.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6125.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7525.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7672.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8314.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8461.xml"/> | ||||
<section anchor="acknowledgements" title="Acknowledgements"> | <reference anchor="MailParams" target="http://www.iana.org/assignments/m | |||
<t>The author would like to acknowledge many helpful suggestions | ail-parameters"> | |||
on the ietf-smtp and uta mailing lists, in particular those of | <front> | |||
Viktor Dukhovni, Chris Newman, Tony Finch, Jeremy Harris, Arvel | <title>Mail Parameters</title> | |||
Hathcock, John Klensin, Barry Leiba, John Levine, Rolf Sonneveld, | <author> | |||
and Per Thorsheim.</t> | <organization>IANA</organization> | |||
</author> | ||||
</section> | </front> | |||
</reference> | ||||
<section anchor="history" title="Revision History"> | ||||
<t>To be removed by RFC Editor upon publication as an RFC.</t> | ||||
<section title="Changes since -08 Draft"> | ||||
<t>Additional changes in response to IESG review:</t> | ||||
<t><list style="symbols"> | ||||
<t>Unify wording describing TLS-Required in Appendix A.2.</t> | ||||
<t>Add specifics on verification of mail server hostnames with | ||||
certificates.</t> | ||||
<t>Wording tweak in 4.3 to emphasize optional nature of REQUIRETLS.</t> | ||||
<t>Update S/MIME reference from RFC 5751 to 8551</t> | ||||
</list></t></section> | ||||
<section title="Changes since -07 Draft"> | ||||
<t>Changes in response to IESG review and IETF Last Call comments:</t> | ||||
<t><list style="symbols"> | ||||
<t>Change associated status code for 5.7.YYY from 530 to | ||||
550.</t> | ||||
<t>Correct textual name of extension in IANA Considerations | ||||
for consistency with the rest of the document.</t> | ||||
<t>Remove special handling of bounce messages in Section | ||||
4.1.</t> | ||||
<t>Change name of header field from RequireTLS to | ||||
TLS-Required and make capitalization of parameter | ||||
consistent.</t> | ||||
<t>Remove mention of transforming RET=FULL to RET=HDRS on | ||||
relay in Section 5.</t> | ||||
<t>Replace Section 6 dealing with mailing lists with a more | ||||
general section on reorigination by mediators.</t> | ||||
<t>Add security considerations section on policy conflicts.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes since -06 Draft"> | ||||
<t>Various changes in response to AD review:</t> | ||||
<t><list style="symbols"> | ||||
<t>Reference RFC 7525 for TLS negotiation | ||||
recommendations.</t> | ||||
<t>Make reference to requested 5.7.YYY error code | ||||
consistent.</t> | ||||
<t>Clarify applicability to LMTP and submission.</t> | ||||
<t>Provide ABNF for syntax of SMTP option and header field | ||||
and examples in Appendix A.</t> | ||||
<t>Correct use of normative language in Section 5.</t> | ||||
<t>Clarify case where REQUIRETLS option is used on bounce | ||||
messages.</t> | ||||
<t>Improve Security Requirements wording to be inclusive of | ||||
both SMTP option and header field.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes since -05 Draft"> | ||||
<t>Corrected IANA Permanent Message Header Fields Registry | ||||
request.</t> | ||||
</section> | ||||
<section title="Changes since -04 Draft"> | ||||
<t>Require validation of SMTP server hostname via DNSSEC or | ||||
MTA-STS policy when TLS is required.</t> | ||||
</section> | ||||
<section title="Changes since -03 Draft"> | ||||
<t>Working Group Last Call changes, including:</t> | ||||
<t><list style="symbols"> | ||||
<t>Correct reference for SMTP DANE</t> | ||||
<t>Clarify that RequireTLS: NO applies to both MTA-STS and | ||||
DANE policies</t> | ||||
<t>Correct newly-defined status codes</t> | ||||
<t>Update MTA-STS references to RFC</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes since -02 Draft"> | ||||
<t><list style="symbols"> | ||||
<t>More complete documentation for IANA registration requests.</t> | ||||
<t>Changed bounce handling to use RET parameters of <xref | ||||
target="RFC3461"></xref>, along with slightly more liberal transmission of | ||||
bounces even if REQUIRETLS can't be negotiated.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes since -01 Draft"> | ||||
<t><list style="symbols"> | ||||
<t>Converted DEEP references to RFC 8314.</t> | ||||
<t>Removed REQUIRETLS options: CHAIN, DANE, and DNSSEC.</t> | ||||
<t>Editorial corrections, notably making the header field | ||||
name consistent (RequireTLS rather than Require-TLS).</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes since -00 Draft"> | ||||
<t><list style="symbols"> | ||||
<t>Created new header field, Require-TLS, for use by "NO" | ||||
option.</t> | ||||
<t>Removed "NO" option from SMTP service extension.</t> | ||||
<t>Recommend DEEP requirements for delivery of messages | ||||
requiring TLS.</t> | ||||
<t>Assorted copy edits</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes since fenton-03 Draft"> | ||||
<t><list style="symbols"> | ||||
<t>Wording improvements from Rolf Sonneveld review 22 July | ||||
2017</t> | ||||
<t>A few copy edits</t> | ||||
<t>Conversion from individual to UTA WG draft</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes Since -02 Draft"> | ||||
<t><list style="symbols"> | ||||
<t>Incorporation of "MAY TLS" functionality as | ||||
REQUIRETLS=NO per suggestion on UTA WG mailing list.</t> | ||||
<t>Additional guidance on bounce messages</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes Since -01 Draft"> | ||||
<t><list style="symbols"> | ||||
<t>Specified retries when multiple MX hosts exist for a | ||||
given domain.</t> | ||||
<t>Clarified generation of non-delivery messages</t> | ||||
<t>Specified requirements for application of REQUIRETLS to mail forwar | ||||
ders | ||||
and mailing lists.</t> | ||||
<t>Clarified DNSSEC requirements to include MX lookup only.</t> | ||||
<t>Corrected terminology regarding message retrieval | ||||
vs. delivery.</t> | ||||
<t>Changed category to standards track.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes Since -00 Draft"> | ||||
<t><list style="symbols"> | ||||
<t>Conversion of REQUIRETLS from an SMTP verb to a MAIL FROM | ||||
parameter to better associate REQUIRETLS requirements with | ||||
transmission of individual messages.</t> | ||||
<t>Addition of an option to require DNSSEC lookup of the | ||||
remote mail server, since this affects the common name of the | ||||
certificate that is presented.</t> | ||||
<t>Clarified the wording to more clearly state that TLS | ||||
sessions must be established and not simply that STARTTLS is | ||||
negotiated.</t> | ||||
<t>Introduced need for minimum encryption standards (key | ||||
lengths and algorithms)</t> | ||||
<t>Substantially rewritten Security Considerations section</t> | ||||
</list></t> | ||||
</section> | ||||
</section> | ||||
</middle> | ||||
<!-- *****BACK MATTER ***** --> | ||||
<back> | ||||
<!-- References split into informative and normative --> | ||||
<!-- There are 2 ways to insert reference entries from the citation libraries | ||||
: | ||||
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here ( | ||||
as shown) | ||||
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml | ||||
"?> here | ||||
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.x | ||||
ml") | ||||
Both are cited textually in the same manner: by using xref elements. | ||||
If you use the PI option, xml2rfc will, by default, try to find included fil | ||||
es in the same | ||||
directory as the including file. You can also define the XML_LIBRARY environ | ||||
ment variable | ||||
with a value containing a set of directories to search. These can be either | ||||
in the local | ||||
filing system or remote ones accessed by http (http://domain/dir/... ).--> | ||||
<references title="Normative References"> | ||||
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2 | ||||
119.xml"?--> | ||||
&RFC2119; | ||||
&RFC3207; | ||||
&RFC4033; | ||||
&RFC4034; | ||||
&RFC4035; | ||||
&RFC3461; | ||||
&RFC5234; | ||||
&RFC5248; | ||||
&RFC5321; | ||||
&RFC5322; | ||||
&RFC6125; | ||||
&RFC7525; | ||||
&RFC7672; | ||||
&RFC8174; | ||||
&RFC8314; | ||||
&RFC8461; | ||||
<!-- [rfced] [MailParams] This URL is correct --> | ||||
<reference anchor="MailParams" | ||||
target="http://www.iana.org/assignments/mail-parameters"> | ||||
<front> | ||||
<title>IANA Mail Parameters</title> | ||||
<author> | ||||
<organization>Internet Assigned Numbers Authority (IANA)</organizatio | ||||
n> | ||||
</author> | ||||
<date year="2007" /> | ||||
</front> | ||||
</reference> | ||||
<!-- [rfced] [SMTPStatusCodes] This URL is correct --> | ||||
<reference anchor="SMTPStatusCodes" | <reference anchor="SMTPStatusCodes" target="https://www.iana.org/assignm | |||
target="http://www.iana.org/assignments/smtp-enhanced-status-cod | ents/smtp-enhanced-status-codes"> | |||
es"> | <front> | |||
<front> | <title>Simple Mail Transfer Protocol (SMTP) Enhanced Status | |||
<title>Simple Mail Transfer Protocol (SMTP) Enhanced Status | ||||
Codes Registry</title> | Codes Registry</title> | |||
<author> | ||||
<organization>IANA</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<author> | <reference anchor="MessageHeaders" target="https://www.iana.org/assignme | |||
<organization>Internet Assigned Numbers Authority (IANA)</organizatio | nts/message-headers"> | |||
n> | <front> | |||
</author> | <title>Permanent Message Header Field Names</title> | |||
<author> | ||||
<date year="2008" /> | <organization>IANA</organization> | |||
</front> | </author> | |||
</reference> | </front> | |||
</reference> | ||||
<!-- [rfced] [PermMessageHeaderFields] This URL is correct --> | </references> | |||
<references> | ||||
<reference anchor="PermMessageHeaderFields" | <name>Informative References</name> | |||
target="https://www.iana.org/assignments/message-headers/message | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
-headers.xhtml#perm-headers"> | ence.RFC.1939.xml"/> | |||
<front> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
<title>Permanent Message Header Field Names Registry</title> | ence.RFC.2033.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<author> | ence.RFC.3501.xml"/> | |||
<organization>Internet Assigned Numbers Authority (IANA)</organizatio | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
n> | ence.RFC.4880.xml"/> | |||
</author> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.5228.xml"/> | ||||
<date year="2004" /> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
</front> | ence.RFC.5598.xml"/> | |||
</reference> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.6409.xml"/> | ||||
</references> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.8551.xml"/> | ||||
<references title="Informative References"> | </references> | |||
<!-- Here we use entities that we defined at the beginning. --> | </references> | |||
&RFC1939; | ||||
&RFC2033; | ||||
&RFC3501; | ||||
&RFC4880; | ||||
&RFC5228; | ||||
&RFC5598; | ||||
&RFC6409; | ||||
&RFC8551; | ||||
</references> | ||||
<section title="Examples"> | <section numbered="true" toc="default"> | |||
<t>This section is informative.</t> | <name>Examples</name> | |||
<section title="REQUIRETLS SMTP Option"> | <t>This section is informative.</t> | |||
<t>The TLS-Required SMTP option is used to express the intent of | <section numbered="true" toc="default"> | |||
the sender that the associated message be relayed using TLS. In | <name>REQUIRETLS SMTP Option</name> | |||
the following example, lines beginning with C: are transmitted | <t>The TLS-Required SMTP option is used to express the intention of | |||
from the SMTP client to the server, and lines beginning with S: | the sender to have the associated message relayed using TLS. In | |||
the following example, lines beginning with "C:" are transmitted | ||||
from the SMTP client to the server, and lines beginning with "S:" | ||||
are transmitted in the opposite direction.</t> | are transmitted in the opposite direction.</t> | |||
<figure> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork> | ||||
S: 220 mail.example.net ESMTP | S: 220 mail.example.net ESMTP | |||
C: EHLO mail.example.org | C: EHLO mail.example.org | |||
S: 250-mail.example.net Hello example.org [192.0.2.1] | S: 250-mail.example.net Hello example.org [192.0.2.1] | |||
S: 250-SIZE 52428800 | S: 250-SIZE 52428800 | |||
S: 250-8BITMIME | S: 250-8BITMIME | |||
S: 250-PIPELINING | S: 250-PIPELINING | |||
S: 250-STARTTLS | S: 250-STARTTLS | |||
S: 250 HELP | S: 250 HELP | |||
C: STARTTLS | C: STARTTLS | |||
S: TLS go ahead | S: TLS go ahead | |||
]]></artwork> | ||||
<t>(at this point TLS negotiation takes place. The remainder of this | ||||
session occurs within TLS.)</t> | ||||
(at this point TLS negotiation takes place. The remainder of this | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
session occurs within TLS.) | ||||
S: 220 mail.example.net ESMTP | S: 220 mail.example.net ESMTP | |||
C: EHLO mail.example.org | C: EHLO mail.example.org | |||
S: 250-mail.example.net Hello example.org [192.0.2.1] | S: 250-mail.example.net Hello example.org [192.0.2.1] | |||
S: 250-SIZE 52428800 | S: 250-SIZE 52428800 | |||
S: 250-8BITMIME | S: 250-8BITMIME | |||
S: 250-PIPELINING | S: 250-PIPELINING | |||
S: 250-REQUIRETLS | S: 250-REQUIRETLS | |||
S: 250 HELP | S: 250 HELP | |||
C: MAIL FROM:<roger@example.org> REQUIRETLS | C: MAIL FROM:<roger@example.org> REQUIRETLS | |||
S: 250 OK | S: 250 OK | |||
C: RCPT TO:<editor@example.net> | C: RCPT TO:<editor@example.net> | |||
S: 250 Accepted | S: 250 Accepted | |||
C: DATA | C: DATA | |||
S: 354 Enter message, ending with "." on a line by itself | S: 354 Enter message, ending with "." on a line by itself | |||
]]></artwork> | ||||
(message follows) | <t>(message follows)</t> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
C: . | C: . | |||
S: 250 OK | S: 250 OK | |||
C: QUIT | C: QUIT | |||
</artwork> | ]]></artwork> | |||
</figure> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<section title="TLS-Required Header Field"> | <name>TLS-Required Header Field</name> | |||
<t>The TLS-Required header field is used when the sender requests | <t>The TLS-Required header field is used when the sender requests | |||
that the mail system not heed a default policy of the recipient | that the mail system not heed a default policy of the recipient | |||
domain requiring TLS. It might be used, for example, to allow | domain requiring TLS. It might be used, for example, to allow | |||
problems with the recipient domain's TLS certificate to be | problems with the recipient domain's TLS certificate to be | |||
reported:</t> | reported:</t> | |||
<figure> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork> | From: Roger Reporter <roger@example.org> | |||
From: Roger Reporter <roger@example.org> | To: Andy Admin <admin@example.com> | |||
To: Andy Admin <admin@example.com> | ||||
Subject: Certificate problem? | Subject: Certificate problem? | |||
TLS-Required: No | TLS-Required: No | |||
Date: Fri, 18 Jan 2019 10:26:55 -0800 | Date: Fri, 18 Jan 2019 10:26:55 -0800 | |||
Message-ID: <5c421a6f79c0e_d153ff8286d45c468473@mail.example.org> | Message-ID: <5c421a6f79c0e_d153ff8286d45c468473@mail.example.org> | |||
Andy, there seems to be a problem with the TLS certificate | Andy, there seems to be a problem with the TLS certificate | |||
on your mail server. Are you aware of this? | on your mail server. Are you aware of this? | |||
Roger | Roger ]]></artwork> | |||
</artwork> | </section> | |||
</figure> | </section> | |||
</section> | ||||
</section> | <section anchor="acknowledgements" numbered="false" toc="default"> | |||
</back> | <name>Acknowledgements</name> | |||
<t> | ||||
The author would like to acknowledge many helpful suggestions on the | ||||
ietf-smtp and uta mailing lists, in particular those of Viktor Dukhovni, | ||||
Tony Finch, Jeremy Harris, Arvel Hathcock, John Klensin, Barry Leiba, John | ||||
Levine, Chris Newman, Rolf Sonneveld, and Per Thorsheim. | ||||
</t> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 103 change blocks. | ||||
832 lines changed or deleted | 510 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |