[Docs] [txt|pdf] [draft-ietf-vpim-cc] [Diff1] [Diff2]

Updated by: 5621 PROPOSED STANDARD

Network Working Group                                          E. Burger
Request for Comments: 3459                            SnowShore Networks
Updates: 3204                                               January 2003
Category: Standards Track


              Critical Content Multi-purpose Internet Mail
                      Extensions (MIME) Parameter

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 (2003).  All Rights Reserved.

Abstract

   This document describes the use of a mechanism for identifying body
   parts that a sender deems critical in a multi-part Internet mail
   message.  The mechanism described is a parameter to Content-
   Disposition, as described by RFC 3204.

   By knowing what parts of a message the sender deems critical, a
   content gateway can intelligently handle multi-part messages when
   providing gateway services to systems of lesser capability.  Critical
   content can help a content gateway to decide what parts to forward.
   It can indicate how hard a gateway should try to deliver a body part.
   It can help the gateway to pick body parts that are safe to silently
   delete when a system of lesser capability receives a message.  In
   addition, critical content can help the gateway chose the
   notification strategy for the receiving system.  Likewise, if the
   sender expects the destination to do some processing on a body part,
   critical content allows the sender to mark body parts that the
   receiver must process.











Burger                      Standards Track                     [Page 1]

RFC 3459           Critical Content of Internet Mail        January 2003


Table of Contents

   1.  Conventions used in this document..............................3
   2.  Introduction...................................................3
   3.  Handling Parameter.............................................4
       3.1. REQUIRED..................................................4
       3.2. OPTIONAL..................................................5
       3.3. Default Values............................................5
       3.4. Other Values..............................................5
   4.  Collected Syntax...............................................6
   5.  Notification...................................................6
       5.1. DSN vs. MDN Generation....................................7
       5.2. Summary...................................................7
   6.  Signed Content.................................................8
   7.  Encrypted Content..............................................9
   8.  Status Code...................................................10
   9.  Requirements for Critical Content.............................11
       9.1. Needs....................................................11
       9.2. Current Approaches.......................................12
   10. The Content Gateway...........................................13
       10.1. Integrated Content Gateway..............................14
       10.2. Disaggregated Delivery Network..........................14
   11. Backward Compatibility Considerations.........................15
   12. MIME Interactions.............................................15
       12.1. multipart/alternative...................................15
       12.2. multipart/related.......................................15
       12.3. message/rfc822..........................................15
       12.4. multipart/signed........................................16
       12.5. multipart/encrypted.....................................16
   13. Implementation Examples.......................................16
       13.1. Content Gateways........................................16
       13.2. Disaggregated Content Gateway...........................17
   14. OPES Considerations...........................................18
       14.1. Consideration (2.1): One-Party Consent..................18
       14.2. Consideration (2.2): IP-layer Communications............18
       14.3. Consideration (3.1): Notification - Sender..............18
       14.4. Consideration (3.2): Notification - Receiver............18
       14.5. Consideration (3.3): Non-Blocking.......................18
       14.6. Consideration (4.1): URI Resolution.....................18
       14.7. Consideration (4.2): Reference Validity.................19
       14.8. Consideration (4.3): Architecture Extensions............19
       14.9. Consideration (5.1): Privacy............................19
   15. Security Considerations.......................................19
   16. IANA Considerations...........................................19
   17. References....................................................20
       17.1 Normative References.....................................20
       17.2 Informative Reference....................................21
   18. Acknowledgments...............................................22



Burger                      Standards Track                     [Page 2]

RFC 3459           Critical Content of Internet Mail        January 2003


   19. Intellectual Property Notice..................................23
   20. Author's Address..............................................23
   21. Full Copyright Statement......................................24

1. Conventions used in this document

   This document refers generically to the sender of a message in the
   masculine (he/him/his) and the recipient of the message in the
   feminine (she/her/hers).  This convention is purely for convenience
   and makes no assumption about the gender of a message sender or
   recipient.

   The key words "MUST", "MUST NOT", "SHALL", "SHALL NOT", "SHOULD",
   "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document
   are to be interpreted as described in BCP 14, RFC 2119 [2].

   The word "REQUIRED" in this document does not follow the definition
   found in RFC 2119.  This is because this document defines a parameter
   named "REQUIRED".  There is no requirement in this document that is
   "REQUIRED", so there is no confusion.

   In this document, the "sending agent" is the originator of the
   message.  It could be a mail user agent (MUA) for an Internet
   message, or a SIP User Agent Client (UAC) for a SIP [3] message. The
   "endpoint" is the receiving device, of lesser capability than the
   sending agent.

   NOTE: Notes, such as this one, provide additional nonessential
   information that the reader may skip without missing anything
   essential.  The primary purpose of these non-essential notes is to
   convey information about the rationale of this document, or to place
   this document in the proper historical or evolutionary context.
   Readers whose sole purpose is to construct a conformant
   implementation may skip such information.  However, it may be of use
   to those who wish to understand why we made certain design choices.

2. Introduction

   The specification of Critical Content is small and compact.  For the
   benefit of developers, the specification comes first, the rationale
   after.

   One concept that an implementer must understand is the content
   gateway.  Section 10 describes the content gateway.  In brief, a
   content gateway has knowledge of the receiving system's capabilities.
   The content gateway passes messages the receiving system can process,
   render or store.  The content gateway can modify a message, for
   example by deleting unrenderable or storable body parts, for delivery



