Internet DRAFT - draft-fenton-smtp-require-tls
draft-fenton-smtp-require-tls
Internet Engineering Task Force J. Fenton
Internet-Draft Altmode Networks
Intended status: Standards Track February 13, 2017
Expires: August 17, 2017
SMTP Require TLS Option
draft-fenton-smtp-require-tls-03
Abstract
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 prioritized over security. This document
describes a complementary SMTP service extension, REQUIRETLS. If the
REQUIRETLS option 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 policy mechanisms such
as SMTP STS and DANE be ignored when relaying a high priority
message.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 17, 2017.
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
Fenton Expires August 17, 2017 [Page 1]
Internet-Draft SMTP Require TLS Option February 2017
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. The REQUIRETLS Service Extension . . . . . . . . . . . . . . 3
3. REQUIRETLS Semantics . . . . . . . . . . . . . . . . . . . . 5
3.1. REQUIRETLS Receipt Requirements . . . . . . . . . . . . . 5
3.2. REQUIRETLS Sender Requirements . . . . . . . . . . . . . 5
3.2.1. Sending with TLS Required . . . . . . . . . . . . . . 5
3.2.2. Sending with TLS Optional . . . . . . . . . . . . . . 6
3.3. REQUIRETLS Submission . . . . . . . . . . . . . . . . . . 7
3.4. Delivery of REQUIRETLS messages . . . . . . . . . . . . . 7
4. Non-delivery message handling . . . . . . . . . . . . . . . . 7
5. Mailing list considerations . . . . . . . . . . . . . . . . . 8
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8
7.1. Passive attacks . . . . . . . . . . . . . . . . . . . . . 9
7.2. Active attacks . . . . . . . . . . . . . . . . . . . . . 9
7.3. Bad Actor MTAs . . . . . . . . . . . . . . . . . . . . . 9
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10
9. Revision History . . . . . . . . . . . . . . . . . . . . . . 10
9.1. Changes Since -02 Draft . . . . . . . . . . . . . . . . . 10
9.2. Changes Since -01 Draft . . . . . . . . . . . . . . . . . 10
9.3. Changes Since -00 Draft . . . . . . . . . . . . . . . . . 10
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . 11
10.2. Informative References . . . . . . . . . . . . . . . . . 12
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction
The SMTP [RFC5321] STARTTLS service extension [RFC3207] provides a
means by which an SMTP server and client can establish a Transport
Layer Security (TLS) protected session for the transmission of email
messages. By default, TLS is used only upon mutual agreement
(successful negotiation) of STARTTLS between the client and server;
if this is not possible, the message is sent without transport
encryption. Furthermore, it is common practice for the client to
negotiate TLS even if the SMTP server's certificate fails to
authenticate it.
Fenton Expires August 17, 2017 [Page 2]
Internet-Draft SMTP Require TLS Option February 2017
Policy mechanisms such as DANE [RFC7672] and SMTP STS
[I-D.ietf-uta-mta-sts] may impose requirements for the use of TLS for
email destined for some domains. However, such policies do not allow
the sender to specify which messages are more sensitive and require
transport-level encryption, and which ones are urgent and ought to be
relayed even if TLS cannot be negotiated successfully.
The default opportunistic nature of SMTP TLS enables several "on the
wire" attacks on SMTP security between MTAs. These include passive
eavesdropping on connections for which TLS is not used, interference
in the SMTP protocol to prevent TLS from being negotiated (presumably
followed by eavesdropping), and insertion of a man-in-the-middle
attacker taking advantage of the lack of server authentication by the
client. Attacks are more described in more detail in the Security
Considerations section of this document.
The REQUIRETLS SMTP service extension allows the SMTP client to
specify that a given message sent during a particular session MUST be
sent over a TLS protected session with specified security
characteristics, or conversely that delivery should be prioritized
over ability to negotiate TLS. For messages requiring TLS
negotiation, it also requires that the SMTP server advertise that it
also supports REQUIRETLS, in effect promising that it will honor the
requirement to require TLS transmission and REQUIRETLS support for
onward transmission of messages specifying that requirement.
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
2. The REQUIRETLS Service Extension
1. The textual name of the extension is "Require TLS".
2. The EHLO keyword value associated with this extension is
"REQUIRETLS".
3. One MAIL FROM option is defined by this extension.
4. Two new SMTP status codes are defined by this extension to convey
error conditions resulting from failure of the client to
negotiate a TLS connection with the required security and as a
result of an attempt to send to a server not also supporting the
REQUIRETLS extension.
Fenton Expires August 17, 2017 [Page 3]
Internet-Draft SMTP Require TLS Option February 2017
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. With the exception of REQUIRETLS=NO
(described below), this option MUST only be specified in the context
of an SMTP session meeting the security requirements that have been
specified:
o The session itself MUST employ TLS transmission, unless the NO
parameter is specified.
o Any server authentication requirements specified as an option to
the REQUIRETLS option (see below) MUST have been satisfied in
establishing the current session.
An optional parameter to the REQUIRETLS MAIL FROM option specifies
the requirements for server authentication that MUST be used for any
onward transmission of the following message. The parameter takes
the form of either a single value or comma-separated list, separated
from the REQUIRETLS option by a single "=" (equals-sign) character.
If present, the parameter MUST take one or more of the following
values:
o CHAIN - The certificate presented by the SMTP server MUST verify
successfully in a trust chain leading to a certificate trusted by
the SMTP client. The choice of trusted (root) certificates by the
client is at their own discretion. The client MAY choose to use
the certificate set maintained by the CA/B forum [citation needed]
for this purpose.
o DANE - The certificate presented by the SMTP server MUST verify
succesfully using DANE as specified in RFC 7672 [RFC7672].
o DNSSEC - The server MUST confirm that any MX record or CNAME
lookup used to locate the SMTP server must be DNSSEC [RFC4035]
signed and valid.
o NO - The SMTP client SHOULD attempt to send the message regardless
of its ability to negotiate STARTTLS with the SMTP server,
ignoring policy-based mechanisms, if any, asserted by the
recipient domain. Nevertheless, the client MAY negotiate STARTTLS
with the server if available. If the NO parameter is present, any
other REQUIRETLS parameter MUST NOT be used.
The CHAIN and DANE parameters are additive; if both are specified,
either method of certificate validation is acceptable. If neither
CHAIN nor DANE is specified, the certificate presented by the SMTP
server is not required to be verified.
Fenton Expires August 17, 2017 [Page 4]
Internet-Draft SMTP Require TLS Option February 2017
3. REQUIRETLS Semantics
3.1. REQUIRETLS Receipt Requirements
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 with the specified option(s). The manner
in which this tagging takes place is implementation-dependent. If
the message is being locally aliased and redistributed to multiple
addresses, all instances of the message MUST be tagged in the same
manner.
3.2. REQUIRETLS Sender Requirements
3.2.1. Sending with TLS Required
When sending a message tagged with REQUIRETLS other than the
REQUIRETLS=NO option, the sending (client) MTA MUST:
1. Look up the SMTP server to which the message is to be sent. If
the DNSSEC option is included in the message tag, the MX record
lookups in this process MUST use DNSSEC verification and the
response(s) MUST be DNSSEC-signed in order to ensure the
integrity of the resource identifier [RFC6125] used to
authenticate the SMTP server.
2. Open an SMTP session with the peer SMTP server using the EHLO
verb. The server MUST advertise the REQUIRETLS capability.
3. Establish a TLS-protected SMTP session with its peer SMTP server
and authenticate the server's certificate with the specified
authentication method.
4. The SMTP client SHOULD also require that meaningfully secure
cipher algorithms and key lengths be negotiated with the server.
The choices of key lengths and algorithms change over time, so a
specific requirement is not presented here.
If any of the above steps fail, the client SHOULD issue a QUIT to the
server and repeat steps 2-4 with each host on the recipient domain's
list of MX hosts in an attempt to find a mail path that meets the
sender's requirements. If there are no more MX hosts or if the MX
record lookup is not DNSSEC-protected and DNSSEC verification is
required, the client MUST NOT transmit the message and MUST issue an
SMTP QUIT command to the server. The client MAY send other,
unprotected, messages to that server prior to issuing the QUIT if it
has any.
Fenton Expires August 17, 2017 [Page 5]
Internet-Draft SMTP Require TLS Option February 2017
Following such a failure, the SMTP client MUST send a non-delivery
notification to the reverse-path of the failed message as described
in section 3.6 of [RFC5321]. The following status codes [RFC5248]
SHOULD be used:
o DNSSEC lookup failure: 5.x.x DNSSEC lookup required
o REQUIRETLS not supported by server: 5.7.x REQUIRETLS needed
o Unable to establish TLS-protected SMTP session: 5.7.10 Encryption
needed
Refer to Section 4. for further requirements regarding non-delivery
messages.
If all REQUIRETLS requirements have been met, transmit the message,
issuing the REQUIRETLS option on the MAIL FROM command with the
required option(s), if any.
3.2.2. Sending with TLS Optional
Messages tagged REQUIRETLS=NO are handled differently from other
REQUIRETLS messages, as follows. When sending a message tagged with
REQUIRETLS=NO, the sending (client) MTA MUST:
o Look up the SMTP server to which the message is to be sent as
described in [RFC5321].
o Open an SMTP session with the peer SMTP server using the EHLO
verb. Attempt to negotiate STARTTLS if possible, and follow any
policy published by the recipient domain, but do not fail if this
is unsuccessful.
o If the server does not advertise the REQUIRETLS capability, send
the message in the usual manner (without the REQUIRETLS option,
because the server will not understand the option).
o If the server advertises the REQUIRETLS capability, send the
message with the REQUIRETLS=NO option.
Some SMTP servers that are configured to expect STARTTLS connections
as a matter of policy may not accept messages in the absence of
STARTTLS. This MUST be expected, and a non-delivery notification
returned to the sender.
Messages tagged with the REQUIRETLS=NO option will be sent without
the option to SMTP servers not supporting REQUIRETLS. REQUIRETLS=NO
MAY therefore not persist through multiple email relay hops.
Fenton Expires August 17, 2017 [Page 6]
Internet-Draft SMTP Require TLS Option February 2017
3.3. REQUIRETLS Submission
An MUA or other agent making the initial introduction of a message to
SMTP has authority to decide whether to require TLS, and if so, using
what authentication method(s). It does so by issuing the REQUIRETLS
option in the MAIL FROM command during message submission. This MAY
be done based on a user interface selection, on a header field
included in the message, or based on policy. The manner in which the
decision to require TLS is made is implementation-dependent and is
beyond the scope of this specification.
3.4. Delivery of REQUIRETLS messages
Messages are usually retrieved by end users using protocols other
than SMTP such as IMAP [RFC3501], POP [RFC1939], or web mail systems.
Mail delivery agents supporting REQUIRETLS SHOULD require that
retrieval of messages requiring transport encryption take place over
authenticated, encrypted channels.
4. Non-delivery message handling
Non-delivery ("bounce") messages usually contain important metadata
about the message to which they refer, including the original message
header. They therefore MUST be protected in the same manner as the
original message. All non-delivery messages, whether resulting from
a REQUIRETLS error or some other, MUST employ REQUIRETLS using the
same authentication method(s) as the message that caused the error to
occur.
It should be noted that the path from the origination of an error
bounce message back to the MAIL FROM address may not share the same
REQUIRETLS support as the forward path. Therefore, users of
REQUIRETLS (other than REQUIRETLS=NO) are advised to make sure that
they are capable of receiving mail using REQUIRETLS at the same
authentication method(s) as messages they send. Otherwise, such non-
delivery messages will be lost.
If unable to send a bounce message due to a REQUIRETLS failure (the
return path not supporting the TLS requirements in the original
message), the MTA sending the bounce message MAY send a redacted non-
delivery message to the postmaster of the domain identified in the
envelope-From address identifying the message only by Message-ID and
indicating the type of failure. The original From, Return-path, To,
Sender, Cc, and related header fields MUST NOT be included in this
message.
Fenton Expires August 17, 2017 [Page 7]
Internet-Draft SMTP Require TLS Option February 2017
Senders of messages specifying REQUIRETLS (other than REQUIRETLS=NO)
are advised to consider the increased likelihood that bounce messages
will be lost as a result of REQUIRETLS return path failure.
5. Mailing list considerations
Mailing lists, upon receipt of a message, originate new messages to
list addresses, as distinct from an aliasing operation that redirects
the original message, in some cases to multiple recipients. The
requirement to preserve the REQUIRETLS tag and options therefore does
not extend to mailing lists. REQUIRETLS users SHOULD use caution
when sending to mailing lists and MUST NOT assume that REQUIRETLS
applies to messages from the list operator to list members.
Mailing list operators MAY apply REQUIRETLS requirements in incoming
messages to the resulting messages they originate. If this is done,
they SHOULD also apply these requirements to administrative traffic,
such as messages to moderators requesting approval of messages.
6. IANA Considerations
If published as an RFC, this draft requests the addition of the
keyword REQUIRETLS to the SMTP Service Extensions Registry
[MailParams].
If published as an RFC, this draft also requests the creation of a
registry, REQUIRETLS Security Requirements, to be initially populated
with the CHAIN, DANE, DNSSEC, and NO keywords.
If published as an RFC, this draft requests the addition of an entry
to the Simple Mail Transfer Protocol (SMTP) Enhanced Status Codes
Registry [SMTPStatusCodes] in the 5.7.YYY range to indicate lack of
REQUIRETLS support by an SMTP server to which a message is being
routed.
This section is to be removed during conversion into an RFC by the
RFC Editor.
7. Security Considerations
The purpose of REQUIRETLS is to improve communications security for
email by giving the originator of a message an expectation that it
will be transmitted in an encrypted form "over the wire". When used,
REQUIRETLS changes the traditional behavior of email transmission,
which favors delivery over the ability to send email messages using
transport-layer security, to one in which requested security takes
precedence over delivery and domain-level policy.
Fenton Expires August 17, 2017 [Page 8]
Internet-Draft SMTP Require TLS Option February 2017
The following considerations apply to STARTTLS other than the
STARTTLS=NO option, since messages specifying that option are
specifying less concern with transport security.
7.1. Passive attacks
REQUIRETLS is generally effective against passive attackers who are
merely trying to eavesdrop on an SMTP exchange between an SMTP client
and server. This assumes, of course, the cryptographic integrity of
the TLS connection being used.
7.2. Active attacks
Active attacks against TLS encrypted SMTP connections can take many
forms. One such attack is to interfere in the negotiation by
changing the STARTTLS command to something illegal such as XXXXXXXX.
This causes TLS negotiation to fail and messages to be sent in the
clear, where they can be intercepted. REQUIRETLS detects the failure
of STARTTLS and declines to send the message rather than send it
insecurely.
A second form of attack is a man-in-the-middle attack where the
attacker terminates the TLS connection rather than the intended SMTP
server. This is possible when, as is commonly the case, the SMTP
client either does not verify the server's certificate or establishes
the connection even when the verification fails. The REQUIRETLS
CHAIN and DANE options allow the message sender to specify that
successful certificate validation, using either or both of two
different methods, is required before sending the message.
Another active attack involves the spoofing of DNS MX records of the
recipient domain. An attacker having this capability could cause the
message to be redirected to a mail server under the attacker's own
control, which would presumably have a valid certificate. The
REQUIRETLS DNSSEC option allows the message sender to require that
valid DNSSEC [RFC4033] signatures be obtained when locating the
recipient's mail server, in order to address that attack.
In addition to support of the DNSSEC option, domains receiving email
SHOULD deploy DNSSEC and SMTP clients SHOULD deploy DNSSEC
verification.
7.3. Bad Actor MTAs
A bad-actor MTA along the message transmission path could
misrepresent its support of REQUIRETLS and/or actively strip
REQUIRETLS tags from messages it handles. However, since
intermediate MTAs are already trusted with the cleartext of messages
Fenton Expires August 17, 2017 [Page 9]
Internet-Draft SMTP Require TLS Option February 2017
they handle, and are not part of the threat model for transport-layer
security, they are also not part of the threat model for REQUIRETLS.
It should be reemphasized that since SMTP TLS is a transport-layer
security protocol, messages sent using REQUIRETLS are not encrypted
end-to-end and are visible to MTAs that are part of the message
delivery path. Messages containing sensitive information that MTAs
should not have access to MUST be sent using end-to-end content
encryption such as OpenPGP [RFC4880] or S/MIME [RFC5751].
8. Acknowledgements
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,
John Levine, Rolf Sonneveld, and Per Thorsheim.
9. Revision History
To be removed by RFC Editor upon publication as an RFC.
9.1. Changes Since -02 Draft
o Incorporation of "MAY TLS" functionality as REQUIRETLS=NO per
suggestion on UTA WG mailing list.
o Additional guidance on bounce messages
9.2. Changes Since -01 Draft
o Specified retries when multiple MX hosts exist for a given domain.
o Clarified generation of non-delivery messages
o Specified requirements for application of REQUIRETLS to mail
forwarders and mailing lists.
o Clarified DNSSEC requirements to include MX lookup only.
o Corrected terminology regarding message retrieval vs. delivery.
o Changed category to standards track.
9.3. Changes Since -00 Draft
o Conversion of REQUIRETLS from an SMTP verb to a MAIL FROM
parameter to better associate REQUIRETLS requirements with
transmission of individual messages.
Fenton Expires August 17, 2017 [Page 10]
Internet-Draft SMTP Require TLS Option February 2017
o 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.
o Clarified the wording to more clearly state that TLS sessions must
be established and not simply that STARTTLS is negotiated.
o Introduced need for minimum encryption standards (key lengths and
algorithms)
o Substantially rewritten Security Considerations section
10. References
10.1. Normative References
[MailParams]
Internet Assigned Numbers Authority (IANA), "IANA Mail
Parameters", 2007,
<http://www.iana.org/assignments/mail-parameters>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3207] Hoffman, P., "SMTP Service Extension for Secure SMTP over
Transport Layer Security", RFC 3207, DOI 10.17487/RFC3207,
February 2002, <http://www.rfc-editor.org/info/rfc3207>.
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Protocol Modifications for the DNS Security
Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005,
<http://www.rfc-editor.org/info/rfc4035>.
[RFC5248] Hansen, T. and J. Klensin, "A Registry for SMTP Enhanced
Mail System Status Codes", BCP 138, RFC 5248,
DOI 10.17487/RFC5248, June 2008,
<http://www.rfc-editor.org/info/rfc5248>.
[RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321,
DOI 10.17487/RFC5321, October 2008,
<http://www.rfc-editor.org/info/rfc5321>.
Fenton Expires August 17, 2017 [Page 11]
Internet-Draft SMTP Require TLS Option February 2017
[SMTPStatusCodes]
Internet Assigned Numbers Authority (IANA), "Simple Mail
Transfer Protocol (SMTP) Enhanced Status Codes Registry",
2008, <http://www.iana.org/assignments/
smtp-enhanced-status-codes>.
10.2. Informative References
[I-D.ietf-uta-mta-sts]
Margolis, D., Risher, M., Ramakrishnan, B., Brotman, A.,
and J. Jones, "SMTP MTA Strict Transport Security (MTA-
STS)", draft-ietf-uta-mta-sts-02 (work in progress),
December 2016.
[RFC1939] Myers, J. and M. Rose, "Post Office Protocol - Version 3",
STD 53, RFC 1939, DOI 10.17487/RFC1939, May 1996,
<http://www.rfc-editor.org/info/rfc1939>.
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003,
<http://www.rfc-editor.org/info/rfc3501>.
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "DNS Security Introduction and Requirements",
RFC 4033, DOI 10.17487/RFC4033, March 2005,
<http://www.rfc-editor.org/info/rfc4033>.
[RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.
Thayer, "OpenPGP Message Format", RFC 4880,
DOI 10.17487/RFC4880, November 2007,
<http://www.rfc-editor.org/info/rfc4880>.
[RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
Mail Extensions (S/MIME) Version 3.2 Message
Specification", RFC 5751, DOI 10.17487/RFC5751, January
2010, <http://www.rfc-editor.org/info/rfc5751>.
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
Verification of Domain-Based Application Service Identity
within Internet Public Key Infrastructure Using X.509
(PKIX) Certificates in the Context of Transport Layer
Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
2011, <http://www.rfc-editor.org/info/rfc6125>.
Fenton Expires August 17, 2017 [Page 12]
Internet-Draft SMTP Require TLS Option February 2017
[RFC7672] Dukhovni, V. and W. Hardaker, "SMTP Security via
Opportunistic DNS-Based Authentication of Named Entities
(DANE) Transport Layer Security (TLS)", RFC 7672,
DOI 10.17487/RFC7672, October 2015,
<http://www.rfc-editor.org/info/rfc7672>.
Author's Address
Jim Fenton
Altmode Networks
704 Benvenue Avenue
Los Altos, California 94024
USA
Email: fenton@bluepopcorn.net
Fenton Expires August 17, 2017 [Page 13]