
Internet Draft                              Paul Hoffman
draft-hoffman-smtp-ssl-00.txt               Internet Mail Consortium
March 24, 1997
Expires September 24, 1997

         SMTP Service Extension for Secure SMTP over TLS

Status of this memo

This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.

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."

To learn the current status of any Internet-Draft, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast).

1. Abstract

This document describes an extension to the SMTP service that allows
an SMTP server and client to use transport-layer security to provide
private, authenticated communication over the Internet. This gives
SMTP agents the ability to protect some or all of their communications
from eavesdroppers and attackers.

2. Introduction

SMTP [RFC-821] servers and clients normally communicate in the clear
over the Internet. In many cases, this communication goes through one
or more router that is not controlled or trusted by either entity.
Such an untrusted router might allow a third party to monitor or alter
the communications between the server and client.

Further, there is often a desire for two SMTP agents to be able to
authenticate each others' identities. For example, a secure SMTP
server might only allow communications from other SMTP agents it
knows, or it might act differently for messages received from an agent
it knows than from one it doesn't know.

TLS [TLS], more commonly known as SSL, is a popular mechanism for
enhancing TCP communications with privacy and authentication. TLS is
in wide use with the HTTP protocol, and is also being used for adding
security to many other common protocols that run over TCP.

3. TLS Extension

The TLS extension to SMTP is laid out as follows:

(1) the name of the SMTP service defined here is TLS;

(2) the EHLO keyword value associated with the extension is TLS;

(3) the TLS keyword has an optional parameter that contains a
space-separated list of tokens describing the type and version of TLS
that can be used;

(4) a new SMTP verb, "STARTTLS", and its parameter, are defined;

(5) no additional parameters are added to any SMTP command.

4. The TLS Keyword

The TLS keyword is used to tell the SMTP client that the SMTP server
allows use of TLS. It has one optional parameter: a space-separated
list of tokens describing the type and version of TLS that can be
used. Each token describes a TLS protocol that has a description that
has been published by the IESG.

The only tokens currently defined are:
TLS1.0 [TLS]
SSL3.0 [SSL30]

5. The STARTTLS Command

The format for the STARTTLS command is:

STARTTLS token

where the token parameter is one of the tokens described in Section 4.

After the client gives the STARTTLS command, the server responds with
one of the following reply codes:

220 - Ready to start TLS
501 - Syntax error (no parameter, more than one parameters)
504 - TLS not available due to the server not being able to use
      the specified protocol
554 - TLS not available due to some other reason

In the case of a 220 response code, the client SHOULD start the TLS
procedure immediately. However, a server SHOULD be able to accept
other SMTP command between sending a 220 response code and receiving
a STARTTLS command.

6. Usage Example

The following dialog illustrates how a client and server can start
a TLS session on the first attempt:

S: <waits for connection on TCP port 25>
C: <opens connection>
S: 220 mail.imc.org SMTP service ready
C: EHLO mail.ietf.org
S: 250-mail.imc.org greets you with a warm hug
S: 250 TLS TLS1.0 SSL3.0
C: STARTTLS TLS1.0
S: 220 Go ahead with TLS1.0
C: <starts TLS session>

The following dialog illustrates how a client and server can start
a TLS session after trying a TLS protocol the server doesn't support:

S: <waits for connection on TCP port 25>
C: <opens connection>
S: 220 mail.imc.org SMTP service ready
C: EHLO mail.ietf.org
S: 250-mail.imc.org smiles broadly and invites you in
S: 250 TLS
C: STARTTLS SSL3.0
S: 504 Sorry, I don't know how to SSL3.0
C: STARTTLS TLS1.0
S: 220 Go ahead with TLS1.0
C: <starts TLS session>

7. Security Considerations

A server announcing in an EHLO response that it uses a particular TLS
protocol should not pose any security issues, since any use of TLS will
be at least as secure as no use of TLS.

The SMTP client should note carefully the result of the TLS negotiation.
If the negotiation results in no privacy, the client may choose to
abort the SMTP session.

Another draft, [SMTP-AUTH], proposes a different mechanism that can
also add privacy and security to SMTP.[SMTP-AUTH] does not allow for
using TLS, but instead describes how to enable other security protocols
when using SMTP.

A. References

[RFC-821] "Simple Mail Transfer Protocol", RFC 821

[RFC-1869] "SMTP Service Extensions", RFC 1869

[SMTP-AUTH] "SMTP Service Extension for Authentication",
draft-myers-smtp-auth

[SSL30] "The SSL Protocol Version 3.0", draft-ietf-tls-ssl-version3

[TLS] "The TLS Protocol Version 1.0", draft-ietf-tls-protocol

B. Outstanding Issues

Need to create an IANA registry and vetting process for adding new
tokens.

C. Author's Address

Paul Hoffman
Internet Mail Consortium
127 Segre Place
Santa Cruz, CA  95060
(408) 426-9827
phoffman@imc.org