Burger                      Standards Track                     [Page 3]

RFC 3459           Critical Content of Internet Mail        January 2003


   to the receiving system.  Finally, the content gateway can reject a
   message that the receiving system cannot handle.

   Although Critical Content processing is not an OPES service, the
   protocol machinery described in this document meets all of the OPES
   IAB requirements as stated by RFC 3238 [4].  Section 14 describes
   this in detail.  In particular, unlike the current situation where
   content gateways silently modified messages, or had abstract rules
   for modifying them (see the content transformation rules in VPIM, for
   example), the Critical Content mechanism allows for the sending user
   to explicitly indicate desired content handling by content gateways

   NOTE: This document updates RFC 3204 [5] to separate the Handling
   parameter from the ISUP/QSIG transport mechanism.  The protocol
   described here is identical in functionality to RFC 3204 with respect
   to SIP.  Future versions of RFC 3204 should reference this document
   for the Handling parameter, as it is orthogonal to the tunneling of
   signaling.

3. Handling Parameter

   The Handling parameter is a Content-Disposition [6] parameter
   inserted by the sending agent to indicate to the content gateway
   whether to consider the marked body part critical.

   A REQUIRED body part is one the sender requires the receiving system
   to deliver for him to consider the message delivered.

   An OPTIONAL body part is one the sender doesn't care whether the
   receiving system delivers it or not.  A content gateway can silently
   delete such body parts if the receiving system cannot deliver the
   part.

   The terms "entity" and "body part" have the meanings defined in [6].

3.1. REQUIRED

   "Handling=REQUIRED" signifies that this body part is critical to the
   sender.

   If the content gateway cannot pass a body part marked REQUIRED, then
   the entire message has failed.  In this case, the content gateway
   MUST take the appropriate failure action.

   NOTE: We say "appropriate action", because the sender may have
   suppressed all notifications.  In this case, the appropriate action
   is to silently discard the message.  In addition, as a general MIME
   parameter, the MIME body part may not be in an Internet Mail message.



Burger                      Standards Track                     [Page 4]

RFC 3459           Critical Content of Internet Mail        January 2003


   Moreover, in the SIP case, the appropriate notification is a status
   return code, not a delivery notification.

3.2. OPTIONAL

   "Handling=OPTIONAL" signifies that the sender does not care about
   notification reports for this body part.

   If the content gateway cannot pass a body part marked OPTIONAL, the
   receiving system may silently delete the body part.  The receiving
   system MUST NOT return a delivery failure, unless parts marked
   REQUIRED have also failed.

3.3. Default Values

   The default value for Handling for a given body part is REQUIRED.
   This enables the existing notification mechanisms to work for sending
   agents that do not know about the content notification entity.  All
   body parts are critical, because they have the default marking of
   REQUIRED.

   NOTE: In the case of Internet mail, critical content processing is a
   function of the content gateway and not the mail transfer agent (MTA)
   or user agent (UA).  Often, the entity performing content gateway
   processing is the receiving UA.  However, in this case the UA is
   acting as a content gateway.  Thus the default action for any
   Content-Disposition [6]-compliant user agent to ignore unrecognized
   disposition parameters ensures that this mechanism is compatible with
   the Internet architecture.

   NOTE: This parameter is fully backwards compatible and works as
   expected for Internet mail and SIP.

   NOTE: Some VPIMv2 implementations can receive arbitrary e-mail from
   the Internet.  However, these systems are really acting in the
   capacity of an Internet Voice Mail system.  In this case, one would
   expect the implementation to provide Internet Voice Mail semantics to
   Internet Voice Mail messages.

3.4. Other Values

   The content gateway MUST treat unrecognized values as REQUIRED. This
   is to provide backward compatibility with future uses of the
   Content-Criticality entity.

   NOTE: A possible new value is IMPORTANT.  An IMPORTANT body part is
   something the sender wants the receiver to get, but would not want
   the message rejected outright if the IMPORTANT body part fails, but



Burger                      Standards Track                     [Page 5]

RFC 3459           Critical Content of Internet Mail        January 2003


   they do want notification of the failure.  However, as no
   implementations do IMPORTANT, it is not important to this version of
   this document.

4. Collected Syntax

   The format of the collected syntax is in accordance with the ABNF of
   [7].  Note that per RFC 2183 [6], the HANDLING Content-Disposition
   parameter is not case sensitive.  In addition, the notification-type
   is not case sensitive.

      "handling" "=" notification-type CRLF

      notification-type = "REQUIRED" / "OPTIONAL" /
                          other-handling / generic-param

      other-handling    =  token

