Internet DRAFT - draft-weinman-amtp
draft-weinman-amtp
Network Working Group W. Weinman
Internet-Draft bw.org
Expires: October 23, 2004 April 24, 2004
AMTP - Authenticated Mail Transfer Protocol
draft-weinman-amtp-03.txt
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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."
The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 23, 2004.
Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract
This document is the specification of a protocol for Internet
electronic mail transfer. It replaces Simple Mail Transfer Protocol
(SMTP) with a more secure derivative called Authenticated Mail
Transfer Protocol (AMTP).
Weinman Expires October 23, 2004 [Page 1]
Internet-Draft AMTP April 2004
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Requirements notation . . . . . . . . . . . . . . . . . . . 3
1.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. The AMTP Model . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 Authentication . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Codification . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Operational Specification . . . . . . . . . . . . . . . . . 7
4.1 Connection Requirements . . . . . . . . . . . . . . . . . . 7
4.2 X.509 Certificate Requirements . . . . . . . . . . . . . . . 7
4.3 DNS Requirements . . . . . . . . . . . . . . . . . . . . . . 7
4.3.1 SRV RRs . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3.2 IN-ADDR.ARPA zone (Reverse DNS) . . . . . . . . . . . . . . 8
4.4 Command Syntax . . . . . . . . . . . . . . . . . . . . . . . 8
4.4.1 Hello Command (HELO) . . . . . . . . . . . . . . . . . . . . 8
4.4.2 Extended Hello Command (EHLO) . . . . . . . . . . . . . . . 8
4.4.3 Mail Policy Code (MPC) Parameter . . . . . . . . . . . . . . 10
4.4.4 MPC Value Propagation . . . . . . . . . . . . . . . . . . . 11
4.5 MPC Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 12
5. MTA Requirements . . . . . . . . . . . . . . . . . . . . . . 16
5.1 Unauthorized Relay Prevention . . . . . . . . . . . . . . . 16
5.2 Rewriting MPC Values . . . . . . . . . . . . . . . . . . . . 16
6. MUA Requirements . . . . . . . . . . . . . . . . . . . . . . 17
6.1 MPC settings . . . . . . . . . . . . . . . . . . . . . . . . 17
6.2 Email Service Providers . . . . . . . . . . . . . . . . . . 17
6.3 List Delivery Agents . . . . . . . . . . . . . . . . . . . . 18
6.4 Autoresponders . . . . . . . . . . . . . . . . . . . . . . . 18
7. Private Network Considerations . . . . . . . . . . . . . . . 19
8. Security Considerations . . . . . . . . . . . . . . . . . . 20
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 21
Normative References . . . . . . . . . . . . . . . . . . . . 22
Informative References . . . . . . . . . . . . . . . . . . . 23
Author's Address . . . . . . . . . . . . . . . . . . . . . . 23
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24
B. Revision History . . . . . . . . . . . . . . . . . . . . . . 25
B.1 draft-weinman-amtp-03 . . . . . . . . . . . . . . . . . . . 25
B.2 draft-weinman-amtp-02 . . . . . . . . . . . . . . . . . . . 25
B.3 draft-weinman-amtp-01 . . . . . . . . . . . . . . . . . . . 26
B.4 draft-weinman-amtp-00 . . . . . . . . . . . . . . . . . . . 27
Intellectual Property and Copyright Statements . . . . . . . 28
Weinman Expires October 23, 2004 [Page 2]
Internet-Draft AMTP April 2004
1. Introduction
Internet electronic mail is becoming expensive to receive, process,
deliver, and use due to widespread subversion of security precautions
for the purpose of delivering Unsolicited Bulk Email (UBE). This
problem can be mitigated by shifting the transfer of email to a
protocol that authenticates mail transfer agents (MTAs) and enables
codification and enforcement of a set of concise mail policies.
Authenticated Mail Transfer Protocol (AMTP) is derivative of SMTP
[RFC2821] and is intended to replace SMTP for Internet electronic
mail transfer. AMTP uses TLS [RFC2246] with X.509 certificates
[RFC3280] to authenticate MTAs, and introduces a Mail Policy Code
that allows MTAs to advertise and/or enforce policies. A server can
decide whether to accept a particular message based on any
combination of fixed, recipient-based, or sender-based policies.
Authentication provides the receiving MTA the ability to enforce its
policies, and/or deny access to sending MTAs based on any number of
criteria.
1.1 Requirements notation
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 [RFC2119].
1.2 Terminology
This document uses specific terminology to refer to the various
components, methods, techniques and other technologies involved in
the transport and delivery of electronic mail. The definitions here
describe the usage of these terms in this document.
System operator
The person or corporate entity responsible for the operation of a
system that exchanges mail using AMTP.
MTA
Mail Transfer Agent. A program that exchanges mail with another
program. An MTA may be a client (sender) or a server (receiver).
MUA
Mail User Agent. A subclass of Mail Transfer Agent (MTA) that
usually includes a user interface. An MUA may be a desktop
application or another program that acts as an endpoint
(originator or destination) for mail messages.
Weinman Expires October 23, 2004 [Page 3]
Internet-Draft AMTP April 2004
Client MTA
The transaction partner that initiates the connection is called
the client MTA, or simply the client. The client MTA sends mail to
the server. Traffic from the client is represented by "C:" in
transaction listings.
Server MTA
The transaction partner that listens for incoming connections is
called the server MTA. The server MTA receives mail from the
client. Traffic from the server is represented by "S:" in
transaction listings.
Transaction
The conversation between client and server, from the time the
client connects to the server, to the end of the connection.
Transaction partner
Either one of the two parties involved in a transaction. A
transaction partner may act as a server or a client.
Private network connection
A connection authenticated with a client certificate signed by a
private CA is considered a private network connection (see Section
7).
Public network connection
Any connection that does not qualify as a private network
connection.
Private CA
A certificate authority (CA) that is exclusively recognized by a
set of trusted MTAs in a private network. A CA that is trusted
outside of the private network MUST NOT be trusted as a private
CA.
Public CA
Usually a trusted third party, a public certificate authority CA
is any CA that does not qualify as a private CA.
Relay
As a verb, the retransmission of a message to another MTA for
delivery. As a noun, an MTA that performs a relaying function.
Weinman Expires October 23, 2004 [Page 4]
Internet-Draft AMTP April 2004
2. Rationale
In recent years Internet mail has been plagued by a proliferation of
Unsolicited Bulk Email (UBE). A number of remedies have been applied
to the problem, including DNS Block Lists, server- and client-side
filters, and legislative and other legal solutions. UBE continues to
proliferate for a number of reasons, two of which stand out as
particularly causal:
Authentication
SMTP servers allow connections from anonymous sources.
There are many good arguments for preserving the possibility of
anonymous email, but somewhere along the trail followed by each
message someone must be held responsible for abuse of the system.
Without such accountability chaos will continue to prevail.
Authentication of Mail Transfer Agents (MTAs) designates a point
of responsibility short of authenticating users. This preserves
the possibility of anonymity while allowing system operators to
establish and enforce policies.
Codification
There is no universally recognized code of behavior. If you ask
two people for a definition of mail abuse, you'll get at least
three different answers. Before a set of policies can be enforced,
common terminology must be defined that can be understood by all
the parties involved.
Clear and concise codification of policies will allow message
senders and system operators to advertise and enforce their
policies using mutually understood terminology.
There has been a great deal of discussion about the advisability of
replacing SMTP. Good arguments have been presented both for and
against. Eventually this author came to the conclusion that the
benefits of a replacement can be realized while mitigating the costs.
By remaining as similar to SMTP as possible, AMTP protects
investments in existing code. By operating on a different TCP port
AMTP can run in parallel with SMTP, providing for a smooth
transition, and eventually a clean break, from SMTP.
Weinman Expires October 23, 2004 [Page 5]
Internet-Draft AMTP April 2004
3. The AMTP Model
Authenticated Mail Transfer Protocol (AMTP) is based upon Simple Mail
Transfer Protocol (SMTP, [RFC2821]) and addresses the twin problems
of authentication and codification. AMTP uses Transport Layer
Security (TLS, [RFC2246]) to create an environment of trust between
Mail Transfer Agents (MTAs) involved in a transaction. MTAs then
exchange Mail Policy Codes (MPCs) to establish permission for mail
delivery.
AMTP inherits the specification of SMTP and builds upon it. This
document specifies only the changes to SMTP and therefore implicitly
incorporates the most recent SMTP specification [RFC2821] except
where indicated.
3.1 Authentication
AMTP uses authentication to create a trust relationship between MTAs.
This trust relationship requires an identifiable party on each end of
the transaction who can be contacted in the event of a policy
violation. It is important to note that the sender does not need to
be identifiable as long as there is an intermediary (e.g., a service
provider) who is willing and able to assume responsibility for policy
compliance.
AMTP uses TLS to authenticate the connection between the client and
server MTAs. Both client and server MUST present valid X.509
certificates [RFC3280], each signed by a trusted Certificate
Authority (CA), in order to begin a transaction. This requirement
provides the server's system operator with confidence that the
client's system operator can be identified and contacted in the event
of a policy violation. It also provides the server a reliable method
of identifying clients so that the server may refuse connections from
those it deems non-compliant.
3.2 Codification
A Mail Policy Code (MPC) is used to codify mailing policies. A client
MTA provides an MPC value for a particular message as part of its
envelope. Conversely, a server allows or disallows messages based on
the provided MPC value. A server MTA may advertise MPC values that it
accepts and/or denies. The MPC specification (Section 4.5) strives to
be policy-neutral while allowing system operators to establish
policies that work for their systems and their users.
The goal of MPC is to allow a server MTA to establish its own
policies, and obey the policies of the other MTAs that it may
exchange messages with.
Weinman Expires October 23, 2004 [Page 6]
Internet-Draft AMTP April 2004
4. Operational Specification
This section provides the specification of the AMTP protocol and its
requirements.
4.1 Connection Requirements
A client MTA makes a connection to a server MTA on system port number
xxx using TCP. An alternative user port number outside of the 0-1024
system port range MAY be used for a private network connection
(Section 7). A server MTA MUST NOT accept public network connections
on any alternative port number.
4.2 X.509 Certificate Requirements
The AMTP protocol REQUIRES that each connection be established using
TLS [RFC2246] and that both client and server MTAs MUST present valid
X.509 Certificates [RFC3280] to each other. A valid certificate meets
the following minimum conditions:
o The certificate has been be signed by a CA recognized by the
transaction partner.
o The Subject of the certificate presented by the client MTA MUST
have a fully-qualified domain name in the Common Name (CN) field,
and that fully-qualified domain name MUST match the PTR record
found by a DNS query of the associated IPv4 address in the
IN-ADDR.ARPA zone. Equivalent tests SHALL apply to connections
using IPv6 or other non-IPv4 protocols.
o Each certificate MUST have been issued on a date prior to the date
of the connection, and expire on a date later than the date of the
connection.
Different criteria apply for use with private network connections.
See Section 7 for private network considerations and Section 8 for
security considerations.
4.3 DNS Requirements
The requirements in this section apply to public network connections.
Sessions established using private network connections are not
subject to these DNS requirements (Section 7, Private network
considerations).
4.3.1 SRV RRs
When a client MTA delivers mail to a server MTA, it MUST perform a
Weinman Expires October 23, 2004 [Page 7]
Internet-Draft AMTP April 2004
DNS query for an SRV RR using the host part of the envelope recipient
address. The server MTA SHALL be determined according to the
procedures specified in DNS SRV RR [RFC2782]. This requirement
replaces the use of A or MX records in SMTP.
In order to receive mail addressed to a given host name, the host DNS
zone MUST include one or more SRV records [RFC2782] that meet the
following requirements:
o The Service field is "amtp".
o The Proto field is "tcp".
o The Name field matches the DNS name used in the host part of the
message envelope.
o A server MTA that receives mail for a given host name MUST be
specified in a Target field of an SRV record associated with that
host name.
4.3.2 IN-ADDR.ARPA zone (Reverse DNS)
Any client MTA that connects to a server MTA MUST have a DNS PTR RR
in the IN-ADDR.ARPA zone corresponding to the IP address used to
initiate the connection. The PTR RR MUST match the Subject field of
the client MTA's X.509 certificate, and MUST also match the host name
in the EHLO argument that the client MTA presents to the server MTA.
4.4 Command Syntax
AMTP inherits the syntax of SMTP, with a few important exceptions and
changes. The areas in which AMTP syntax differs from SMTP are
described here. This document implicitly incorporates RFC-2821 except
where indicated.
4.4.1 Hello Command (HELO)
AMTP does not support the legacy HELO command. A compliant server
MUST return a failure code 504 for a HELO command. AMTP requires the
extended EHLO syntax to support the MPC semantics.
4.4.2 Extended Hello Command (EHLO)
A client MUST start an AMTP session by issuing the EHLO command. The
argument field contains the fully qualified domain name of the
client. A server MUST issue a response code 504 if the EHLO argument
does not agree with the client's provided certificate. An MUA
Weinman Expires October 23, 2004 [Page 8]
Internet-Draft AMTP April 2004
operating with a certificate from a private CA MUST ensure that the
EHLO argument matches the CA subject.
The syntax of the EHLO command is:
ehlo = "EHLO" SP Domain CRLF
A server responds to EHLO as described in SMTP [RFC2821]. A server
MAY include an MPC (Mail Policy Code, see Section 4.5) declaration
line as part of its EHLO reply. The syntax of an MPC declaration line
is:
mpc-ehlo-line = "MPC" 1*(SP mpc-declaration)
mpc-declaration = mpc-keyword "=" mpc-value
mpc-keyword = "ALLOW" / "DENY"
mpc-value = (mpc-role / "*") "/" (mpc-class / "*")
mpc-role = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
mpc-class = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
An asterisk ("*") may be used as a wildcard in place of mpc-role or
mpc-class to match all legitimate values. Specific values for
mpc-role and mpc-class are specified in Section 4.5.
MPC declarations SHALL be evaluated in the order presented. If the
first mpc-keyword is ALLOW, a preceding declaration of "DENY */*" is
implied; conversely, if the first mpc-keyword is DENY, a preceding
permission line of "ALLOW */*" is implied. If there is no MPC
declaration in the EHLO reply, "ALLOW */*" is implied and the client
may proceed.
If the MPC value of message to be delivered matches any DENY
declaration in the EHLO reply, the client MUST issue a QUIT command
and refrain from retrying the message, and the client SHOULD deliver
a corresponding bounce message to the sender.
4.4.2.1 Examples
Examples of possible AMTP EHLO responses are presented here.
C: EHLO dastardly.example.org
S: 504 Authentication failed
The above connection did not authenticate. The client may have issued
Weinman Expires October 23, 2004 [Page 9]
Internet-Draft AMTP April 2004
an EHLO argument that did not agree with the certificate it
presented, or the certificate was invalid, or some other
authentication-related failure occurred.
C: EHLO amtp.example.org
S: 250-Greetings and felicitations
S: 250-MPC DENY com/* ALLOW com/individual ALLOW com/confirmed
S: 250-PIPELINING
S: 250 8BITMIME
The above server allows only confirmed or individual mail from
commercial senders; all mail from non-commercial senders is allowed.
C: EHLO amtp.example.org
S: 250-Greetings and felicitations
S: 250-MPC DENY */optout
S: 250-PIPELINING
S: 250 8BITMIME
The above server does not accept any optout mail.
C: EHLO amtp.example.org
S: 250-Greetings and felicitations
S: 250-MPC-ALLOW */individual
S: 250-PIPELINING
S: 250 8BITMIME
The above server allows only individually addressed mail. No other
mail is allowed at all.
4.4.3 Mail Policy Code (MPC) Parameter
The MPC parameter is provided with the MAIL command to bind a Mail
Policy Code (MPC) with the message being transferred as part its
envelope. The client MUST issue the MPC parameter with the MAIL
command. The client MUST provide exactly one MPC parameter per
transaction.
The MPC parameter is provided as a "Mail-parameter" according to
sections 4.1.1.2 an 4.1.2 of [RFC2821]. The syntax of the MPC
parameter is:
"MPC=" mpc-value
The mpc-value is defined in Section 4.5.
The server MAY reject mail based on the MPC parameter even when it
does not publish a corresponding MPC declaration in the EHLO response
Weinman Expires October 23, 2004 [Page 10]
Internet-Draft AMTP April 2004
(Section 4.4.2). The MPC parameter may be used to implement policies
based on specific recipients, senders, or combinations of the two.
The server MAY reject mail based on the MPC parameter after the MAIL
command or after a particular RCPT command.
The following result codes SHALL be used to accept or reject mail
based on the MPC parameter:
250 Okay
451 MPC temporary failure, try again later
550 MPC policy violation
Examples of MAIL and RCPT commands:
C: MAIL FROM:<CATS-L@list.example.com> MPC=individual/confirmed
S: 250 Okay
C: RCPT TO:<bertha@example.com>
S: 250 Okay
The above represents a discussion list message sent to one address at
the server. It was accepted.
C: MAIL FROM:<vote-for-bob@list.example.gov> MPC=pol/optout
S: 550 MPC policy violation
C: QUIT
S: 221 amtp.example.com -- Goodbye.
The above server does not accept this MPC from this client.
C: MAIL FROM:<hotdeals@list.example.biz> MPC=com/optin
S: 250 Okay
C: RCPT TO:<john@beatles.example.com>
S: 550 MPC policy violation
C: RCPT TO:<paul@beatles.example.com>
S: 550 MPC policy violation
C: RCPT TO:<george@beatles.example.com>
S: 550 MPC policy violation
C: RCPT TO:<ringo@beatles.example.com>
S: 250 Okay
C: DATA
S: 354 Start mail input.
The above server has different users with different mail policies.
4.4.4 MPC Value Propagation
When a server delivers a message to a user mail spool, or other
destination, it must preserve the MPC value with the envelope of the
Weinman Expires October 23, 2004 [Page 11]
Internet-Draft AMTP April 2004
message.
When a server delivers a message to a user's mail spool, it MUST
insert an MPC header line in the message headers [RFC2822]. Likewise,
When a server relays a message to another server using another
protocol, it MUST insert an MPC header line in the message headers.
When inserting the MPC header line, the server MUST first search the
message header for a pre-existing MPC header line. If a pre-existing
MPC header line is found in the message header, the server MUST NOT
relay or deliver the message. A server MUST NOT rewrite an MPC value.
The syntax of the mpc-header line is:
"MPC:" SP mpc-value CRLF
The mpc-value is defined in Section 4.5. The "MPC:" token SHALL be
considered case-insensitive.
When a server relays a message to another AMTP server, it MUST NOT
insert an MPC header line in the message headers. Instead, the
sending MTA (now acting as a client) MUST propagate the MPC value by
using the mpc-parameter as specified in Section 4.4.3.
4.5 MPC Syntax
A Mail Policy Code (MPC) is used for the purpose of establishing and
enforcing server policy. It is used in two contexts: as a preemptory
declaration of policy by a server MTA (Section 4.4.2); and as a
policy classification of an individual message (Section 4.4.3).
The purpose of MPC is to normalize and codify mail policy, not to
proscribe any particular class of mail. In particular, the
association of messages with MPC parameters does not "outlaw" any
mail, it simply requires that each mail message identify itself in
certain terms.
Each MPC value consists of two parts separated by a slash (ASCII
0x2F):
mpc-value = mpc-role "/" mpc-class
mpc-role = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
mpc-class = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
A server MTA MUST NOT accept or deliver any message with an MPC value
with any component not explicitly defined in this section.
Weinman Expires October 23, 2004 [Page 12]
Internet-Draft AMTP April 2004
The mpc-role part describes the role of the sender of the mail
message. The complete list of mpc-role values are defined here:
per
The email message was sent by an individual person in a
non-commercial context. The "per" mpc-role value MUST NOT be used
to solicit or prospect for new business or donations.
com
The email message was sent on behalf of a commercial entity,
individual or corporate, or a person representing a commercial
entity.
ngo
The email message was sent on behalf of a non-governmental, or
non-profit, organization, or a person representing a
non-governmental, or non-profit, organization.
net
The email message was sent on behalf of network-administration
staff and directly related to network operations. The "net"
mpc-role value MUST NOT be used to solicit or prospect for new
business or donations.
gov
The email message was sent on behalf of a government, or a person
representing a government.
pol
The email message was sent on behalf a politician in public office
or a candidate in the process of campaigning for public office.
mpc
Reserved for messages from one system administrator to another
system administrator about MPC policy violations. Valid only with
the "individual" mpc-class. All systems MUST accept and deliver
all messages marked as "mpc/individual". The "mpc" mpc-role value,
when combined with any mpc-class other than "individual", MUST be
treated as invalid.
The mpc-class part describes the manner in which the recipient email
address (or addresses) was acquired by the sender:
individual
A special token used for individually addressed non-bulk mail. The
individual type MUST NOT be used to solicit or prospect for new
business or contributions.
Weinman Expires October 23, 2004 [Page 13]
Internet-Draft AMTP April 2004
It is understood that the mpc-role part may not always be clear
when mpc-class is "individual". In the case where a message may be
part "per/individual" and part "com/individual", "ngo/individual",
or another mpc-role with the mpc-class of "individual", the
mpc-role MUST NOT be "per". The "per" mpc-class MUST NOT be used
to solicit or prospect for new business or donations.
autoresponse
Automated response to the sender of a per/individual message, or
any message triggered by a user action. The "autoresponse"
mpc-class MUST be used for all automated messages triggered by
user action, including messages confirming transactions or other
user actions and messages requesting confirmation from a user (see
Section 6.4).
customer
Bulk mail to addressees who are customers of this sender and have
agreed to receive this mailing from this sender.
optout
Bulk mail to addressees who have not asked for this mailing from
this sender.
optin
Bulk mail to addressees who have asked for this mailing from this
sender.
The "optin" mpc-class MUST NOT be used when there is a possibility
that a mailing may be sent to one or more addressees that did not
request the mailing.
confirmed
Bulk mail to addressees who have confirmed by return mail that
they have asked for this mailing from this sender.
The "confirmed" mpc-class MUST NOT be used when there is a
possibility that a mailing may be sent to one or more addressees
that did not confirm their request for the mailing by
return-email.
The following examples are offered to illustrate the use of these MPC
values:
per/individual An individual person on behalf of herself.
net/individual A non-bulk message from a network provider.
pol/confirmed A bulk message from a politician, addressed
Weinman Expires October 23, 2004 [Page 14]
Internet-Draft AMTP April 2004
using a list of confirmed subscribers.
com/optout A bulk message from a commercial business,
addressed to a list from a third party, or any
source other than direct subscription by the
addressees.
mpc/individual A message from one system administrator to
another system administrator about an MPC
policy violation. All systems MUST accept and
deliver all messages with this MPC value.
Weinman Expires October 23, 2004 [Page 15]
Internet-Draft AMTP April 2004
5. MTA Requirements
When exchanging mail over a public network connection, every MTA MUST
conform to a common set of operating practices for the purpose of
preserving the security of the public email infrastructure.
5.1 Unauthorized Relay Prevention
Each message transmitted using AMTP over a public network connection
MUST NOT be relayed over another public network connection. Relay
deliveries to end users or intermediate mail servers MUST use private
network connections.
5.2 Rewriting MPC Values
An MTA MUST NOT rewrite MPC values. When an MTA determines that an
MPC value is incorrect, invalid, or otherwise unacceptable, it MUST
NOT relay or deliver the message.
Weinman Expires October 23, 2004 [Page 16]
Internet-Draft AMTP April 2004
6. MUA Requirements
A Mail User Agent (MUA) is a process or service that originates
messages that are then transmitted to an MTA for delivery to one or
more destination addresses.
This section describes considerations and requirements that an MUA
must satisfy to be compliant with the AMTP protocol.
6.1 MPC settings
An MUA MUST make provision for assignment of an MPC value that will
be used when transmitting messages to a server MTA. The MUA SHOULD
bind a single MPC value to each email address configured for use as
an envelope sender or "From:" header value.
An MUA should provide a configuration option, along with the
configuration of sender email addresses, that allows the user (or
email administrator) to select from a list of applicable MPC values
during the configuration process. Once set, this value should rarely
require updating. In the case of an MUA that allows for multiple
sender "roles" (or "personalities"), the MUA configuration process
should allow each role to select an MPC value to be associated with
that role.
The configuration process MUST NOT allow MPC values that are not
explicitly enumerated in this specification.
The configured MPC setting MUST be provided as the mpc-argument to
the MAIL FROM: command during transmission of each associated
message. A conforming MUA MUST NOT use MPC values that are not
explicitly enumerated in this specification when transferring mail to
an MTA.
6.2 Email Service Providers
Email Service Providers (ESPs) provide third-party email services to
individuals and companies. Such services may include email user
services (e.g., "web mail" services), List Delivery Agents (LDAs,
Section 6.3), Autoresponders (Section 6.4), or other email-related
services.
ESP services that allow a user to compose and send mail to arbitrary
recipients act as an MUA and therefore MUST adhere to the
requirements in Section 6.1.
ESP services that provide the functionality of an LDA (Section 6.3)
or an Autoresponder (Section 6.4) MUST also follow the requirements
Weinman Expires October 23, 2004 [Page 17]
Internet-Draft AMTP April 2004
in this specification for those services.
6.3 List Delivery Agents
A List Delivery Agent (LDA) is a service that sends messages to a
list of more than one recipient, not including any addresses used for
the purpose of administering the LDA. An LDA may receive messages
from an MUA, or may generate its own messages or receive them from
another process or service.
An LDA that receives messages from a public network MUST NOT accept
messages with any mpc-class value other than "individual".
When sending messages to more than one recipient, not including any
addresses used for the purpose of administering the LDA, an LDA MUST
use one of the following mpc-class values:
optout
optin
confirmed
customer
6.4 Autoresponders
An autoresponder is a service that responds to an email message, or
other user action, by sending a message back to the sender or user
who initiated it. Such services are often used to announce that a
recipient is unavailable (out of the office, on vacation, etc.), or
to provide informational messages (technical documents, mailing list
past issues, advertisements, etc.). An autoresponder MUST NOT respond
to messages with any mpc-class value other than "individual". An
autoresponder MUST NOT respond with more than one message and MUST
NOT respond to more than one recipient address, not including any
addresses used for the purpose of administering the service.
Any message triggered by a user action, including but not limited to
out-of-office messages, vacation messages, purchase confirmations,
subscription confirmations, etc.,MUST use the mpc-class value,
"autoresponder".
Messages sent by an MTA notifying a sender of trouble related to the
delivery of a message (bounce messages) MUST always use the MPC
value, "net/autoresponse".
Weinman Expires October 23, 2004 [Page 18]
Internet-Draft AMTP April 2004
7. Private Network Considerations
This specification requires strong authentication of a client MTA
before it can deliver mail to a server MTA. For circumstances where a
network operator may need to accept mail from client MTAs that do not
meet the criteria for a public network connection (Section 4.1), a
private network connection may be used.
A private network connection is established by a client establishing
a connection with an X.509 certificate signed by a private CA. A
private CA is recognized by the transaction partners participating in
the private network, and MUST NOT be recognized by any MTA outside of
the private network. The server in a private network connection MAY
use either a public or private CA.
For example, an ISP that provides consumer Internet access over
dynamically allocated IP addresses may establish a private network
for customer access to its mail servers; or a corporate IT department
may issue certificates to its sales force, so that they may use the
company's mail servers while traveling.
In order to accommodate more flexible network topologies in
controlled environments, the following considerations apply to
private network connections:
o A private network connection SHOULD employ user authentication in
addition to the X.509 certificate used for client authentication.
See Section 8 for important security considerations.
o A server SHOULD require that an X.509 certificate subject match
another authentication token, for example, a user name provided
with RFC-2554 authentication, to help prevent abuse of its
certificates.
o A private network connection MAY use a port number other than xxx.
(Section 4.1)
o A server on a private network connection MAY accept a certificate
subject and/or an EHLO argument without a matching DNS PTR RR.
(Section 4.3.2, Section 4.2, Section 4.4.2)
o A client MUST NOT use DNS SRV RRs to determine the address of a
server for a private network connection.
Weinman Expires October 23, 2004 [Page 19]
Internet-Draft AMTP April 2004
8. Security Considerations
This specification addresses authentication issues not addressed by
SMTP [RFC2821]. In particular, AMTP employs TLS [RFC2246] with X.509
certificates [RFC3280] to authenticate MTAs involved in a mail
transfer transaction.
This specification addresses the issue of Unsolicited Bulk Email
(UBE) by providing coded tokens to identify mail handling policies.
It is possible for a sender to use a trusted MTA to transmit false
tokens and thereby subvert an MTA's policies.
This specification does not claim to eliminate UBE entirely. AMTP
requires strong host authentication that can be used by a server to
block further connections from a client that is no longer trusted,
but AMTP does not claim to provide a mechanism to prevent the initial
abuse. Some amount of diligence on the part of system administrators
will always be necessary to prevent abuse. The authentication and
codification provisions aim to make such diligence more effective.
This specification allows for a system operator to designate certain
connections as private network connections using certificates signed
by a private CA (privately signed certificates). It is possible for a
user on such a private network to abuse the trust of the system by
sending bulk mail encoded as personally-addressed mail. It is also
possible that a user with a privately signed certificate may loose
control over that certificate or otherwise make it available to a
third party.
If a server accepts a private network connection, the server SHOULD
require additional client authentication, such as that provided by
the SMTP Authentication Extension [RFC2554], to mitigate any damage
from lost or stolen X.509 certificates.
It is possible for a malicious party to provide false information to
a Certificate Authority or otherwise contrive to acquire or present a
fraudulent certificate.
This specification does not address the issue of authenticating
senders. It is possible for a sender to transmit false headers
through a trusted MTA and thereby assume a false identity.
Because this specification relies on SMTP, TLS, and X.509, any
security issues with those protocols may also apply to AMTP.
Weinman Expires October 23, 2004 [Page 20]
Internet-Draft AMTP April 2004
9. IANA Considerations
This protocol requires a system port number, to be determined by the
Internet Assigned Numbers Authority (IANA).
This specification calls for registration of the email message
header, "MPC:".
This specification calls for a new IANA registry for the registration
of MPC values.
Weinman Expires October 23, 2004 [Page 21]
Internet-Draft AMTP April 2004
Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2246] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A.
and P. Kocher, "The TLS Protocol Version 1.0", RFC 2246,
January 1999.
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998.
[RFC2782] Gulbrandsen, A., Vixie, P. and L. Esibov, "A DNS RR for
specifying the location of services (DNS SRV)", RFC 2782,
February 2000.
[RFC2821] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821,
April 2001.
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822, April
2001.
[RFC3280] Housley, R., Polk, W., Ford, W. and D. Solo, "Internet
X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile", RFC 3280,
April 2002.
Weinman Expires October 23, 2004 [Page 22]
Internet-Draft AMTP April 2004
Informative References
[CCITT.X509.1988]
International Telephone and Telegraph Consultative
Committee, "Information Technology - Open Systems
Interconnection - The Directory: Authentication
Framework", CCITT Recommendation X.509, November 1988.
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, November 1987.
[RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS
Specification", RFC 2181, July 1997.
[RFC2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997.
[RFC2554] Myers, J., "SMTP Service Extension for Authentication",
RFC 2554, March 1999.
[RFC2693] Ellison, C., Frantz, B., Lampson, B., Rivest, R., Thomas,
B. and T. Ylonen, "SPKI Certificate Theory", RFC 2693,
September 1999.
[RFC3232] Reynolds, J., "Assigned Numbers: RFC 1700 is Replaced by
an On-line Database", RFC 3232, January 2002.
Author's Address
William E. Weinman
bw.org
908 Audelia Road
Ste. 200, PMB 335
Richardson, TX 75081
US
EMail: amtp-wew@bearnet.com
URI: http://amtp.bw.org/
Weinman Expires October 23, 2004 [Page 23]
Internet-Draft AMTP April 2004
Appendix A. Acknowledgements
The author gratefully acknowledges the contributions of the following
people: Sven Anders, Matthew Parke Bostrom, Martin R. Calsyn, Peter
Conrad, Dave Crocker, Ray Everett-Church, Daniel Foesch, Edward Ned
Harvey, Ken Hirsch, Jos Hulzink, Phil Miller, Chris Paul, William
Rose, Stephen Samuel, Yakov Shafranovich, Brian Stafford, Markus
Stumpf, Thomas Tuttle, and any others who have written to me about
AMTP. Thank you for your indispensable assistance.
If you have made a contribution to this document and your name is not
listed, please contact the author <http://bw.org/contact/> so that
the omission may be corrected before this draft is submitted for RFC
consideration.
Weinman Expires October 23, 2004 [Page 24]
Internet-Draft AMTP April 2004
Appendix B. Revision History
This section provides a running log of the changes made to this draft
and will be removed when the document is finalized.
B.1 draft-weinman-amtp-03
Released (date).
o Changed "Authentication" and "X.509 Certificate Requirements", and
made other grammatical changes, to require servers to have
certificates. This was necessary because most (or all?)
implementations of TLS require servers to authenticate.
o Added language prohibiting a server from accepting or delivering
mail with undefined MPC parts.
o Grammatical changes in Introduction
B.2 draft-weinman-amtp-02
Released 2003-10-23.
o Rewrote a lot of the "Private Network Considerations" section,
mostly for clarity.
o Clarified "Connection Requirements" section.
o Expanded "Autoresponders" section.
o Updated and clarified some of the language in the MPC definitions.
o Updated and clarified the X.509 section to clarify the use of
certificates in private networks.
o Updated and clarified the "DNS Requirements" section.
o Updated and added some prose to "Rationale" section.
o Updated Introduction.
o Updated Terminology to clarify private vs. public distinctions.
o Renumbered and Reorganized some sections.
o Renamed "Overall Operation" to "Operational Specification"
Weinman Expires October 23, 2004 [Page 25]
Internet-Draft AMTP April 2004
o Globally changed "roll" to "role".
o Added language clarifying client behavior in response to MPC
declarations in the EHLO reply.
o Even more grammatical and typographical upgrades!
B.3 draft-weinman-amtp-01
Released 2003-09-28.
o Added section: "Private Network Considerations"
o Updated MPC syntax. A few clarifications, and changed "entity" to
"roll".
o Added section: "MPC Value Propagation"
o Updated EHLO response to be more streamlined for non-PIPELINING
clients.
o Changed MPC command to a parameter of the MAIL command, to be more
streamlined for non-PIPELINING clients.
o Added better examples of mail transactions.
o Servers are no longer required to present an X.509 certificate to
the client. Only the client must have a certificate.
o Updated X.509 Certificate Requirements to clarify provisions for
private networks.
o Replaced references to RFC-2459 with RFC-3280.
o Added section: "MUA Requirements"
o Added section: "MTA Requirements"
o Added section: "Connection Requirements"
o Added section: "DNS Requirements"
o Added IANA request for the email message header, "MPC:"
o Per the request of IANA, the system port request was added to the
"IANA Considerations" section.
Weinman Expires October 23, 2004 [Page 26]
Internet-Draft AMTP April 2004
o Myriad grammatical and typographical changes.
B.4 draft-weinman-amtp-00
Released 2003-08-19. Original version.
Weinman Expires October 23, 2004 [Page 27]
Internet-Draft AMTP April 2004
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification can
be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
Full Copyright Statement
Copyright (C) The Internet Society (2004). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
Weinman Expires October 23, 2004 [Page 28]
Internet-Draft AMTP April 2004
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Weinman Expires October 23, 2004 [Page 29]