Difference between revisions of "RFC3885"

From RFC-Wiki
 
Line 8: Line 8:
 
                       for Message Tracking
 
                       for Message Tracking
  
Status of this Memo
+
'''Status of this Memo'''
  
 
This document specifies an Internet standards track protocol for the
 
This document specifies an Internet standards track protocol for the
 
Internet community, and requests discussion and suggestions for
 
Internet community, and requests discussion and suggestions for
 
improvements.  Please refer to the current edition of the "Internet
 
improvements.  Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
+
Official Protocol Standards" ([[STD1|STD 1]]) for the standardization state
 
and status of this protocol.  Distribution of this memo is unlimited.
 
and status of this protocol.  Distribution of this memo is unlimited.
  
Copyright Notice
+
'''Copyright Notice'''
  
 
Copyright (C) The Internet Society (2004).
 
Copyright (C) The Internet Society (2004).
  
Abstract
+
'''Abstract'''
  
 
This memo defines an extension to the SMTP service whereby a client
 
This memo defines an extension to the SMTP service whereby a client
Line 50: Line 50:
 
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
 
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, RFC 2119
+
document are to be interpreted as described in [[BCP14|BCP 14]], [[RFC2119|RFC 2119]]
 
[RFC-KEYWORDS].
 
[RFC-KEYWORDS].
  
Line 70: Line 70:
 
(4)  One optional parameter using the keyword "MTRK" is added to the
 
(4)  One optional parameter using the keyword "MTRK" is added to the
 
       MAIL command.  In addition, the ENVID parameter of the MAIL
 
       MAIL command.  In addition, the ENVID parameter of the MAIL
       command (as defined in RFC 3461) MUST be supported, with
+
       command (as defined in [[RFC3461|RFC 3461]]) MUST be supported, with
 
       extensions as described below.  The ORCPT parameter of the RCPT
 
       extensions as described below.  The ORCPT parameter of the RCPT
       command (as defined in RFC 3461) MUST also be supported.  All
+
       command (as defined in [[RFC3461|RFC 3461]]) MUST also be supported.  All
       semantics associated with ENVID and ORCPT described in RFC 3461
+
       semantics associated with ENVID and ORCPT described in [[RFC3461|RFC 3461]]
 
       MUST be supported as part of this extension.
 
       MUST be supported as part of this extension.
  
Line 80: Line 80:
 
       value.  Note that the 507 character extension of RCPT commands
 
       value.  Note that the 507 character extension of RCPT commands
 
       for the ORCPT parameter and the 107 character extension of MAIL
 
       for the ORCPT parameter and the 107 character extension of MAIL
       commands for the ENVID parameter as mandated by RFC 3461 [RFC-
+
       commands for the ENVID parameter as mandated by [[RFC3461|RFC 3461]] [RFC-
 
       DSN-SMTP] must also be included.
 
       DSN-SMTP] must also be included.
  
Line 156: Line 156:
 
have a unique identifier that is never reused by any other message.
 
have a unique identifier that is never reused by any other message.
 
For that purpose, if the MTRK parameter is given, an ENVID parameter
 
For that purpose, if the MTRK parameter is given, an ENVID parameter
MUST be included, and the syntax of ENVID from RFC 3461 is extended
+
MUST be included, and the syntax of ENVID from [[RFC3461|RFC 3461]] is extended
 
as follows:
 
as follows:
  
Line 260: Line 260:
  
 
[RFC-MTRK-MODEL]  Hansen, T., "Message Tracking Model and
 
[RFC-MTRK-MODEL]  Hansen, T., "Message Tracking Model and
                   Requirements", RFC 3888, September 2004.
+
                   Requirements", [[RFC3888|RFC 3888]], September 2004.
  
 
[RFC-MTRK-MTQP]    Hansen, T., "Message Tracking Query Protocol", RFC
 
[RFC-MTRK-MTQP]    Hansen, T., "Message Tracking Query Protocol", RFC
Line 266: Line 266:
  
 
[RFC-ABNF]        Crocker, D., Ed. and P. Overell, "Augmented BNF
 