5. Notification

   One obvious application of critical content is generating a (non-)
   delivery notification in the Internet mail environment.  If the value
   of the field is OPTIONAL, the content gateway MUST NOT generate a
   notification.  If the value of the field is REQUIRED, the content
   gateway MAY generate a notification, based on the normal notification
   request mechanisms.  Normal notification request mechanisms include
   specifying the NOTIFY parameter to the SMTP RCPT command [8] and the
   Disposition-Notification-To header [9].

   In SIP, all requests have responses.  These responses provide
   notification in the status code of the response.  For the RFC 3204
   case, a content gateway generates a 415 (Unsupported Media Type)
   response if the field is REQUIRED.

   If the sending system requests a notification, and a REQUIRED part
   fails, the content gateway MUST generate a notification for the whole
   message.  Conversely, if the gateway cannot pass on a body part
   marked OPTIONAL, the gateway MUST NOT generate a notification.

   NOTE: This implies that the content gateway must examine the entire
   message to determine whether it needs to generate a notification.
   However, the content gateway need not examine the message if it knows
   it can store and forward all media types. Said differently, Internet
   e-mail MTAs or gateways can, by default, handle any arbitrary MIME-
   encapsulated type.  Some voice mail systems, on the other hand,
   cannot store binary attachments at all, such as application/ms-word.
   The voice mail content gateway, in this example, would be scanning
   for non-renderable body parts in any event.



Burger                      Standards Track                     [Page 6]

RFC 3459           Critical Content of Internet Mail        January 2003


5.1. DSN vs. MDN Generation

   The content gateway generates a delivery status notification (DSN)
   [9] if it operates as a gateway.  The content gateway generates a
   Message Disposition Notification (MDN) [10] if it operates as a mail
   user agent.  Section 6 describes the operating modes of a content
   gateway.  In short, if there is a MTA that "delivers" the message to
   the content gateway for processing, the MTA takes responsibility for
   DSN processing.  In this case, the only option available to the
   content gateway is to generate MDNs.  If the content gateway operates
   as a MTA, then it generates DSNs.  DSN generation is the preferred
   option.

   If the content gateway is part of a SIP endpoint, then it generates
   the appropriate success or error response code.

5.2. Summary

   The following table summarizes the actions expected of a conforming
   content gateway.

   NOTE: This section is normative: it suggests what a content gateway
   should put into the DSN or MDN.

   NOTE: In the case of SIP, this section is informative.  See RFC 3204
   for the normative set of actions on failure.

                  Table 1 - Expected Actions

                        +--------------------------------------+
                        |    Sending UA Has Marked Body Part   |
                        |---------------------+----------------|
                        |      REQUIRED       |    OPTIONAL    |
   +--------------------+---------------------+----------------+
   | Body Part is       |                     |                |
   | Deliverable        | Appropriate Action  |     ignore     |
   +--------------------+---------------------+----------------+
   | Body Part is       |                     |                |
   | Undeliverable      | Fail Entire Message |     ignore     |
   +--------------------+--------------------------------------+

   The "Appropriate Action" is the action the content gateway would take
   given the context of execution.  For example, if a sender requests
   return receipt and the receiver reads a HANDLING body part, the
   receiving UA must generate the appropriate MDN (following the rules
   for MDN).  Likewise, if the content gateway cannot deliver the body
   part and the body part is critical, the content gateway generates the
   appropriate DSN or MDN.



Burger                      Standards Track                     [Page 7]

RFC 3459           Critical Content of Internet Mail        January 2003


   "Optional" means the content gateway ignores the disposition of the
   body part.  The content gateway treats the message as if the body
   part was not present in the message.

6. Signed Content

   RFC 1847 [11] describes how to apply digital signatures to a MIME
   body part.  In brief, a multipart/signed body part encapsulates the
   body part of interest, or the "content object", in a MIME body part
   and the control information needed to verify the object, or the
   "protocol" in the lexicon of RFC 1847, in a second MIME body part.
   Here is an example taken from RFC 1847.

      Content-Type: multipart/signed; protocol="TYPE/STYPE";
              micalg="MICALG"; boundary="Signed Boundary"

      --Signed Boundary
      Content-Type: text/plain; charset="us-ascii"

      This is some text to be signed although it could be
      any type of data, labeled accordingly, of course.

      --Signed Boundary
      Content-Type: TYPE/STYPE

      CONTROL INFORMATION for protocol "TYPE/STYPE" would be here

      --Signed Boundary--

                Figure 1 - Signed Content MIME Type

   There are three places where one may place the criticality indicator
   for a multipart/signed body part.  One could mark the
   multipart/signed object, the content object, the control object, or
   any combination of the three.

   The disposition of REQUIRED body parts follow the guidelines found in
   RFC 2480 [12].

   A critical content indicator on a multipart/signed body part means
   the sending party requires true end-to-end signature verification.
   Thus the gateway needs to pass the enclosure intact.  If the system
   or network of lesser capability cannot do signature verification and
   the signed enclosure is REQUIRED, the gateway MUST reject the
   message.






Burger                      Standards Track                     [Page 8]

RFC 3459           Critical Content of Internet Mail        January 2003


   A critical content indicator on a signature means that either the
   receiving endpoint must be able to do signature verification, or the
   gateway needs to verify the signature before forwarding the message.
   If the content does not pass verification, the gateway MUST reject
   the message.

   A critical content indicator on the enclosed material specifies
   whether that material is critical to the message as a whole.  If the
   signature is marked OPTIONAL and the enclosed material is marked
   REQUIRED, the gateway MAY strip out the signature information if the
   system or network of lesser capability cannot do signature
   verification.  However, if possible, we STRONGLY RECOMMEND the
   gateway do signature verification and indicate tampering to the
   recipient.

