<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-hoflev-secure-smtp-00" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true">

<front>
<title abbrev="SSMTP">Secure SMTP</title><seriesInfo value="draft-hoflev-secure-smtp-00" stream="IETF" status="standard" name="Internet-Draft"></seriesInfo>
<author initials="P." surname="Hoffman" fullname="Paul Hoffman"><organization>ICANN</organization><address><postal><street></street>
</postal><email>paul.hoffman@icann.org</email>
</address></author><author initials="J." surname="Levine" fullname="John Levine"><organization>Standcore LLC</organization><address><postal><street></street>
</postal><email>standards@standcore.com</email>
</address></author><date/>
<area>Application</area>
<workgroup></workgroup>
<keyword>email</keyword>

<abstract>
<t>SMTP <xref target="RFC5321"></xref> uses opportunistic TLS to optionally protect transport sessions.
Secure SMTP uses mandatory TLS on all connections.
It also provides a method for SMTP clients to locate Secure SMTP servers.</t>
</abstract>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t>SMTP <xref target="RFC5321"></xref> has always been defined as an unencrypted protocol.
The STARTTLS extension <xref target="RFC3207"></xref> allows an optional upgrade to TLS
within an existing session.</t>
<t>Secure SMTP performs the TLS negotiation at the start of each session, so all
traffic is encrypted.</t>

<section anchor="requirements-language"><name>Requirements Language</name>
<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and only when, they appear in all capitals, as shown here.</t>
</section>
</section>

<section anchor="session-protocol"><name>Session protocol</name>
<t>Secure SMTP uses port TBD.
To start a session, a Secure SMTP client connects to that port and negotiates a TLS connection.
The client MUST use MTA-STS <xref target="RFC8461"></xref> or DANE for SMTP <xref target="RFC7672"></xref> to verify that it has
connected to the intended server.</t>
<t>After the connection, the protocol is identical to SMTP.</t>
</section>

<section anchor="server-discovery"><name>Server discovery</name>
<t>Once a Secure SMTP client identifies a domain to which mail is to be delivered,
it MUST do a DNS lookup to locate an MX record for the domain.</t>
<t>Secure SMTP servers are identified in an MX record by adding a <tt>_ssmtp</tt> prefix
to the hostname of the server.
The <tt>_ssmtp</tt> prefix is removed from the hostname before
finding addresses associated with the secure SMTP server's address.</t>

<artwork>bigcorp.example. IN MX 10 _ssmtp.mail1.bigcorp.example.
                 IN MX 20 mail2.bigcorp.example.
</artwork>
<t>In the example above, mail1.bigcorp.example is a Secure SMTP server,
and mail2.bigcorp.example is a conventional SMTP server.
If a server provides both conventional and Secure SMTP, two records
identify the two services:</t>

<artwork>bigcorp.example. IN MX 10 _ssmtp.mail1.bigcorp.example.
                 IN MX 10 mail1.bigcorp.example.
</artwork>
<t>The numerical priority is used to select a server in the same manner
as conventional SMTP.
If there is both a conventional and Secure SMTP server at the same priority,
a client MAY prefer the Secure one, or it may do load levelling as it would
for multiple conventional servers at the same priority.</t>
<t>Unlike conventional SMTP, there is no fallback to A or AAAA address records.
A domain MUST publish an MX record with a <tt>_ssmtp</tt> prefix on the host name,
to indicate that it supports Secure SMTP.</t>
<t>The prefix appears in the MX to identify the server but is not part of the
server's hostname.
Note that since hostnames cannot contain underscores, there is no conflict
with conventional SMTP MX records.</t>
</section>

<section anchor="differences-from-smtp"><name>Differences from SMTP</name>
<t>Secure SMTP servers MUST present a signed certificate that can be verified with MTA-STS,
or a certificate that can be verified with DANE for SMTP, or preferably either way.</t>
<t>Secure SMTP allows all SMTP extensions except STARTTLS which is irrelevant.</t>
<t>When a mail server adds a Received: header field to an incoming message, it identifies
the protocol as &quot;with SSMTP&quot; or &quot;with SUTF8SMTP&quot; depending on whether the session
used SMTPUTF8.</t>
</section>

<section anchor="security"><name>Security considerations</name>
<t>Secure SMTP is functionally the same as conventional SMTP except that
all sessions are encrypted with TLS and the servers' certificates are
validated, which should deter interception and entity-in-the-middle attacks.</t>
<t>Messages are still stored in the clear on servers, so the same considerations
about message encryption apply as for conventional SMTP.</t>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>IANA is requested to allocate a port number for Secure SMTP.</t>
<t>IANA is requested to add the following entries to the Mail Transmission Types for the &quot;Received:&quot; Header Field
Reference, in the WITH Protocol Types table:</t>
<t>SSMTP Secure SMTP</t>
<t>SUTF8SMTP Secure SMTP with SMTPUTF8</t>
<t>IANA is requested to add the following entry to the
Underscored and Globally Scoped DNS Node Names
registry.</t>
<t>MX  _ssmtp [this document]</t>
</section>

<section anchor="implementation-status"><name>Implementation Status</name>

<aside><t>Delete this section before publication</t>
</aside>
<t>Many MTAs provide secure submission on port 465.
Often a configuation tweak will be enough to accept secure SMTP on a different port.</t>
</section>

</middle>

<back>
<references><name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5321.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7672.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8461.xml"/>
</references>
<references><name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3207.xml"/>
</references>

</back>

</rfc>