[RFC-ABNF]        Crocker, D., Ed. and P. Overell, "Augmented BNF
                   for Syntax Specifications: ABNF", RFC 2234,
+
                   for Syntax Specifications: ABNF", [[RFC2234|RFC 2234]],
 
                   November 1997.
 
                   November 1997.
  
 
[RFC-ESMTP]        Klensin, J., Freed, N., Rose, M., Stefferud, E.,
 
[RFC-ESMTP]        Klensin, J., Freed, N., Rose, M., Stefferud, E.,
                   and D. Crocker, "SMTP Service Extensions", STD 10,
+
                   and D. Crocker, "SMTP Service Extensions", [[STD10|STD 10]],
                   RFC 1869, November 1995.
+
                   [[RFC1869|RFC 1869]], November 1995.
  
 
[RFC-KEYWORDS]    Bradner, S., "Key words for use in RFCs to
 
[RFC-KEYWORDS]    Bradner, S., "Key words for use in RFCs to
                   Indicate Requirement Levels", BCP 14, RFC 2119,
+
                   Indicate Requirement Levels", [[BCP14|BCP 14]], [[RFC2119|RFC 2119]],
 
                   March 1997.
 
                   March 1997.
  
 
[RFC-MIME]        Freed, N. and N. Borenstein, "Multipurpose
 
[RFC-MIME]        Freed, N. and N. Borenstein, "Multipurpose
 
                   Internet Mail Extensions (MIME) Part One: Format
 
                   Internet Mail Extensions (MIME) Part One: Format
                   of Internet Message Bodies", RFC 2045, November
+
                   of Internet Message Bodies", [[RFC2045|RFC 2045]], November
 
                   1996.
 
                   1996.
  
Line 287: Line 287:
  
 
[RFC-SMTP]        Klensin, J., Ed., "Simple Mail Transfer Protocol",
 
[RFC-SMTP]        Klensin, J., Ed., "Simple Mail Transfer Protocol",
                   RFC 2821, April 2001.
+
                   [[RFC2821|RFC 2821]], April 2001.
  
 
[RFC-MSGFMT]      Resnick, P., Ed., "Internet Message Format", RFC
 
[RFC-MSGFMT]      Resnick, P., Ed., "Internet Message Format", RFC
Line 295: Line 295:
  
 
[RFC-DELIVERYBY]  Newman, D., "Deliver By SMTP Service Extension",
 
[RFC-DELIVERYBY]  Newman, D., "Deliver By SMTP Service Extension",
                   RFC 2852, June 2000.
+
                   [[RFC2852|RFC 2852]], June 2000.
  
 
[RFC-DSN-SMTP]    Moore, K., "Simple Mail Transfer Protocol (SMTP)
 
[RFC-DSN-SMTP]    Moore, K., "Simple Mail Transfer Protocol (SMTP)
 
                   Service Extension for Delivery Status
 
                   Service Extension for Delivery Status
                   Notifications (DSNs)", RFC 3461, January 2003.
+
                   Notifications (DSNs)", [[RFC3461|RFC 3461]], January 2003.
  
 
[RFC-MDN]          Hansen, T. and G. Vaudreuil, Eds., "Message
 
[RFC-MDN]          Hansen, T. and G. Vaudreuil, Eds., "Message
                   Disposition Notification", RFC 3798, May 2004.
+
                   Disposition Notification", [[RFC3798|RFC 3798]], May 2004.
  
 
[RFC-RANDOM]      Eastlake, D., Crocker, S., and J. Schiller,
 
[RFC-RANDOM]      Eastlake, D., Crocker, S., and J. Schiller,
Line 331: Line 331:
  
 
Copyright (C) The Internet Society (2004).  This document is subject
 
Copyright (C) The Internet Society (2004).  This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
+
to the rights, licenses and restrictions contained in [[BCP78|BCP 78]], and
 
except as set forth therein, the authors retain all their rights.
 
except as set forth therein, the authors retain all their rights.
  
Line 351: Line 351:
 
made any independent effort to identify any such rights.  Information
 