7. Encrypted Content

   RFC 1847 [11] describes how to encrypt a MIME body part.  In brief, a
   multipart/encrypted body part encapsulates the control information
   ("protocol" in the lexicon of RFC 1847) for the encrypted object and
   the second containing the encrypted data (application/octet-stream).
   Here is an example taken from RFC 1847.

      Content-Type: multipart/encrypted; protocol="TYPE/STYPE";
              boundary="Encrypted Boundary"

      --Encrypted Boundary
      Content-Type: TYPE/STYPE

      CONTROL INFORMATION for protocol "TYPE/STYPE" would be here

      --Encrypted Boundary
      Content-Type: application/octet-stream

          Content-Type: text/plain; charset="us-ascii"
          All of this indented text, including the indented headers,
          would be unreadable since it would have been encrypted by
          the protocol "TYPE/STYPE".  Also, this encrypted data could
          be any type of data, labeled accordingly, of course.

      --Encrypted Boundary--

   One may sensibly place a criticality indicator on the encrypted
   enclosure (multipart/encrypted) body part.  If the endpoint can
   decrypt the message, then the gateway passes the body part in its
   entirety.





Burger                      Standards Track                     [Page 9]

RFC 3459           Critical Content of Internet Mail        January 2003


   If one marks the control object REQUIRED, then the sending UA
   requires end-to-end encryption.  If the endpoint cannot decrypt the
   message, then the gateway MUST reject the message.

   If the control object is OPTIONAL, and the endpoint cannot decrypt
   the message, and the gateway can decrypt the message, then the
   gateway MAY decrypt the message and forward the cleartext message.
   The sending user has explicitly given permission for the gateway to
   decrypt the message by marking the control object OPTIONAL. Recall
   that the default indication for MIME body parts is REQUIRED.  Thus if
   the user takes no explicit action, the content gateway will assume
   the user wished end-to-end encryption.

   Marking the encrypted content, without marking the encrypted
   enclosure, is problematic.  This is because the gateway has to
   decrypt the encrypted data to retrieve the header.  However, it is
   unlikely for the gateway to have the capability (e.g., keys) to
   decrypt the encrypted data.  If a sending UA wishes to mark encrypted
   data as not REQUIRED, the sending UA MUST mark the encrypted content
   as not REQUIRED.  Clearly, if the sending UA marks the encrypted
   content as REQUIRED, the gateway will apply the REQUIRED processing
   rules.  Moreover, if the sending UA does not mark the encrypted
   content as REQUIRED, the gateway, unless it can decrypt the data,
   will treat the encrypted content as REQUIRED.  This occurs because
   gateways always treat unmarked content as REQUIRED (see Section 3.3).

8. Status Code

   The critical content indication, in itself, does not guarantee any
   notification.  Notification follows the rules described in [3], [8],
   and [9].

   NOTE: The content of actual DSNs or MDNs are beyond the scope of this
   document.  This document only specifies how to mark a critical body
   part.  On the other hand, we do envision sensible DSN and MDN
   contents.  For example, DSNs should include the appropriate failure
   code as enumerated in [13].  Likewise, MDNs should include the
   failure code in the MDN "Failure:" field.

   If the receiving system is to generate a notification based on its
   inability to render or store the media type, the notification should
   use the status code 5.6.1, "Media not supported", from [10].

   For the SIP case, all requests have notification provided by the
   status response message.  Per RFC 3204, a content gateway generates a
   415 (Unsupported Media Type) response.





Burger                      Standards Track                    [Page 10]

RFC 3459           Critical Content of Internet Mail        January 2003


9. Requirements for Critical Content

   This section is informative.

9.1. Needs

   The need for a critical content identification mechanism comes about
   because of the internetworking of Internet mail systems with
   messaging systems that do not fulfill all of the semantics of
   Internet mail.  Such legacy systems have a limited ability to render
   or store all parts of a given message.  This document will use the
   case of an Internet mail system exchanging electronic messages with a
   legacy voice messaging system for illustrative purposes.

   Electronic mail has historically been text-centric.  Extensions such
   as MIME [14] enable the user agents to send and receive multi-part,
   multimedia messages.  Popular multimedia data types include binary
   word processing documents, binary business presentation graphics,
   voice, and video.

   Voice mail has historically been audio-centric.  Many voice-messaging
   systems only render voice.  Extensions such as fax enable the voice
   mail system to send and receive fax images as well as create multi-
   part voice and fax messages.  A few voice mail systems can render
   text using text-to-speech or text-to-fax technology.  Although
   theoretically possible, none can today render video.

   An important aspect of the interchange between voice messaging
   services and desktop e-mail client applications is that the rendering
   capability of the voice-messaging platform is often much less than
   the rendering capability of a desktop e-mail client.  In the e-mail
   case, the sender has the expectation that the recipient receives all
   components of a multimedia message.  This is so even if the recipient
   cannot render all body parts.  In most cases, the recipient can
   either find the appropriate rendering tool or tell the sender that
   she cannot read the particular attachment.

   This is an important issue.  By definition, a MIME-enabled user
   agent, conforming to [15], will present or make available all of the
   body parts to the recipient.  However, a voice mail system may not be
   capable of storing non-voice objects.  Moreover, the voice mail
   system may not be capable of notifying the recipient that there were
   undeliverable message parts.

   The inability of the receiving system to render a body part is
   usually a permanent failure.  Retransmission of the message will not
   improve the likelihood of a future successful delivery. Contrast this
   with the case with normal data delivery. Traditional message



