<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->
<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-nurpmeso-smtp-tls-srv-01"
  ipr="trust200902"
  obsoletes=""
  updates="3207 5321 5598"
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!--
     [CHECK]  FIXME
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN
-->
  <front>

   <title>Secure SMTP/TLS SRV Announcement</title>

   <seriesInfo name="Internet-Draft" value="draft-nurpmeso-smtp-tls-srv-01"/>

    <author fullname="Steffen Nurpmeso" initials="S" role="editor" surname="Nurpmeso">
      <address><email>steffen@sdaoden.eu</email></address>
    </author>

    <date year="2024" month="10" day="31"/>

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>SMTP</keyword>
    <keyword>TLS</keyword>
    <keyword>Secure SMTP</keyword>
    <keyword>STARTTLS</keyword>
    <keyword>SRV</keyword>

    <abstract><t>
      It is described how DNS (RFC 1035) SRV (RFC 2782) records announce
      availability of TLS (RFC 8446) enabled Secure SMTP (RFC 3207, RFC 5321).
    </t></abstract>

  </front>
  <middle>

    <section>
      <name>Introduction</name>
      <t>
        <xref target="RFC2782"/>
        defines a widely adopted DNS-based service discovery protocol.
        <xref target="RFC6186"/>
        is a specification of
        <xref target="RFC2782"/>
        SRV records for the email protocols
        IMAP<xref target="RFC9051"/>,
        POP3<xref target="RFC1939"/>,
        and
        SUBMISSION<xref target="RFC6409"/>.
        SMTP<xref target="RFC5321"/>
        connections to MTAs
        (<xref target="RFC5598"/>, section 4.3.2)
        are yet excluded from their share on the widely supported SRV
        record,
        and the email architecture security considerations
        (<xref target="RFC5598"/>, section 6.1) do not yet cover
        explorability of transport security.
        The SMTP/TLS SRV announcement can be queried before a connection
        to a discovered SMTP MX server is established;
        it <bcp14>MAY</bcp14> be used to distribute SMTP load
        via the SRV Priority and Weight mechanism further.
      </t>

      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
        <t>
          The term "Implicit TLS" refers to the automatic negotiation of TLS
          whenever a TCP connection is made on a particular TCP port that is
          used exclusively by that server for TLS connections.
          The term "Implicit TLS" is intended to contrast with the use of the
          STARTTLS command in SMTP that is used by the client and the server to
          explicitly negotiate TLS on an established cleartext TCP connection.
        </t>
      </section>
    </section>

    <section>
      <name>SMTP/TLS SRV Service Name</name>
      <t>
        The service name for
        TLS<xref target="RFC8446"/>
        enabled
        Secure<xref target="RFC3207"/>
        SMTP<xref target="RFC5321"/>
        is smtps, the resulting DNS label _smtps.
      </t><dl newline="true">
        <dt>STARTTLS</dt><dd>
          Whenever a domain publishes an according DNS
          SRV<xref target="RFC2782"/>
          resource record it asserts availability of Secure SMTP,
          that is, of the
          STARTTLS<xref target="RFC3207"/>
          SMTP service extension on the normal
          SMTP<xref target="RFC5321"/>
          port (specified by IANA as port 25).
          The port number <bcp14>MUST</bcp14> be given as 0.
        </dd><dt>Implicit TLS</dt><dd>
          If the port number of the published SRV resource record
          is not 0, then the domain announces to support Implicit TLS on the
          given port in addition to STARTTLS on the normal SMTP port.
          (Specifying the IANA SMTP port results in a non-compliant service,
          and <bcp14>SHOULD NOT</bcp14> be used on the internet.)
          The
          STARTTLS<xref target="RFC3207"/>
          extension command <bcp14>MUST NOT</bcp14> be used during connections on
          an Implicit TLS port.
        </dd>
      </dl>
    </section>

    <section>
      <name>Example: service record</name>
      <t>
        Here are two examples, the first announcing to support the STARTTLS
        SMTP service extension,
        the second specifying the port number 26 to indicate an additional
        Implicit TLS port.
      </t><sourcecode><![CDATA[
_smtps._tcp     SRV 0 1  0 mail1.example.com.

_smtps._tcp     SRV 0 1 26 mail2.example.com.
      ]]></sourcecode>
    </section>

    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>
        IANA is not expected to add a dedicated port for "Implicit TLS SMTP".
        Shall it consider otherwise the author suggests port 26.
      </t>
    </section>

    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>
        This specification can be used to avoid downgrade attacks on the
        opportunistic approach of STARTTLS,
        accomplished via the mechanism used for many other IETF standardized
        protocols, most notably
        <xref target="RFC2782"/>
        (IMAP, POP3, SUBMISSION).
        With its Implicit TLS capability it grants the SMTP protocol the same
        level of confidentiality through
        TLS<xref target="RFC8446"/>
        as is already standardized for the other email protocols;
        the fewer necessary packet roundtrips aid, too.
        The security of
        DNS<xref target="RFC1035"/>
        is out of scope for this specification, but
        DNSSEC<xref target="RFC4033"/><xref target="RFC4034"/><xref target="RFC4035"/>
        and secure
        DNS transport<xref target="RFC7858"/><xref target="RFC8094"/><xref target="RFC8310"/><xref target="RFC9250"/>
        etc exists.
      </t>
    </section>

  </middle>
  <back>

    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2782.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3207.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5321.xml"/>
      </references>

      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1939.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4035.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5598.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6186.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6409.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6698.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7250.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7672.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7858.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8094.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8310.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8461.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9051.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9250.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9460.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-svcb-ech.xml"/>
      </references>
    </references>

    <section anchor="Rationale">
      <name>Rationale</name>
      <t>
        Plenty of methods have been standardized by the IETF to perform
        service TLS capability discovery for SMTP.
        They have in common that they represent SMTP specific solutions
        to a problem that most, if not all other protocols address via
        the means this document thus reiterates for SMTP.
        They represent further development effort and error surfaces.
        They also impose increased administration effort,
        and, due to this, are inaccessible to a large number, if not
        the majority, of private email server operators:
        either through additional costs, the impossibility to set up
        a dedicated name server, if so required,
        and, also as a superset of the former,
        restrictive web interfaces that support only a minimal set of
        DNS<xref target="RFC1035"/>
        resource record types.
        Finally they, especially looking forward, disallow the business
        model where a provider manages
        DNSSEC<xref target="RFC4033"/><xref target="RFC4034"/><xref target="RFC4035"/>
        for basic user DNS entries,
        created via some kind of web interface.
      </t><t>
        There is for example
        MTA-STS<xref target="RFC8461"/>
        which requires SMTP operators to install and maintain a HTTP
        protocol server,
        accessible on the usual HTTP/S ports
        and the same domain as the email service,
        and subject to the now usual web server and DNS (traffic) attacks.
        Dependent on the software this may require non-trivial and error
        prone path access policy server rules.
      </t><t>
        Another example are the newer
        SVCB<xref target="RFC9460"/>
        DNS resource records.
        They support a plethora of additional options,
        and one could say that, with hindsight to
        TLS Encrypted Client Hello<xref target="I-D.ietf-tls-svcb-ech"/>,
        using SVCB would reduce DNS traffic.
        SVCB, however, just like many other IETF designed DNS RR types,
        is often not available in web interfaces providers make available
        to normal end users.
        Furthermore, and that is the authors opinion, they are problematic,
        especially regarding SMTP, in that they again would represent
        a special approach for SMTP compared to other email protocols,
        and that includes
        SUBMISSION<xref target="RFC6409"/>
        which effectively is identical to SMTP.
        (The author believes email should be as easy as possible to setup
        and use for end users.)
      </t><t>
        Also in the authors opinion we now start mixing the model, view,
        controller paradigm with SVCB.
        Which leads to
        DANE for SMTP<xref target="RFC7672"/>.
        Unfortunately
        DNSSEC<xref target="RFC4033"/><xref target="RFC4034"/><xref target="RFC4035"/>
        is still consciously unsupported by major players as of today,
        and provider web interfaces do often not allow users placement
        of the necessary DANE resource records in addition,
        as of the time of this writing.
        However, discovering a (TLS enabled) email service via SRV records,
        thereafter checking for applicability of
        DNS-Based Authentication of Named Entities (DANE)<xref target="RFC6698"/>,
        possibly even
        Using Raw Public Keys in Transport Layer Security (TLS)<xref target="RFC7250"/>
        would be a bright future that addresses a lot of today's issues.
      </t>
    </section>

    <section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>
        Thanks to Jan Ingvoldstad for remarks on the missing rationale.
      </t>
    </section>

 </back>
</rfc>
<!-- vim:set tw=1000:s-ts-mode -->