made any independent effort to identify any such rights.  Information
 
on the procedures with respect to rights in RFC documents can be
 
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
+
found in [[BCP78|BCP 78]] and [[BCP79|BCP 79]].
  
 
Copies of IPR disclosures made to the IETF Secretariat and any
 
Copies of IPR disclosures made to the IETF Secretariat and any
Line 370: Line 370:
 
Funding for the RFC Editor function is currently provided by the
 
Funding for the RFC Editor function is currently provided by the
 
Internet Society.
 
Internet Society.
 +
 +
[[Category:Standards Track]]

Latest revision as of 10:47, 4 October 2020

Network Working Group E. Allman Request for Comments: 3885 Sendmail, Inc. Updates: 3461 T. Hansen Category: Standards Track AT&T Laboratories

                                                      September 2004
                     SMTP Service Extension
                      for Message Tracking

Status of this Memo

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Copyright Notice

Copyright (C) The Internet Society (2004).

Abstract

This memo defines an extension to the SMTP service whereby a client may mark a message for future tracking.

Other Documents and Conformance

The model used for Message Tracking is described in [RFC-MTRK-MODEL].

Doing a Message Tracking query is intended as a "last resort" mechanism. Normally, Delivery Status Notifications (DSNs) [RFC-DSN- SMTP] and Message Disposition Notifications (MDNs) [RFC-MDN] would provide the primary delivery status. Only if the message is not received, or there is no response from either of these mechanisms should a Message Tracking query be issued.

The definition of the base64 token is imported from section 6.8 of [RFC-MIME]. Formally,

  base64 =  %x2b / %x2f / %x30-39 / %x41-5a / %x61-7a

The definition of the DIGIT token is imported from [RFC-MSGFMT]. Formally,

  DIGIT =        %x30-39

Syntax notation in this document conforms to [RFC-ABNF].

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 BCP 14, RFC 2119 [RFC-KEYWORDS].

SMTP Extension Overview

The Message Tracking SMTP service extension uses the SMTP service extension mechanism described in [RFC-ESMTP]. The following service extension is hereby defined:

(1) The name of the SMTP service extension is "Message Tracking".

(2) The EHLO keyword value associated with this extension is

     "MTRK".

(3) No parameters are allowed with this EHLO keyword value. Future

     documents may extend this specification by specifying
     parameters to this keyword value.

(4) One optional parameter using the keyword "MTRK" is added to the

     MAIL command.  In addition, the ENVID parameter of the MAIL
     command (as defined in RFC 3461) MUST be supported, with
     extensions as described below.  The ORCPT parameter of the RCPT
     command (as defined in RFC 3461) MUST also be supported.  All
     semantics associated with ENVID and ORCPT described in RFC 3461
     MUST be supported as part of this extension.

(5) The maximum length of a MAIL command line is increased by 40

     characters by the possible addition of the MTRK keyword and
     value.  Note that the 507 character extension of RCPT commands
     for the ORCPT parameter and the 107 character extension of MAIL
     commands for the ENVID parameter as mandated by RFC 3461 [RFC-
     DSN-SMTP] must also be included.

(6) No SMTP verbs are defined by this extension.

The Extended MAIL Command

The extended MAIL command is issued by an SMTP client when it wishes to inform an SMTP server that message tracking information should be retained for future querying. The extended MAIL command is identical to the MAIL command as defined in [RFC-SMTP], except that MTRK, ORCPT, and ENVID parameters appear after the address.

The MTRK parameter to the ESMTP MAIL command

Any sender wishing to request the retention of data for further tracking of message must first tag that message as trackable by creating two values A and B:

  A = some-large-random-number
  B = SHA1(A)

The large random number A is calculated on a host-dependent basis. See [RFC-RANDOM] for a discussion of choosing good random numbers. This random number MUST be at least 128 bits but MUST NOT be more than 1024 bits.

The 128-bit hash B of A is then computed using the SHA-1 algorithm as described in [NIST-SHA1].