Burger                      Standards Track                    [Page 11]

RFC 3459           Critical Content of Internet Mail        January 2003


   failures, such as a garbled message or disabled link will benefit
   from retransmission.

   This situation is fundamentally different from normal Internet mail.
   In the Internet mail case, either the system delivered the message,
   or it didn't.  There is no concept of a system partially delivering a
   message.

   In addition, there are many situations where the sender would not
   mind if the system did not deliver non-critical parts of a message.
   For example, the sender's user agent may add body parts to a message
   unbeknownst to the sender.  If the receiving system rejected the
   message because it could not render a hidden body part, the sender
   would be understandably confused and upset.

   Thus, there is a need for a method of indicating to a Mail Transfer
   Agent (MTA) or User Agent (UA) that the sender considers parts of a
   message to be critical.  From the sender's perspective, he would not
   consider the message delivered if the system did not deliver the
   critical parts.

9.2. Current Approaches

   One method of indicating critical content of a message is to define a
   profile.  The profile defines rules for silently deleting mail body
   parts based on knowledge of the UA capabilities.  Citing the example
   above, a voice profile can easily declare that MTAs or UAs can
   silently delete TNEF data and yet consider the message successfully
   delivered.  This is, in fact, the approach taken by VPIMv2 [16].

   Since one aspect of the issue is deciding when to notify the sender
   that the system cannot deliver part of a message, one could use a
   partial non-delivery notification mechanism to indicate a problem
   with delivering a given body part.  However, this requires the user
   request a delivery notification.  In addition, the sender may not be
   aware of parts added by the sending user agent.  In this case, a
   failure notice would mystify the sender.

   A straightforward alternative implementation method for marking a
   body part critical is to use a Critical-Content MIME entity.  This
   has the benefit that criticality is meta information for the body
   part.  However, IMAP servers in particular would need to either put
   Critical-Content into the BODYSTRUCTURE method or create a new method
   to retrieve arbitrary MIME entities.  Given the experience of trying
   to get Content-Location accepted by IMAP vendors, we chose not to go
   that route.





Burger                      Standards Track                    [Page 12]

RFC 3459           Critical Content of Internet Mail        January 2003


   What we need is a way of letting the sender indicate what body parts
   he considers to be critical.  The mechanism must not burden the
   sender with failure notifications for non-critical body parts.  The
   mechanism must conform to the general notification status request
   mechanism for positive or negative notification.  When requested, the
   mechanism must indicate to the sender when a receiving system cannot
   deliver a critical body part.

10. The Content Gateway

   This section is informative.

   In this section, we use the definition found in RFC 2156 [17] for the
   term "gateway."

   We do not strictly use the definition found in RFC 2821 [18] for the
   term "gateway."  In particular, RFC 2821 is discussing a gateway that
   should not examine the message itself.  An RFC 2821 gateway is a
   transport gateway, that mostly deals with transformations of the SMTP
   information.

   A content gateway is a gateway that connects a first network to a
   second network.  The second network often has lesser capability than
   the first network.  The canonical topology follows.  "[MTA]", with
   square brackets, signifies an optional component.

                             +---------+
   +---------+     +-----+   |         |     +-------+   +-----------+
   | Sending |=...=|[MTA]|===| Content |=...=| [MTA] |===| Receiving |
   |   UA    |     +-----+   | Gateway |     +-------+   |    UA     |
   +---------+               |         |                 +-----------+
                             +---------+
          First Network                         Second Network

                 Figure 2 - Content Gateway Topology

   The content gateway can be the last hop before the receiving MTA. The
   content gateway can be between networks, and thus not the last hop
   before the receiving MTA.  The content gateway can be the first MTA
   the sending UA contacts.  Finally, the content gateway can be an
   integrated component of the receiving MTA.

   For the SIP case, consider each MTA as a SIP Proxy, the Sending UA as
   a SIP User Agent Client, and the Receiving UA as a SIP User Agent
   Server.






Burger                      Standards Track                    [Page 13]

RFC 3459           Critical Content of Internet Mail        January 2003


10.1. Integrated Content Gateway

   In this situation, the receiving user agent is integrated with the
   content gateway. The integrated content gateway knows the
   capabilities of the user agent.  The topology is as follows.

                             +---------------------+
   +---------+     +-----+   |         :           |
   | Sending |=...=|[MTA]|===| Content : Receiving |
   |   UA    |     +-----+   | Gateway :    UA     |
   +---------+               |         :           |
                             +---------------------+
          First Network           Second Network

                  Figure 3 - Integrated Content Gateway

   The processing of ISUP and QSIG objects, as described in [5], is an
   example of an integrated gateway.

