<?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-brotman-drtls-00" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true">

<front>
<title abbrev="APR">Domain-Required TLS</title><seriesInfo value="draft-brotman-drtls-00" stream="IETF" status="standard" name="Internet-Draft"></seriesInfo>
<author initials="A." surname="Brotman" fullname="Alex Brotman"><organization>Comcast, Inc</organization><address><postal><street></street>
</postal><email>alex_brotman@comcast.com</email>
</address></author><date year="2026" month="June" day="4"></date>
<area>Applications</area>
<workgroup></workgroup>

<abstract>
<t>A mechanism which allows a domain owner to declare their messages should only be
accepted via sessions that employ STARTTLS, and otherwise, delivery options to
be interpreted by the evaluating/receiving system.</t>
</abstract>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t>In the email ecosystem, messages are transmitted using best-effort STARTTLS,
or Opportunistic TLS [?RFC7435]. This generally works well, though, there's
no assurance that messages will be transmitted securely.</t>
<t>There do exist mechanisms which allow receiving domains some control over the
transmission, though both parties must support these (DANE/MTA-STS).</t>
<t>This document defines a mechanism whereby the domain owner can require that
email messages are transmitted employing TLS, and otherwise the
receiving system should evaluate declared and local policy to determine
delivery.</t>
</section>

<section anchor="terminology"><name>Terminology</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
<xref target="RFC2119"></xref>.</t>
</section>

<section anchor="glossary"><name>Glossary</name>
</section>

<section anchor="policy-discovery-via-dns-record"><name>Policy Discovery via DNS Record</name>
<t>NOTE: TBD 5321 or 5322 or both. Leaning toward 5322.
NOTE: OrgDom (and presumably relying on the PSL)
      may not be an ideal location, TBD</t>
<t>A receiving system should perform this inspection while the SMTP session is
open.  This allows the receiving system to create an in-line response.</t>
<t>The receiving system should attempt to find discover the Org Domain (or Apex,
or Registered Domain).  If the message were use the domain 'example.com' to
send the message, the record would be:</t>
<t>_drtls.example.com</t>
<t>And the record lookup would be the same if they had used a sub-domain such
as 'e.example.com'.</t>
</section>

<section anchor="record-attributes"><name>Record Attributes</name>
<t>v:   This MUST always exist, and the value must always be &quot;DRTLSv1&quot;.  Failure
     to do so should be treated as an invalid record, and the record MUST
     be ignored.</t>
<t>tls: This is the mode by which receivers should adhere.  Possible values are
     (r)equired, OthersTBD.</t>
<t>sdo: Sub-domain override.  There are three modes, (n)one, (a)llowed, and
     (s)pecified.  None means that no sub-domains are allowed to override
     the policy specified.  Allowed means that any sub-domain can have its
     own policy that deviates from the OrgDom.  Specified will require
     another tag to specify the domains allowed to have that override.</t>
<t>sdl: A comma-separated list of domains permitted to have an override.
     Only applicable when the &quot;sdo&quot; flag has been set to &quot;s&quot;.</t>
<t>rp:  The domain holder may declare a requested policy.  Options are
     (q)uarantine, (d)efer, (r)eject. Default is 'r'. More information below.</t>
<t>NOTE: I think I would be okay to say that there is no 'rp', only reject.</t>

<section anchor="dns-record-samples"><name>DNS Record Samples</name>
<t>v=DRTLSv1;tls=r;rp=d;</t>
<t>v=DRTLSv1;tls=r;sdo=s;sdl=foo.example.com,bar.example.com</t>
</section>
</section>

<section anchor="receiver-evaluation"><name>Receiver Evaluation</name>
<t>Provided the receiving system can retrieve a valid DNS record for the DRTLS,
it should apply this to the inbound message.  It is local policy for the
receiving system to determine if they would prefer to refuse delivery with a
permanent (5xx) or temporary (4xx) code.  In either case, the refusal should
be clear that the system is unwilling to accept the message due to the DRTLS
configuration, and failure to negotiate TLS.</t>

<section anchor="requested-policy"><name>Requested Policy</name>
<t>The 'rp' flag allows the domain owner to request the receiver use the declared
policy when a message that does not adhere to the 'tls' mode is attempted
for delivery. The receiving site MAY choose to ignore the policy and instead
use a local policy.</t>
</section>

<section anchor="multi-message-smtp-sessions"><name>Multi-message SMTP sessions</name>
<t>In the event of a session which attempts to deliver multiple messages, the
receiving system should take care to recognize when/if the sending domain
changes.  Each of these distinct domains may have a separate policy.</t>
</section>
</section>

<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="requiretls"><name>RequireTLS</name>
<t>RequireTLS [?@RFC8689] does exist, and allows for a similar mechanism, though, it is
per-message and declared by the MUA, and requires that the sending domain control
all infrastructure that might send on behalf of their domain.  This method allows
the domain to declare the usage for the entirety of the domain.</t>
</section>

<section anchor="non-participatory-receivers"><name>Non-Participatory Receivers</name>
<t>If a receiver does not utilize this mechanism, the messages may still be
transmitted insecurely.  There is nothing the domain owner can do in those
cases.</t>
</section>
</section>

<section anchor="other-considerations"><name>Other Considerations</name>

<section anchor="multi-hop-delivery"><name>Multi-hop Delivery</name>
<t>In the case of a multi-hop delivery, the original sender has no control over
how a message is delivered on subsequent hops.  Declaring this policy implies
an understanding that some of those messages may bounce due to non-TLS delivery
attempts.</t>
</section>

<section anchor="delivery-from-sender"><name>Delivery from Sender</name>
<t>This could allow for a sending system to refuse to attempt delivery if it knows
that TLS will not be attempted or cannot be negotiated.  For example, if a bulk
sender knows that example.org has declared their desire to only be delivered
via STARTTLS, and knows that delivering a message to other-site.com will never
properly negotiate TLS, it could refuse delivery before the attempt.</t>
</section>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>IANA</t>
</section>

<section anchor="appendix"><name>Appendix</name>
<t>Appendix</t>
</section>

</middle>

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

</back>

</rfc>