The sender then base64 encodes value B and passes that value as the mtrk-certifier on the MAIL command:

  mtrk-parameter  = "MTRK=" mtrk-certifier [ ":" mtrk-timeout ]
  mtrk-certifier  = base64        ; authenticator
  mtrk-timeout    = 1*9DIGIT      ; seconds until timeout

A is stored in the originator's tracking database to validate future tracking requests as described in [RFC-MTRK-MTQP]. B is stored in tracking databases of compliant receiver MTAs and used to authenticate future tracking requests.

The mtrk-timeout field indicates the number of seconds that the client requests that this tracking information be retained on intermediate servers, as measured from the initial receipt of the message at that server. Servers MAY ignore this value if it violates local policy. In particular, servers MAY silently enforce an upper limit to how long they will retain tracking data; this limit MUST be at least one day.

If no mtrk-timeout field is specified then the server should use a local default. This default SHOULD be 8-10 days and MUST be at least one day. Notwithstanding this clause, the information MUST NOT be

expired while the message remains in the queue for this server: that is, an MTQP server MUST NOT deny knowledge of a message while that same message sits in the MTA queue.

If the message is relayed to another compliant SMTP server, the MTA acting as the client SHOULD pass an mtrk-timeout field equal to the remaining life of that message tracking information. Specifically, the tracking timeout is decremented by the number of seconds the message has lingered at this MTA and then passed to the next MTA. If the decremented tracking timeout is less than or equal to zero, the entire MTRK parameter MUST NOT be passed to the next MTA; essentially, the entire tracking path is considered to be lost at that point.

See [RFC-DELIVERYBY] section 4 for an explanation of why a timeout is used instead of an absolute time.

Use of ENVID

To function properly, Message Tracking requires that each message have a unique identifier that is never reused by any other message. For that purpose, if the MTRK parameter is given, an ENVID parameter MUST be included, and the syntax of ENVID from RFC 3461 is extended as follows:

  envid-parameter = "ENVID=" unique-envid
  unique-envid    = local-envid "@" fqhn
  local-envid     = xtext
  fqhn            = xtext

The unique-envid MUST be chosen in such a way that the same ENVID will never be used by any other message sent from this system or any other system. In most cases, this means setting fqhn to be the fully qualified host name of the system generating this ENVID, and local- envid to an identifier that is never re-used by that host.