10.2. Disaggregated Delivery Network

   A degenerate case, although one that does occur, is where the content
   gateway sits behind the final MTA.  This happens when one implements
   the content gateway as a post-processing step to a normal delivery.
   For example, one could configure a mail handling system to deliver
   the message to a queue or directory, where the content gateway
   process picks up the message.  If there were any directives for DSN
   processing, the delivering MTA would execute them.  For example, the
   message could have requested notification on successful delivery.
   The delivering MTA, having delivered the message to the queue, would
   consider the message delivered and thus notify the sender of such.
   However, the content gateway process could then discover that the
   receiving UA cannot render the message.  In this case, the content
   gateway generates a NDN, as it is the only option available.

                           Delivered
                               |      +---------+
   +---------+     +-----+     v      |         |     +-----------+
   | Sending |=...=| MTA |--> File -->| Content |=...=| Receiving |
   |   UA    |     +-----+            | Gateway |     |    UA     |
   +---------+                        |         |     +-----------+
                                      +---------+
          First Network              Second Network

              Figure 4 - Disaggregated Delivery Network






Burger                      Standards Track                    [Page 14]

RFC 3459           Critical Content of Internet Mail        January 2003


11. Backward Compatibility Considerations

   DSN requires ESMTP.  If MTAs in the path from the sending UA to the
   receiving UA do not support ESMTP, then that MTA will reject the DSN
   request.  In addition, the message will default to notification on
   delay or failure.  While not ideal, the sender will know that DSN is
   not available, and that critical content that fails will get
   notification.

12. MIME Interactions

12.1. multipart/alternative

   As is true for all Content-Disposition parameters, handling is only
   in effect for the selected alternative.  If the selected alternative
   has the critical content indicator, then the entire alternative takes
   on the criticality indicated.  That is, if the alternative selected
   has HANDLING=OPTIONAL, then the content gateway MUST NOT generate any
   delivery notifications.

   NOTE: This statement explicitly shows that HANDLING overrides the DSN
   and MDN request mechanisms.

   It is unlikely for a selected alternative to fail, as the content
   gateway presumably picks the alternative specifically because it can
   render it.

   If the selected alternative is a message/rfc822 that encloses a
   multipart MIME message or the selected alternative is itself a
   multipart MIME type, the individual top-level body parts follow the
   HANDLING mechanism described in this document.

   NOTE: This means that a forwarded message's criticality will not
   affect the forwarding agent's intentions.

12.2. multipart/related

   Criticality fits in rather well with the multipart/related
   construction.  For example, consider a multipart/related message
   consisting of a Macintosh data fork and a Macintosh resource fork.
   For a Microsoft Word document, the data fork is likely to be
   critical.  The receiving system can safely ignore the resource fork.

12.3. message/rfc822

   Criticality only affects the outermost level of the message or, in
   the case of multipart/alternative, the outermost level of the
   selected alternative.  Specifically, the receiving system ignores



Burger                      Standards Track                    [Page 15]

RFC 3459           Critical Content of Internet Mail        January 2003


   criticality indicators in embedded body parts.  This avoids the
   situation of a forwarded message triggering or suppressing undesired
   reporting.  This simply implements the procedures described in [6].

12.4. multipart/signed

   See Section 6.

12.5. multipart/encrypted

   See Section 7.

13. Implementation Examples

   This section is an informative part of the definition of Criticality.
   We hope it helps implementers understand the mechanics of the
   Handling mechanism.

   We will examine two cases.  They are how a content gateway processes
   a message and how a disaggregated content gateway processes a
   message.

13.1. Content Gateways

   Content gateways examine the contents of a message from a first
   network before the gateway forwards the message to a second network.
   For the purposes of this example, we assume the second network has
   less capability than the first network.  In particular, we expect
   there will be certain message body types that the gateway cannot pass
   onto the second network.

   Consider a gateway between the Internet and a text-only short message
   service.  A message comes through the gateway containing a text part
   and a tnef part.  The sender marks the text part REQUIRED.  The
   gateway, knowing the capability of the short message service,
   silently deletes the non-critical, tnef part, passing the critical
   content to the short message service network. Any subsequent
   notifications, such as failure notices or delivery notices, follow
   the normal rules for notification.

   Note the gateway, by silently deleting non-critical content, may
   affect proprietary message correlation schemes.  One can envision the
   sending UA inserting a body part for tracking purposes.  By deleting
   non-critical content, the content gateway will break such a scheme.
   If a sending UA understands how to mark critical content, it should
   use Internet standard mechanisms for tracking messages, such as
   Message-ID [19].




Burger                      Standards Track                    [Page 16]

RFC 3459           Critical Content of Internet Mail        January 2003


   What if no body parts have critical content indicators?  In this
   case, the entire message is critical.  Thus, when the gateway sees
   the tnef part, it will reject the entire message, generating a DSN
   with a status code 5.6.1, "Media not supported".

   Likewise, consider a three part message with a text annotation (part
   1) to a voice message (part 2) with a vCard [20] (part 3). The sender
   marks the first two parts REQUIRED.  Now, let us assume the receiving
   MTA (gateway) is a voice mail only system, without even the
   capability to store text.  In this case, the gateway, acting as the
   receiving MTA, will reject the message, generating a DSN with the
   status code 5.6.1, "Media not supported".

