rfc-8689

SMTP Require TLS Option

J. Fenton
date2019-11 streamIETF areasec wguta statusPROPOSED STANDARD pages16 canonicalhttps://www.rfc-editor.org/rfc/rfc8689 doi10.17487/RFC8689 errataview
The SMTP STARTTLS option, used in negotiating transport-level encryption of SMTP connections, is not as useful from a security standpoint as it might be because of its opportunistic nature; message delivery is, by default, prioritized over security. This document describes an SMTP service extension, REQUIRETLS, and a message header field, TLS-Required. If the REQUIRETLS option or TLS-Required message header field is used when sending a message, it asserts a request on the part of the message sender to override the default negotiation of TLS, either by requiring that TLS be negotiated when the message is relayed or by requesting 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 unimportant.

Extracted elements (28)

design-rationale §6

Mediators (mailing lists, Sieve filters, vacation responders) should apply REQUIRETLS requirements from incoming messages to reoriginated messages where feasible. User-side mediators typically lack SMTP-level detail and may be unaware of REQUIRETLS tags; recipients expecting sensitive traffic should avoid user-side mediators.

email, tls

design-rationale §1

REQUIRETLS uses two complementary mechanisms: an SMTP service extension (requiring end-to-end REQUIRETLS support across all relay hops) and a message header field (which can transit MTAs that do not support REQUIRETLS). This split allows both strict enforcement and best-effort delivery use cases.

email, tls

design-rationale §3

The TLS-Required: No header field exists to allow senders to override recipient-side TLS policies (MTA-STS, DANE) in exceptional cases such as reporting a misconfigured or expired TLS certificate on the recipient's mail server, where strict policy enforcement would block the diagnostic message.

email, tls

interoperability-note §4.2.2

Messages tagged 'TLS-Required: No' may be relayed through MTAs that do not support REQUIRETLS; as a result, the REQUIRETLS SMTP option will not be uniformly observed across all relay hops for such messages.

email, tls

interoperability-note §2

The REQUIRETLS extension is valid for message relay (RFC 5321), submission (RFC 6409), and the Local Mail Transfer Protocol (LMTP, RFC 2033). Mail delivery agents supporting REQUIRETLS SHOULD observe RFC 8314 guidelines for end-user retrieval protocols (IMAP, POP).

email, tls

normative-requirement §5 MUST

All non-delivery messages resulting from REQUIRETLS messages MUST also specify the REQUIRETLS SMTP option, protecting bounce metadata the same way as the original message, unless the message is redacted.

email, tls, security

normative-requirement §4.3 MUST

An MUA or submission agent wishing to require TLS MUST negotiate STARTTLS and REQUIRETLS and include the REQUIRETLS option on MAIL FROM. When TLS is not to be required, the sender MUST include the TLS-Required header field in the message.

email, tls

normative-requirement §4.2.1 MUST

Following REQUIRETLS delivery failure, the SMTP client MUST send a non-delivery notification to the reverse-path. Status code 5.7.30 ('REQUIRETLS support required') SHOULD be used when the server lacks REQUIRETLS; 5.7.10 ('Encryption needed') when TLS cannot be established.

email, tls

normative-requirement §2 MUST

Following STARTTLS negotiation, the SMTP server MUST advertise REQUIRETLS support in the subsequent EHLO response before the client may use the REQUIRETLS MAIL FROM option.

email, tls

normative-requirement §4.1 MUST

If a message is being locally aliased and redistributed to multiple addresses, all instances of the redistributed message MUST be tagged with the same REQUIRETLS handling as the original.

email, tls

normative-requirement §4.2.1 MUST NOT

If any REQUIRETLS step fails (TLS negotiation, certificate validation, or REQUIRETLS not advertised), the client MUST issue QUIT and retry with subsequent MX hosts. If no more MX hosts remain, the client MUST NOT transmit the message.

email, tls, security

normative-requirement §2 MUST

The REQUIRETLS MAIL FROM option MUST only be specified in the context of an SMTP session that: (1) employs TLS transmission, (2) has validated the server's MX hostname via DNSSEC or MTA-STS, and (3) has verified the server's certificate via trust chain or DANE.

email, tls, security

normative-requirement §4.1 MUST

Upon receipt of the REQUIRETLS MAIL FROM option, an SMTP server MUST tag that message as needing REQUIRETLS handling. If a REQUIRETLS MAIL FROM parameter is specified, the TLS-Required header field MUST be ignored (but MAY be included in onward relay).