In some cases, the total length of (local-envid + fqhn + 1) (for the `@' sign) may exceed the total acceptable length of ENVID (100). In this case, the fqhn SHOULD be replaced by the SHA1(fqhn) encoded into BASE64. After encoding, the 160 bit SHA-1 will be a 27 octet string, which limits local-envid to 72 octets. Implementors are encouraged to use an algorithm for the local-envid that is reasonably unique. For example, sequential integers have a high probability of intersecting with sequential integers generated by a different host, but a SHA-1 of the current time of day concatenated with the host's IP address and a random number are unlikely to intersect with the same algorithm generated by a different host.

Any resubmissions of this message into the message transmission system MUST assign a new ENVID. In this context, "resubmission" includes forwarding or resending a message from a user agent, but does not include MTA-level aliasing or forwarding where the message does not leave and re-enter the message transmission system.

Forwarding Tracking Certifiers

MTAs SHOULD forward unexpired tracking certifiers to compliant mailers as the mail is transferred during regular hop-to-hop transfers. If the "downstream" MTA is not MTRK-compliant, then the MTRK= parameter MUST be deleted. If the downstream MTA is DSN- compliant, then the ENVID and ORCPT parameters MUST NOT be deleted.

If aliasing, forwarding, or other redirection of a recipient occurs, and the result of the redirection is exactly one recipient, then the MTA SHOULD treat this as an ordinary hop-to-hop transfer and forward the MTRK=, ENVID=, and ORCPT= values; these values MUST NOT be modified except for decrementing the mtrk-timeout field of the MTRK= value, which MUST be modified as described in section 4.1 above.

MTAs MUST NOT copy MTRK certifiers when a recipient is aliased, forwarded, or otherwise redirected and the redirection results in more than one recipient. However, an MTA MAY designate one of the multiple recipients as the "primary" recipient to which tracking requests shall be forwarded; other addresses MUST NOT receive tracking certifiers. MTAs MUST NOT forward MTRK certifiers when doing mailing list expansion.

Security Considerations

Denial of service

An attacker could attempt to flood the database of a server by submitting large numbers of small, tracked messages. In this case, a site may elect to lower its maximum retention period retroactively.

Confidentiality

The mtrk-authenticator value ("A") must be hard to predict and not reused.

The originating client must take reasonable precautions to protect the secret. For example, if the secret is stored in a message store (e.g., a "Sent" folder), the client must make sure the secret isn't accessible by attackers, particularly on a shared store.

Many site administrators believe that concealing names and topologies of internal systems and networks is an important security feature. MTAs need to balance such desires with the need to provide adequate tracking information.

In some cases site administrators may want to treat delivery to an alias as final delivery in order to separate roles from individuals. For example, sites implementing "postmaster" or "webmaster" as aliases may not wish to expose the identity of those individuals by permitting tracking through those aliases. In other cases, providing the tracking information for an alias is important, such as when the alias points to the user's preferred public address.

Therefore, implementors are encouraged to provide mechanisms by which site administrators can choose between these alternatives.

IANA Considerations

IANA has registered the SMTP extension defined in section 3.

Acknowledgements

Several individuals have commented on and enhanced this document, including Philip Hazel, Alexey Melnikov, Lyndon Nerenberg, Chris Newman, and Gregory Neil Shapiro.

References

Normative References

[RFC-MTRK-MODEL] Hansen, T., "Message Tracking Model and

                  Requirements", RFC 3888, September 2004.

[RFC-MTRK-MTQP] Hansen, T., "Message Tracking Query Protocol", RFC

                  3887, September 2004.

[RFC-ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF

                  for Syntax Specifications: ABNF", RFC 2234,
                  November 1997.

[RFC-ESMTP] Klensin, J., Freed, N., Rose, M., Stefferud, E.,

                  and D. Crocker, "SMTP Service Extensions", STD 10,
                  RFC 1869, November 1995.

[RFC-KEYWORDS] Bradner, S., "Key words for use in RFCs to

                  Indicate Requirement Levels", BCP 14, RFC 2119,
                  March 1997.

[RFC-MIME] Freed, N. and N. Borenstein, "Multipurpose

                  Internet Mail Extensions (MIME) Part One: Format
                  of Internet Message Bodies", RFC 2045, November
                  1996.

[NIST-SHA1] NIST FIPS PUB 180-1, "Secure Hash Standard"

                  National Institute of Standards and Technology,
                  U.S. Department of Commerce, May 1994.

[RFC-SMTP] Klensin, J., Ed., "Simple Mail Transfer Protocol",

                  RFC 2821, April 2001.

[RFC-MSGFMT] Resnick, P., Ed., "Internet Message Format", RFC

                  2822, April 2001.

Informational References

[RFC-DELIVERYBY] Newman, D., "Deliver By SMTP Service Extension",

                  RFC 2852, June 2000.

[RFC-DSN-SMTP] Moore, K., "Simple Mail Transfer Protocol (SMTP)

                  Service Extension for Delivery Status
                  Notifications (DSNs)", RFC 3461, January 2003.

[RFC-MDN] Hansen, T. and G. Vaudreuil, Eds., "Message

                  Disposition Notification", RFC 3798, May 2004.

[RFC-RANDOM] Eastlake, D., Crocker, S., and J. Schiller,

                  "Randomness Recommendations for Security", RFC
                  1750, December 1994.

Authors' Addresses

Eric Allman Sendmail, Inc. 6425 Christie Ave, 4th Floor Emeryville, CA 94608 U.S.A.

Phone: +1 510 594 5501 Fax: +1 510 594 5429 EMail: [email protected]

Tony Hansen AT&T Laboratories Middletown, NJ 07748 U.S.A.

Phone: +1 732 420 8934 EMail: [email protected]

Full Copyright Statement

Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights 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; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- [email protected].

Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society.