13.2. Disaggregated Content Gateway

   For this example, we will examine the processing of a three-part
   message.  The first part is a text annotation of the second part, an
   audio message.  The third part is the sender's vCard.  The sender
   marks the first and second parts REQUIRED.  In addition, the sender
   marks the message for read receipt.

   For the purposes of example, the telephone user interface (TUI) does
   not perform text-to-speech conversion.  A TUI is a mail user agent
   (UA) that uses DTMF touch-tone digits for input and audio for output
   (display).

   The TUI is unable to render the first part of the message, the text
   part.  In addition, it is unable to render the third part of the
   message, the vCard part.  Since the sender did not mark the third
   part of the message REQUIRED, the system ignores the failure of the
   TUI to render the third part of the message.  However, since the
   sender did mark the first part REQUIRED, and the TUI is unable to
   render text, the message fails.

   What happens next is implementation dependent.  If the TUI is part of
   a unified messaging system, a reasonable action is to hold the
   message for the user.  The user can access the message at a later
   time from a terminal that can render all of the critical body parts.
   It would be reasonable for the TUI to notify the user about the
   undeliverable body part.

   If the TUI is part of a voice messaging system, or if the user does
   not subscribe to a text-to-speech service, a reasonable action is for
   the TUI to return a MDN with the disposition "failed" and the failure
   modifier "5.6.1 (Media not supported)".






Burger                      Standards Track                    [Page 17]

RFC 3459           Critical Content of Internet Mail        January 2003


14. OPES Considerations

   Critical Content processing is not a web service.  However, some in
   the Internet community may draw parallels between web services that
   modify content and an e-mail, SIP, or other MIME-transport service
   that modifies content.

   This section will analyze the Critical Content protocol machinery
   against the requirements stated in RFC 3238 [4].  The summary is that
   the protocol described in this document meets all of the requirements
   of RFC 3238.

14.1. Consideration (2.1): One-Party Consent

   This is the heart of Critical Content.  Critical Content enables the
   sending party to give consent to have the message modified. Gateways
   that conform to this document will ensure that gateways only modify
   messages that the sending party has given consent to modify.

14.2. Consideration (2.2): IP-layer Communications

   The content gateway is an addressable IP-entity.  Moreover, all of
   the relevant protocols (SMTP, SIP, HTTP, etc.) all explicitly make
   the presence of the gateway known to the endpoints.

14.3. Consideration (3.1): Notification - Sender

   Again, this is the point of this document.  The sender explicitly
   gets notification if the gateway would remove a Critical Content body
   part.

14.4. Consideration (3.2): Notification - Receiver

   The nature of the receiving system dictates that end users understand
   that the messages have been changed.

14.5. Consideration (3.3): Non-Blocking

   By definition, the endpoint cannot receive non-modified content, so
   this requirement does not apply.

14.6. Consideration (4.1): URI Resolution

   Clearly, one is sending mail (SMTP), a message (SIP), or fetching a
   document (HTTP).  The machinery described in this document does not
   alter the content itself or the access mechanism.  Thus it is
   compliant with this requirement.




Burger                      Standards Track                    [Page 18]

RFC 3459           Critical Content of Internet Mail        January 2003


14.7. Consideration (4.2): Reference Validity

   Since the protocol described in this document does not alter the
   content itself, inter- and intra-document references are not altered.
   However, intra-document references to removed body parts will fail.
   On the other hand, the sender explicitly marked those body parts as
   being disposable.  Thus the sender is aware of the possibility the
   parts may not arrive at the receiver.

14.8. Consideration (4.3): Architecture Extensions

   Since the protocol described in this document meets Considerations
   4.1 and 4.2, this requirement does not apply.

14.9. Consideration (5.1): Privacy

   The privacy policy of this protocol is explicit.  In particular, the
   protocol honors end-to-end security.

15. Security Considerations

   Sending UA's can use signatures over critical content indicators to
   ensure the integrity of the indicator.

   The gateway MUST honor signature processing.  In particular, if the
   sending UA marks the signature components REQUIRED, and the endpoint
   cannot do MIME signature processing, the gateway MUST establish an
   appropriate signature mechanism between the gateway and the endpoint.
   In this case, the gateway must be secure, as it can become a target
   point for tampering with the signed components of the message.

   Receiving systems and users should not place any authentication value
   on the Handling parameter.

   Note that by design, and under the sending user's request, a content
   gateway will silently delete unimportant body parts. Critical content
   gives the sender the ability to determine the acceptable level
   integrity of the delivered message.  That is, the message as the
   content gateway actually passes it on is, in fact, representative of
   the sender's intentions.

16. IANA Considerations

   RFC 3204 already registered the Handling parameter.  It is collected
   here only for reference and as a placeholder for use both for further
   expansion in the future and as the normative reference for other
   documents that need to reference the Handling parameter.




Burger                      Standards Track                    [Page 19]

RFC 3459           Critical Content of Internet Mail        January 2003


   Per section 9 of [6], here is the IANA registration for Handling.

   To: IANA@IANA.ORG Subject: Registration of new Content-Disposition
   parameter

   Content-Disposition parameter name: HANDLING

   Allowable values for this parameter: REQUIRED OPTIONAL

   Description: Marks the body part as required for delivery (REQUIRED)
   or can be silently discarded (OPTIONAL).  See RFC <this document> and
   RFC 3204.

   Per RFC 2183, the Content-Disposition parameter name is not case
   sensitive.  Per RFC 3459, the values of the parameter are also not
   case sensitive.