email, tls

normative-requirement §5 MUST

When a REQUIRETLS message is bounced, the server MUST behave as if RET=HDRS were present (per RFC 3461); if both RET=FULL and REQUIRETLS are present, RET=FULL MUST be disregarded to avoid leaking full message content in the bounce.

email, tls, security

normative-requirement §4.2.2 MUST

When sending a 'TLS-Required: No' tagged message, the sending MTA MUST open an SMTP session and attempt STARTTLS if possible, but MUST NOT fail delivery if STARTTLS cannot be negotiated; recipient domain policies (MTA-STS, DANE) MUST be ignored.

email, tls

normative-requirement §4.2.1 MUST

When the MX lookup for a REQUIRETLS message is not accompanied by a valid DNSSEC signature, the client MUST also validate the SMTP server name using MTA-STS. The server hostname MUST match the DNS-ID or CN-ID of the certificate presented.

email, tls, dns, security

protocol-element §2

REQUIRETLS is an SMTP service extension that allows a sender to assert that a given message MUST be relayed over a TLS-protected session with verified server identity. It uses the EHLO keyword 'REQUIRETLS' and adds an optional 'REQUIRETLS' parameter to the MAIL FROM command.

email, tls, security

protocol-element §3

TLS-Required is a new message header field used to request that recipient-side TLS policy mechanisms (MTA-STS, DANE) be ignored when relaying a message. Its only defined parameter value is 'No', indicating the sender prioritizes delivery over enforced TLS.

email, tls

registry §7

IANA added enhanced status code X.7.30 ('REQUIRETLS support required') to the 'Enumerated Status Codes' subregistry of the 'SMTP Enhanced Status Codes Registry', associated with basic status code 550, indicating a message could not be forwarded because no next-hop SMTP server supports REQUIRETLS.

email, tls, registry

registry §7

IANA added 'REQUIRETLS' to the 'SMTP Service Extensions' subregistry of the 'Mail Parameters' registry. The EHLO keyword 'REQUIRETLS' has no parameters, no additional SMTP verbs, adds the REQUIRETLS parameter to MAIL, and increments the command length by 11 characters.

email, tls, registry

registry §7

IANA added 'TLS-Required' to the 'Permanent Message Header Field Names' subregistry of the 'Message Headers' registry, applicable to the mail protocol with standard status.

email, tls, registry

security-consideration §5

Bounce (non-delivery) messages for REQUIRETLS-tagged messages must themselves be sent with REQUIRETLS; if the return path lacks REQUIRETLS support, bounce messages will be lost. Senders requiring TLS should ensure they can also receive mail using REQUIRETLS to avoid losing bounce notifications.

email, tls, security

security-consideration §8.2

REQUIRETLS defends against man-in-the-middle attacks by requiring successful certificate validation (via trust chain or DANE) before sending a message; connections that lack verified server identity are rejected. DNS MX record spoofing is countered by requiring DNSSEC validation or MTA-STS policy confirmation of MX hostnames.

email, tls, security, dns

security-consideration §8.3

REQUIRETLS is a transport-layer security mechanism only; messages are not encrypted end-to-end and are visible in cleartext to intermediate MTAs on the delivery path. Messages containing sensitive content that MTAs should not access MUST use end-to-end content encryption such as OpenPGP or S/MIME.

email, tls, security

security-consideration §8.1

REQUIRETLS is effective against passive eavesdropping attacks because it refuses to send messages in the clear if TLS negotiation fails. Active attacks that modify the STARTTLS command (e.g., replacing it with an illegal string) are also defeated, as REQUIRETLS detects STARTTLS failure and declines to transmit.

email, tls, security

security-consideration §8.4

The 'TLS-Required: No' header field may conflict with recipient domain policies expressed via DANE or MTA-STS. It effectively instructs the client MTA to behave as if it does not support those mechanisms; the recipient domain can still enforce TLS by refusing connections without STARTTLS.

email, tls, security

wire-format §2

The REQUIRETLS MAIL FROM parameter is encoded as the keyword 'REQUIRETLS' with no associated value: `requiretls-param = "REQUIRETLS"`. It adds 11 octets (space + keyword) to the maximum MAIL FROM command line length.

email, tls

wire-format §3

The TLS-Required header field ABNF is: `requiretls-field = "TLS-Required:" [FWS] "No" CRLF`. Only the value 'No' is defined. More than one instance of this header MUST NOT appear in a given message.

email, tls