Network Working Group K. Toyoda, MGCS Internet Draft D. Crocker, Brandenburg draft-ietf-fax-esmtp-conneg-03.txt August 2002 Expires: January 2003 SMTP Service Extension for Content Negotiation 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. COPYRIGHT NOTICE Copyright (C) The Internet Society (2001). All Rights Reserved. ABSTRACT This document defines a content negotiation service extension for SMTP [ESMTP1, ESMTP2] whereby an SMTP client may request information about content capabilities of the target device or system that is serviced by an SMTP server. The SMTP server may report the target's content capabilities back to the client. This process emulates a classic facsimile start-of- session capabilities negotiation, although it can be used for a broad range of email-based scenarios. This service extension is primarily intended for "direct", one-hop, originator/recipient SMTP transfers, although relayed scenarios through multiple SMTP servers are permitted. 1. INTRODUCTION When a data source and a receiver have interactive access to each other, the receiver often informs the source of its capabilities, to permit optimized performance or functionality for the interaction. Classic telephone-based facsimile is an example, as are voice over IP and ESMTP, among Internet applications. The store-and-forward nature of Internet mail is usually assumed to preclude such capabilities exchanges, although the sender in a store-and-forward scenario could benefit from knowing precise details about the receiver. In some configurations, direct email-based interactions -- with the originating ESMTP client and the destination ESMTP server able to have direct TCP connect -- are possible, such as over an intranet. In addition an end-to-end exchange can ESMTP for hop-by-hop enforcement. This document defines an SMTP-based service extension [ESMTP1, ESMTP2] for content negotiation, whereby an SMTP client may request information about content capabilities of the target device or system that is serviced by an SMTP server. The SMTP server may report the target's content capabilities back to the client. This process can be used to emulate a classic facsimile start-of-session capabilities negotiation, as well as being used for other email-based services. The extension is primarily intended for "direct" SMTP transfers, although relayed scenarios are permitted through a series of SMTP servers and are discussed in Appendix B. 2. CONVENTIONS In examples, "C:" and "S:" indicate lines sent by the client and server respectively. The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as defined in "Key words for use in RFCs to Indicate Requirement Levels" [KEYWORDS]. 3. CONTENT NEGOTIATION SERVICE EXTENSION (1) The name of the SMTP service extension is "Content_Negotiation" (2) The EHLO keyword value associated with this extension is "CONNEG" (3) A parameter using the keyword "CONNEG" is added to the RCPT command (4) The server responds with a report of the content capabilities of the device or system that embodies the target RCPT address. 4. CONNEG PARAMETER TO RCPT 4.1 Parameter Keyword: CONNEG Argument: REQUIRED The client requires support for the capability. If the target does not support the CONNEG parameter, the target MUST reject the RCPT command with a 504 reply. If the target can not support the capability due to a temporary problem, it MUST reject the RCPT command with a 404 reply. OPTIONAL The client requests the target to use the capability. If the target can not support the capability at this time, the target MUST process the address and message as if the requested CONNEG capabilities had not been specified. If the argument does not exist, the default is "REQUIRED". When a capability is REQUIRED by the client but can not currently be supported by the target, an error response will have significant performance impact to overall SMTP processing. Use of the OPTIONAL parameter will ensure high SMTP performance. 4.2 Client Action If the server issued a 250-CONNEG, as part of its EHLO response for the current session, the client MAY issue the CONNEG parameter with RCPT. If the client issues the CONNEG parameter with RCPT, then it MUST honor the capabilities specified in the CONNEG RCPT reply, and transform data that is sent, so that the server can accept the data. The client SHOULD transform the data to the "highest" level of capability of the server. If the server rejects the RCPT command with a 404 reply, the client may later reissue the RCPT with the CONNEG parameter in a different SMTP session. If the server returns an EHLO 250 code without CONNEG capabilities, the client MUST NOT issue a CONNEG parameter with RCPT. Methods of using of this option with multiple addressees, for the same content, are discussed in Appendix A. 4.3 Server Action If the client specifies "CONNEG=REQUIRED" in the RCPT, but the server does not support the CONNEG parameter, the server MUST reject the RCPT command with a 504 reply. If the server supports the CONNEG parameter, but can not return the recepient's capability temporarily, the server MUST reject the RCPT command with a 404 reply. For example, if the server gets the capability information from a directory, but its connection is offline, the server MUST reject the RCPT command with a 404 reply. If the client specifies "CONNEG=OPTIONAL" in the RCPT, but the server does not support the CONNEG parameter or can not return the recipient's capability temporarily, the server MUST process the address and message as if the requested CONNEG capabilities had not been specified. Regardless of the value of the parameter, if the server does support the CONNEG parameter and the address is acceptable, then it MUST issue a 250 reply, followed by the capabilities of the server that is specified by the RCPT address. Successful responses to CONNEG RCPT requests will always be multiple SMTP lines. The first line is the normal RCPT response, and subsequent lines beginning with the exact string "250-CONNEG " and "250 CONNEG " are the CONNEG responses. The last line begins with "250 CONNEG ". If the SMTP server supports ENHANCEDSTATUSCODES [RFC1893], the response strings for a success are "250-2.1.5 CONNEG" and "250 2.1.5 CONNEG". The response strings for indicating a permanent failure are "504-5.3.3 CONNEG" and "504 5.3.3 CONNEG". The response strings for a temporary failure are "404-4.3.3 CONNEG" and "404 5.3.3 CONNEG". All CONNEG-capable clients and CONNEG-capable servers MUST be able to successfully process CONNEG lines that are up to 512 characters long, as required by RFC2821. If the length of CONNEG lines is greater than 512 characters, the server MUST insert line breaks and make next CONNEG line. The contents of the capability listing MUST conform to the specifications in "Content Feature Schema for Internet Fax". [RFC2879] 5. SYNTAX Command with "CONNEG": "RCPT TO:" ("" / "" / Forward-Path) (SP "CONNEG =" ("REQUIRED" / "OPTIOANL") CRLF Reply: ( ("250-" CRLF) *("250-CONNEG" capability CRLF) ("250 CONNEG" capability CRLF) )/ ( ("250-2.1.5" CRLF) *("250-2.1.5 CONNEG" capability CRLF) ("250 2.1.5 CONNEG" capability CRLF) )/ ("504" CRLF) / ("504 5.3.3" CRLF) / ("404" CRLF) / ("404 4.3.3" CRLF) / capability = <> 6. EXAMPLES 6.1 Success Response An example of ESMTP sequence with successful RCPT response S: 220 ifax1.jp IFAX C: EHLO ifax1.jp S: 250-ifax1.jp S: 250-DSN S: 250 CONNEG C: MAIL FROM: S: 250 sender ok C: RCPT TO: CONNEG = REQUIRED S: 250- recipient ok S: 250 CONNEG (&(image-file-structure=TIFF-minimal) S: (MRC-mode=0)(color=Binary)(|(&(dpi=204) S: (dpi-xyratio=[204/98,204/196]) )(&(dpi=200) S: (dpi-xyratio=[200/100,1]) )(&(dpi=400) S: (dpi-xyratio=1) ) )(|(image-coding=[MH,MR,MMR]) S: (&(image-coding=JBIG)(image-coding-constraint=JBIG-T85) S: (JBIG-stripe-size=128) ) )(paper-size=[letter,A4,B4]) S: (ua-media=stationery) ) C: DATA S: 354 okay, send data C: <> S: 250 message accepted C: QUIT S: 221 goodbye 6.2 Long Response An example of successful RCPT response when the length of capability is greater than 512 characters. S: 250-2.1.5 recipient ok S: 250-2.1.5 CONNEG (&(image-file-structure=TIFF-minimal) ... S: 250-2.1.5 CONNEG ..... S: 250 2.1.5 CONNEG (color=Binary) An example of succssful RCPT response when CONNEG-capable server supports ENHANCEDSTATUSCODES. S: 250-2.1.5 recipient ok S: 250 2.1.5 CONNEG (&(image-file-structure=TIFF-minimal) S: (MRC-mode=0)(color=Binary)(|(&(dpi=204) S: (dpi-xyratio=[204/98,204/196]) )(&(dpi=200) S: (dpi-xyratio=[200/100,1]) )(&(dpi=400) S: (dpi-xyratio=1) ) )(|(image-coding=[MH,MR,MMR]) S: (&(image-coding=JBIG)(image-coding-constraint=JBIG-T85) S: (JBIG-stripe-size=128) ) )(paper-size=[letter,A4,B4]) S: (ua-media=stationery) ) 6.3 Failure Response An example of ESMTP sequence with parmanent failure RCPT response. S: 220 ifax1.jp IFAX C: EHLO ifax1.jp S: 250-ifax1.jp S: 250-DSN C: MAIL FROM: S: 250 sender ok C: RCPT TO: CONNEG = REQUIRED S: 504 recipient ok C: QUIT S: 221 goodbye 6.4 Temporary Failure Response An example of an ESMTP sequence with temporary failure RCPT response when the value of parameter is "REQUIRED": S: 220 ifax1.jp IFAX C: EHLO ifax1.jp S: 250-ifax1.jp S: 250-DSN S: 250 CONNEG C: MAIL FROM: S: 250 sender ok C: RCPT TO: CONNEG = REQUIRED S: 404 recipient ok C: QUIT S: 221 goodbye . . . retry according to implementation 6.5 Temporary Failure with Optional handling An example of an ESMTP sequence with temporary failure RCPT response when the value of parameter is "OPTIONAL": S: 220 ifax1.jp IFAX C: EHLO ifax1.jp S: 250-ifax1.jp S: 250-DSN S: 250 CONNEG C: MAIL FROM: S: 250 sender ok C: RCPT TO: CONNEG = OPTIONAL S: 250 recipient ok C: DATA S: 354 okay, send data C: <> S: 250 message accepted C: QUIT S: 221 goodbye 7. IANA CONSIDERATIONS On publicatiom of this document by the RFC Editor, the IANA shall register the Content_Negotiation ESMTP extension defined in section 3. 8. SECURITY CONSIDERATIONS This ESMTP option calls for a respondent to disclose its capabilities. Mechanisms for determining the requestor's authenticated identity are outside the scope of this specification. It is intended that this mechanism permit disclosure of public information; hence there is no particular need for security measures. However there is nothing to prevent disclosure of sensitive information that should receive restricted distribution. It is, therefore, the responsibility of the disclosing ESMTP server to determine whether additional security measures should be applied to the use of this ESMTP option. A man-in-the-middle attack might change the capabilities reported for a given recipient. For example: Suppose the sender knows the recipient has the ability to view color documents so they mark some things in red in what is otherwise a black and white document. But someone interferes with the returned capabilities, indicating that the recipient only supports black and white. The document is duly downgraded, with the result that the recipient doesn't see what the sender marked. An indirect exposure can occur when the report of a capability implies use of specific software. If that software is known to have security weaknesses, the capabilities report effectively advertises the associated opportunity to exploit the security weakness. For target SMTP servers that require security mechanisms to be in force at the start of the session, the target SHOULD refrain from including the CONNEG parameter in an EHLO response until the requisite security mechanisms are in force. For digitally signed content, the use of this option poses a special challenge. Digitally signing content relies on that content to be in a particular form. Use of this option changes that form. Hence an SMTP client that uses this option on digitally signed content MUST be able to recompute the digital signature of the content. 9. ACKNOWLEDGEMENTS Graham Klyne provided useful suggestions to an earlier draft. 10. NORMATIVE REFERENCES [ESMTP1] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D. Crocker, "SMTP Service Extensions", RFC 1869, November 1995 [ESMTP2] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, April 2001. [RFC2879] McIntyre, L. and G. Klyne, "Content Feature Schema for Internet Fax", RFC 2531, August 2000 [RFC2305] Toyoda, K., Ohno, H., Murai, J. and D. Wing, "A Simple Mode of Facsimile Using Internet Mail", RFC 2305, March 1998. 11. AUTHORS' ADDRESSES Kiyoshi Toyoda Matsushita Graphic Communication Systems,Inc 2-3-8 Shimomeguro, Meguro-Ku Tokyo 153 JAPAN +81.3.5434.7161 ktoyoda@rdmg.mgcs.mei.co.jp Dave Crocker Brandenburg InternetWorking 675 Spruce Drive Sunnyvale, CA 94086 USA +1.408.246.8253 dcrocker@brandenburg.com 12. FULL COPYRIGHT STATEMENT Copyright (C) The Internet Society (2001). 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 assigns. 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 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. APPENDIX A. USAGE FOR MULTIPLE RECIPIENTS ESMTP permits specification of multiple recipients for the same content. This option specified here can produce information that different recipients have different content capabilities. How this differential information is used will depend upon the requirements of the sender. This specification does not mandate particular choices. Three scenarios are possible: (1) Single Recipient For each recipient, conduct a separate ESMTP session. This ensures that each content transfer can be tailored to the capabilities of each recipient. This also consumes the largest amount of bandwidth and the largest number of cross-network SMTP protocol exchanges (2) Common Content For a single ESMTP session, issue RCPT commands that obtain content capabilities information for each recipient. With the DATA command, send the best content form that can be processed by ALL of the recipients. Some recipients will receive content that is below their best capabilities. However this approach also consumes the least bandwidth and has the fewest cross-network protocol exchanges (3) Partial Batching This scenario begins the same as the "Common Content" scenario. Content capabilities information is obtained during a single ESMTP session, with all of the RCPT commands issued together. The difference for this scenario is that the client SMTP then terminates the session with an RSET and begins one or more new, separate sessions. Addressees are processed in batches, according to the similarity of their capabilities. This option balances consumption of bandwidth with optimization of content, at the cost of a terminated session. B. SCENARIOS FOR RELAYING ESMTP is a direct transfer mechanism, using a single TCP connection. It supports Internet mail store-and-forward through such characteristics as global addressing and ESMTP enforcement of global features. Use of the ESMTP Conneg option is straightforward when the originating ESMTP client is able to directly connect to the destination ESMTP server. The nature of this option is to return address-specific information that will affect content transmission. Hence the use of this option in the presence of the in-direct effects of store-and-forward is not obvious. This Appendix discusses some styles of use for the ESMTP Conneg option when messages are being relayed. The Appendix is intended only to provide discussion. It is neither intended to be exhaustive nor restrictive. Other scenarios are likely and encouraged. B.1 Relay Server Modes The key challenge for use of the ESMTP Conneg option is the requirement the receiving ESMTP server be able to return capabilities on behalf of a target addressee. This requirement translates into two, basic styles of operation for the receiving ESMTP server: (1) Server Knows Addressee Capabilities Here the receiving server has the necessary details about an addressee, at the time the sending server issues the RCPT response. Typically, this information will be obtained through a direct, real-time query mechanism, either to a directory containing addressee information or to a service run directly on behalf of the individual addressee and possibly on the addressee's system. One form of query to the addressee's system is to stack a cascading sequence of ESMTP sessions and RCPT commands together, all the way to the destination ESMTP server. Although theoretically possible, this attempt to turn a multi-hop scenario into a real-time, pseudo-direct query is not practical. It will most likely result in response delays for the RCPT command that are not acceptable, particularly over the public Internet. (2) Server Ensures Conversion Fundamental to the use of a capabilities exchange is the requirement that the receiver of capabilities information be able to convert content into a form that is more capable than the default form, when the receiver indicates that it can support the superior form. That is, use of this option presumes that the sender is holding a "more capable" form of the content and will map it to a "less capable form" if the receiver does not support the superior form. Hence another style of relaying configuration is to have a relay SMTP respond to an RCPT capability query by indicating that it supports the most capable form. The sender will pass the best version it can. The receiver has then taken responsibility for performing later conversions, as necessary, to the next hop in the sequence. That is, the receiving ESMTP server inherits the same level of responsibility already being held by the sending ESMTP client. B.2 Some End-to-End Scenarios This section suggests methods of using ESMTP Conneg for achieving an end-to-end service that uses knowledge of recipient capabilities for modifying the content or the handling of the content. This section is intended only to explore possible scenarios. Others are feasible and likely. The choice of scenario to support will depend upon particular service policies chosen for a relay. This specification provides no constraint or guidance about which policies to choose. (1) Basic Tranfer betweeen Organizations Again noting that alternative configurations and support environments are permitted, a simple example of combining the two modes of receiving server style can be helpful. The scenario to consider is sending from one organization's email system to another organization's email system, across the Internet. This scenario presumes two, independent email services, one for each organization. In this simple example, the user has a local ESMTP server and it talks with the organization's Internet email gateway. Hence there are four ESMTP servers. The originating server takes the message from the originating user. It then relays the message to the originating organization's ESMTP gateway. This gateway, in turn, relays the message to the destination organization's gateway, which finally delivers it to the recipient's server. In this simple example, the originating ESMTP server includes a CONNEG option on the RCPT command to the originating organization's Internet gateway and the gateway always responds that it supports the highest capabilities. It is then given the most capable form of the content. The originating gateway then performs a RCPT CONNEG exchange with the destination organization's gateway. This gateway can operate in the same "Ensure Conversion" mode as the originating gateway, or it can perform a real-time query about the addressee's capabilities. The former mode defers resolving recipient capabilities until the final step. The real-time query requires both that the query mechanism be timely, in order to avoid RCPT response delays, and that it be accurate, with correct information about the addressee. The final exchange is, of course, "direct". The recipient's ESMTP server is presumed to have easy access to the necessary capabilities information. (2) Integration with Multipart/Alternative Basic support for Conneg will typically involve a Conneg client that has a single, high-quality version of content and then maps is "down" to the best quality that can be supported by the responding Conneg server. That is, the sending system will do a conversion. In another mode of operation the Conneg client already holds a number of different mappings of content at different levels of quality. The client will use the Conneg response to choose the content quality that is "closest" to the capabilities of the receiver. MIME's Multipart/Alternative provides a means for a content originator to send a fixed set of content quality choices. An ESMTP relay in the sequence can then choose to use Conneg as a means of selecting one of the alternatives to transmit, rather than transmitting the full set. Such a scenario is particularly useful when the communication path changes from high-bandwidth to low. (3) Content Staging on Retrieval Server Rather than converting content to a lower quality, an ESMTP Conneg client might choose to use a Conneg response for choosing not to send the content directly. It might, instead, remove the content from the message and store the content on a retrieval server (for access through HTTP, FTP or the like.) It can then put a citation into the message, which points to the stored content. For the retrieval server, access security, as well as life-time management of the content on the retrieval server, should be considered. A full discussion of these considerations is out of the scope of this memo." (4) Alternate Addressing If an ESMTP Conneg client has access to multiple addresses for the same recipient, it might use Conneg to determine which is most capabable for particular content and send the content to that one. This scenario requires a number of infrastucture features for which there currently are no standards.