17. References

17.1 Normative References

   [1]  Bradner, S., "The Internet Standards Process -- Revision 3", BCP
        9, RFC 2026, October 1996.

   [2]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [3]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
        Peterson, P., Sparks, R., Handley, M. and E. Schooler, "SIP:
        Session Initiation Protocol", RFC 3261, June 2002.

   [4]  IAB, Floyd, S. and L. Daigle,  "IAB Architectural and Policy
        Considerations for Open Pluggable Edge Services", RFC 3238,
        January 2002.

   [5]  Zimmerer, E., Peterson, E., Vemuri, A., Ong, L., Audet, F.,
        Watson, M. and M. Zonoun, "MIME media types for ISUP and QSIG
        Objects", RFC 3204, December 2001.

   [6]  Troost, R., Dorner, S. and K. Moore, Ed., "Communicating
        Presentation Information in Internet Messages: The Content-
        Disposition Header Field", RFC 2183, August 1997.

   [7]  Crocker, D. and P. Overell, Eds., "Augmented BNF for Syntax
        Specifications: ABNF", RFC 2234, November 1997.






Burger                      Standards Track                    [Page 20]

RFC 3459           Critical Content of Internet Mail        January 2003


   [8]  Moore, K., "Simple Mail Transfer Protocol (SMTP) Service
        Extension for Delivery Status Notifications (DSNs)", RFC 3461,
        January 2003.

   [9]  Moore, K. and G. Vaudreuil, "An Extensible Message Format for
        Delivery Status Notifications", RFC 3464, January 2003.

   [10] Fajman, R., "An Extensible Message Format for Message
        Disposition Notifications", RFC 2298, March 1998.

   [11] Galvin, J., Murphy, S., Crocker, S. and N. Freed, "Security
        Multiparts for MIME: Multipart/Signed and Multipart/Encrypted",
        RFC 1847, October 1995.

   [12] Freed, N., "Gateways and MIME Security Multiparts", RFC 2480,
        January 1999.

   [13] Vaudreuil, G., "Enhanced Mail System Status Codes", RFC 3463,
        January 2003.

   [14] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
        Extensions (MIME) Part One: Format of Internet Message Bodies",
        RFC 2045, November 1996.

   [15] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
        Extensions (MIME) Part Two: Media Types", RFC 2046, November
        1996.

   [16] Vaudreuil, G. and G. Parsons, "Voice Profile for Internet Mail -
        version 2", RFC 2421, September 1998.

   [17] Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay): Mapping
        between X.400 and RFC 822/MIME", RFC 2156, January 1998.

   [18] Klensin, J., Ed., "Simple Mail Transfer Protocol", RFC 2821,
        April 2001.

   [19] Crocker, D., "Standard for the Format of ARPA Internet Text
        Messages", RFC 822, August 1982.

17.2 Informative Reference

   [20] Dawson, F. and T. Howes, "vCard MIME Directory Profile", RFC
        2426, September 1998.







Burger                      Standards Track                    [Page 21]

RFC 3459           Critical Content of Internet Mail        January 2003


18. Acknowledgments

   Emily Candell of Comverse Network Systems was instrumental in helping
   work out the base issues in the -00 document in Adelaide.

   Ned Freed pointed out that this mechanism was about criticality, not
   notification.  That insight made the concept and descriptions
   infinitely more straightforward.  If it's still confusing, it's my
   fault!

   Ned Freed also was instrumental in crafting the sections on
   multipart/signed and multipart/encrypted.  As AD, he provided
   invaluable commentary to help progress this document.

   Keith Moore for helped tighten-up the explanations, and he approved
   of the use of Content-Disposition.

   Dropping the IMPORTANT critical content type took away one of the
   reasons for partial non-delivery notification.  That makes Jutta
   Degener very happy!

   Harald Alvestrand and Chris Newman suggested some implementation
   examples.

   Greg White asked THE key question that let us realize that critical
   content processing was a gateway function, and not a MTA or UA
   function.

   Jon Peterson cleared up how handling actually does work in the SIP
   environment.

   An enormous thank you to Michelle S. Cotton at IANA for helping me
   craft the original IANA Considerations section in 2000, and for
   catching the functional overlap with RFC 3204 in January 2002.

   Any errors, omissions, or silliness are my fault.















Burger                      Standards Track                    [Page 22]

RFC 3459           Critical Content of Internet Mail        January 2003


19. Intellectual Property Rights Notice

   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 implementers 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 that may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.

20. Author's Address

   Eric Burger
   SnowShore Networks, Inc.
   285 Billerica Rd.
   Chelmsford, MA  01824-4120
   USA

   Phone: +1 978 367 8400
   Fax:   +1 603 457 5944
   EMail: e.burger@ieee.org


















Burger                      Standards Track                    [Page 23]

RFC 3459           Critical Content of Internet Mail        January 2003


21.  Full Copyright Statement

   Copyright (C) The Internet Society (2003).  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.

Acknowledgement

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



















Burger                      Standards Track                    [Page 24]


Html markup produced by rfcmarkup 1.109, available from https://tools.ietf.org/tools/rfcmarkup/