Session Initiation ProtocolNetwork Working Group E. Burger, Ed.Internet-DraftRequest for Comments: 4483 Brooktrout Technology, Inc.Expires:Category: Standards Track April25, 2005 October 25, 20042006 A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messagesdraft-ietf-sip-content-indirect-mech-05Status ofthisThis Memo This documentisspecifies anInternet-Draft and is subject to all provisions of section 3 of RFC 3667. By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she become aware will be disclosed, in accordance with RFC 3668. Internet-Drafts are working documents ofInternet standards track protocol for the InternetEngineering Task Force (IETF), its areas,community, andits working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents validrequests discussion and suggestions fora maximumimprovements. Please refer to the current edition ofsix monthsthe "Internet Official Protocol Standards" (STD 1) for the standardization state andmay 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 liststatus ofcurrent Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The listthis protocol. Distribution ofInternet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on April 25, 2005.this memo is unlimited. Copyright Notice Copyright (C) The Internet Society(2004).(2006). Abstract This document defines an extension to the URL MIME External-Body Access-Type to satisfy the content indirection requirements forSIP.the Session Initiation Protocol (SIP). These extensions are aimed at allowing any MIME part in a SIP message to be referred to indirectly via a URI.Burger Expires April 25, 2005 [Page 1] Internet-Draft Content Indirection in SIP Messages October 2004Table of Contents 1.Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 2.Introduction. . . . . . . . . . . . . . . . . . . . . . . . 3....................................................2 2. Terminology .....................................................3 3.ExampleUseCases . . . . . . . . . . . . . . . . . . . . . 4 3.1Case Examples ...............................................3 3.1. Presence Notification. . . . . . . . . . . . . . . . . . 4 3.2......................................4 3.2. Document Sharing. . . . . . . . . . . . . . . . . . . . . 5...........................................4 4. Requirements. . . . . . . . . . . . . . . . . . . . . . . . 6....................................................5 5. Application ofRFC2017RFC 2017 to the Content Indirection Problem. 7 5.1......6 5.1. SpecifyingsupportSupport forcontent indirection . . . . . . . . 7 5.2Content Indirection .................6 5.2. Mandatory support for HTTP URI. . . . . . . . . . . . . . 7 5.3.............................6 5.3. Rejectingcontent indirection . . . . . . . . . . . . . . 7 5.4Content Indirection ..............................7 5.4. Specifying thelocationLocation of thecontentContent via a URI. . . . . 8 5.5...........7 5.5. Markingindirect content optional . . . . . . . . . . . . 8 5.6Indirect Content Optional ..........................7 5.6. Specifyingversioning informationVersioning Information for the URI. . . . . . 8 5.7..............7 5.7. Specifying thelifetime of theURI. . . . . . . . . . . . 9 5.8Lifetime ................................8 5.8. Specifying the type of theindirect content . . . . . . . 9 5.9Indirect Content ................8 5.9. Specifying thesizeSize of theindirect content . . . . . . . 10 5.10Indirect Content ................9 5.10. Specifying thepurposePurpose of theindirect content . . . . . 10 5.11Indirect Content ............9 5.11. SpecifyingmultipleMultiple URIs forcontent indirection . . . . 10 5.12Content Indirection ..........9 Burger Standards Track [Page 1] RFC 4483 Content Indirection in SIP Messages April 2006 5.12. Specifying ahash valueHash Value for theindirect content . . . . 11 5.13Indirect Content .........10 5.13. Supplyingadditional commentsAdditional Comments about theindirect content . . . . . . . . . . . . . . . . . . . . . . . . 12 5.14Indirect Content ..................................................10 5.14. Relationship to Call-Info, Error-Info, and Alert-Info Headers. . . . . . . . . . . . . . . . . . . . . . . . 12.......................................11 6. Examples. . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.1.......................................................11 6.1. Single Content Indirection. . . . . . . . . . . . . . . . 13 6.2................................11 6.2. Multipart MIME with Content Indirection. . . . . . . . . 13...................12 7. Security Considerations. . . . . . . . . . . . . . . . . . 14........................................12 8.IANA Considerations . . . . . . . . . . . . . . . . . . . . 16 9.Contributions. . . . . . . . . . . . . . . . . . . . . . . 16 10...................................................14 9. Acknowledgements. . . . . . . . . . . . . . . . . . . . . . 16 11................................................14 10. References. . . . . . . . . . . . . . . . . . . . . . . . . 17 11.1....................................................15 10.1. Normative References. . . . . . . . . . . . . . . . . . . 17 11.2.....................................15 10.2. InformativeReferences . . . . . . . . . . . . . . . . . . 17 Author's Address . . . . . . . . . . . . . . . . . . . . . . 18 Intellectual Property and Copyright Statements . . . . . . . 19 Burger Expires April 25, 2005 [Page 2] Internet-Draft Content Indirection in SIP Messages October 2004Reference ....................................15 1.Terminology RFC 2119 [5] defines the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL". 2.Introduction The purpose of the Session Initiation Protocol [9] (SIP) is to create, modify, or terminate sessions with one or more participants. SIP messages, like HTTP, are syntactically composed of a start line, one or more headers, and an optional body. Unlike HTTP, SIP is not designed as a general-purpose data transport protocol. There are numerous reasons why it might be desirable toindirectlyspecify the content of the SIP messagebody.body indirectly. Forbandwidth limitedbandwidth-limited applications such as cellular wireless, indirection provides a means to annotate the (indirect) content withmeta-datameta-data, which may be used by the recipient to determine whether or not to retrieve the content over theresource limitedresource-limited link. It is also possible that the content size to be transferred might potentially overwhelm intermediate signaling proxies, thereby unnecessarily increasing network latency. For time-sensitive SIP applications, this may be unacceptable. Indirect content can remedy this by moving the transfer of this content out of the SIP signaling network and into a potentially separate data transfer channel. There may also be scenarios where thesession relatedsession-related data (body) that needs to be conveyed does not directly reside on the endpoint or User Agent. In such scenarios, it is desirable to have a mechanism whereby the SIP message can contain an indirect reference to the desired content. The receiving party would then use this indirect reference to retrieve the content via a non-SIP transfer channel such as HTTP, FTP, or LDAP. The purpose of content indirection is purely to provide an alternative transport mechanism for SIP MIME body parts. With the exception of the transport mechanism, indirect body parts areequivalent, and should have the same treatment, asBurger Standards Track [Page 2] RFC 4483 Content Indirection in SIP Messages April 2006 equivalent to, and should have the same treatment as, in-line body parts. Previous attempts at solving the content indirection problem made use of the text/uri-list [6] MIME type. While attractive for its simplicity (a list of URIs delimited by end-of-line markers), it failed to satisfy a number of the requirements for a moregeneral-purposegeneral- purpose content indirection mechanism in SIP. Most notably lacking is the ability to specify various attributes on a per-URIBurger Expires April 25, 2005 [Page 3] Internet-Draft Content Indirection in SIP Messages October 2004basis. These attributes might include version information, the MIME type of the referenced content, etc.In searchingRFC 2017 defines a strong candidate for a replacement for the text/uri-list MIMEtype, RFC2017 defines a strong candidate. RFC2017type. RFC 2017 [1] defines an extension to the message/external-body MIME type originally defined in RFC2046 [3]. The extension thatRFC2017RFC 2017 makesis to allowallows a generic URI to specify the location of the content rather thanprotocol specificprotocol-specific parameters for FTP,etc.etc., as originally defined in RFC2046.While providingAlthough it provides most of the functionality needed for a SIP content indirection mechanism,RFC2017RFC 2017 by itself is not a complete solution. This document specifies the usage ofRFC2017RFC 2017 necessary to fulfill the requirements outlined for content indirection. The requirements can be classified as applying either to the URI, which indirectly references the desired content, or to the content itself. Where possible, existing MIME parameters and entity headers are used to satisfy those requirements. MIME (Content-Type) parameters are the preferred manner of describing theURIURI, while entity headers are the preferred manner of describing the (indirect) content. See RFC 2045 [2] for a description of most of these entity headers and MIME parameters. 2. Terminology RFC 2119 [5] defines the keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL". 3.ExampleUseCasesCase Examples There are severalexample usersexamples of using such a content indirection mechanism. These are examples only and are not intended to limit the scope or applicability of the mechanism.3.1Burger Standards Track [Page 3] RFC 4483 Content Indirection in SIP Messages April 2006 3.1. Presence Notification The information carried in a presence document could potentially exceed the recommended size for a SIP (NOTIFY) request, particularly if the document carries aggregated information from multiple endpoints. In such a situation, it would be desirable to send the NOTIFY request with an indirect pointer to the presencedocumentdocument, which could then be retrieved by, for example, HTTP.Burger Expires April 25, 2005 [Page 4] Internet-Draft Content Indirection in SIP Messages October 2004Watcher Presence Server | | | SUBSCRIBE | |-------------------------->| | 200 OK | |<--------------------------| | | | NOTIFY | |-------------------------->| | 200 OK | |<--------------------------| | | | NOTIFY (w/URI) | |<--------------------------| | 200 | |-------------------------->| | | | HTTP GET | |-------------------------->| | | | application/cpim-pidf+xml | |<--------------------------| | | In this example, the presence server returns an HTTP URI pointing to a presence document on the presenceserverserver, which the watcher can then fetch by using an HTTP GET.3.23.2. Document Sharing During an instant messaging conversation, a useful service is documentsharingsharing, wherein one party sends an IM (MESSAGE request) with an indirect pointer to a documentwhichthat is meant to be rendered by the remote party. Carrying such a document directly in the MESSAGE request is not appropriate for most documents. Furthermore, the document to be shared may reside on a completely independent server from that of the originating party. BurgerExpires April 25, 2005Standards Track [Page5] Internet-Draft4] RFC 4483 Content Indirection in SIP MessagesOctober 2004April 2006 UAC UAS Web Server (User Agent (User Agent | Client) Server) | | | | | MESSAGE w/URI | | |------------------->| | | 200 | | |<-------------------| | | | | | | HTTP GET | | |--------------->| | | image/jpeg | | |<---------------| | | | In this example, a user UAC wishes to exchange a JPEG image that she has stored on her web server withanotheruser UAS with whom she has an IMconversation with.conversation. She intends to render the JPEG inline in the IM conversation. The recipient of the MESSAGE request launchesaan HTTP GET request to the web server to retrieve the JPEG image. 4. Requirements o It MUST be possible to specify the location of content via a URI. Such URIs MUST conform with RFC2396[7] or its successors, such as [13].[7]. o It MUST be possible to specify the length of the indirect content. o It MUST be possible to specify the type of the indirect content. o It MUST be possible to specify the disposition of each URI independently. o It MUST be possible to label each URI to identify if and when the content referred to by that URI has changed. Applications of this mechanism may send the same URI more than once. The intention of this requirement is to allow the receiving party to determineifwhether the content referenced by the URI haschangedchanged, without having toactuallyretrieve that content.ExampleExamples of ways the URI could be labeled include a sequence number, timestamp, and versionnumber, etc.number. When used with HTTP, the entity-tag (ETAG)mechanismmechanism, as defined in RFC2068[4][4], may be appropriate. Note that we arenotlabeling not the URIitself,itself but the content to which the URI refers, and that the label is therefore effectively "metadata" of the content itself. o It MUST be possible to specify the time span for which a given URI is valid. This may or may not be the same as the lifetime for the Burger Standards Track [Page 5] RFC 4483 Content Indirection in SIP Messages April 2006 content itself. o It MUST be possible for the UAC and the UAS to indicate support of this content indirection mechanism. A fallback mechanism SHOULD be specified in the event that one of the parties is unable to support content indirection.Burger Expires April 25, 2005 [Page 6] Internet-Draft Content Indirection in SIP Messages October 2004o It MUST be possible for the UAC and UAS to negotiate the type of the indirect content when using the content indirection mechanism. o It MUST be possible for the UAC and UAS to negotiate support for any URIscheme(s)scheme to be used in the content indirection mechanism. This is in addition to the ability to negotiate the content type. o It SHOULD be possible to ensure the integrity and confidentiality of the URI when it is received by the remote party. o It MUST be possible to process the content indirection without human intervention. o It MUST allow for indirect transference of content in any SIP message that would otherwise carry that content as a body. 5. Application ofRFC2017RFC 2017 to the Content Indirection Problem The following text describes the application ofRFC2017RFC 2017 to the requirements for content indirection.5.15.1. SpecifyingsupportSupport forcontent indirectionContent Indirection A UAC/UAS indicates support for content indirection by including the message/external-body MIME type in the Accept header. The UAC/UAS MAY supply additional values in the Accept header to indicate the content types that it is willing to accept, either directly or through content indirection. User-Agents supporting content indirection MUST support content indirection of the application/sdp MIME type. For example: Accept: message/external-body, image/*, application/sdp5.25.2. Mandatory support for HTTP URI Applicationswhichthat use this content indirection mechanism MUST support the HTTP URI scheme. Additional URI schemes MAY be used, but a UAC/UAS MUST support receiving a HTTP URI for indirect content if it advertises support for content indirection. Burger Standards Track [Page 6] RFC 4483 Content Indirection in SIP Messages April 2006 The UAS MAY advertise alternate access schemes in the schemes parameter of the Contact header in the UAS response to the UAC's session establishment request (e.g., INVITE,SUBSCRIBE, etc.),SUBSCRIBE), as described inApplication InteractionRFC 3840 [11].5.35.3. Rejectingcontent indirectionContent Indirection If a UAS receives a SIP requestwhichthat contains a content indirectionBurger Expires April 25, 2005 [Page 7] Internet-Draft Content Indirection in SIP Messages October 2004 payload,payload and the UAS cannot or does not wish to support such a content type, it MUST reject the request with a 415 Unsupported Media Type response as defined in section 21.4.13 of SIP[9][9]. In particular, the UAC should note the absence of the message/external-body MIME type in the Accept header of this response to indicate that the UAS does not support content indirection, or the absence of the particular MIME type of the requested comment to indicate that the UAS does not support the particular media type.5.45.4. Specifying thelocationLocation of thecontentContent via a URI The URI for the indirect content is specified in a "URI" parameter of the message/external-body MIME type. An access-type parameter indicates that the external content is referenced by a URI. HTTP URI specifications MUST conform toRFC2396 [7] or its successors [13].RFC 2396 [7]. For example: Content-Type: message/external-body; access-type="URL"; URL="http://www.example.com/the-indirect-content"5.55.5. Markingindirect content optionalIndirect Content Optional Some content is not critical to the context of the communication if there is a fetch or conversion failure. The content indirection mechanism uses the Critical-Content mechanism described inRFC3459RFC 3459 [10]. In particular, if the UAS is unable to fetch or render an optional body part, then the server MUST NOT return an error to the UAC.5.65.6. Specifyingversioning informationVersioning Information for the URI In order to determine whetheror notthe content indirectly referenced by the URI has changed, a Content-ID entity header is used. The syntax of this header is defined inRFC2045RFC 2045 [2]. Changes in the underlying content referred to by a URI MUST result in a change in theContent-IDContent- ID associated with that URI. Multiple SIP messages carryingURIURIs that refer to the same content SHOULD reuse the sameContent-IDContent-ID, to allow the receiver to cache this content and to avoid unnecessary retrievals. The Content-ID is intended to be globally unique and Burger Standards Track [Page 7] RFC 4483 Content Indirection in SIP Messages April 2006 SHOULD be temporally unique across SIP dialogs. For example:Burger Expires April 25, 2005 [Page 8] Internet-Draft Content Indirection in SIP Messages October 2004Content-ID: <4232423424@www.example.com>5.75.7. Specifying thelifetime of theURI Lifetime The URI supplied by in Content-Type header is not required to be accessible or valid for an indefinite period of time. Rather, the supplier of the URI MUST specify the time period for which this URI is valid and accessible. This is done through an "EXPIRATION" parameter of the Content-Type. The format of this expiration parameter is aRFC1123RFC 1123 date-time value. This is further restricted in this application to use only GMT time, consistent with the Date: header in SIP. This is a mandatory parameter. Note that thedate-timedate- time value can range from minutes to days or even years. For example: Content-Type: message/external-body; expiration="Mon, 24 June 2002 09:00:00 GMT"5.85.8. Specifying the type of theindirect contentIndirect Content To support existing SIP mechanisms for the negotiation of content types, a Content-Type entity header SHOULD be present in the entity (payload) itself. If the protocol (scheme) of the URI supports its own content negotiation mechanisms(e.g.(e.g., HTTP), this header may be omitted. The senderMUST howeverMUST, however, be prepared for the receiving party to reject content indirection if the receiver is unable to negotiate an appropriate MIME type by using the underlying protocol for the URI scheme. For example: Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/the-indirect-content" <CRLF> Content-Type: application/sdp Content-Disposition: session <CRLF> BurgerExpires April 25, 2005Standards Track [Page9] Internet-Draft8] RFC 4483 Content Indirection in SIP MessagesOctober 2004 5.9April 2006 5.9. Specifying thesizeSize of theindirect contentIndirect Content When known in advance, the size of the indirect content SHOULD be supplied via a size parameter on the Content-Type header. This is an extension ofRFC2017RFC 2017 but is in line with other access types defined for the message/external-body MIME type inRFC2046.RFC 2046. The content size is useful for the receiving party to make a determination about whetheror notto retrieve the content. As with directly supplied content, a UAS may return a 513 error response in the event that the content size is too large. This is an optional parameter. For example: Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/the-indirect-content"; size=41235.105.10. Specifying thepurposePurpose of theindirect contentIndirect Content A Content-Disposition entity header MUST be present for all indirect content. For example: Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/the-indirect-content" <CRLF> Content-Type: image/jpeg Content-Disposition: render5.115.11. SpecifyingmultipleMultiple URIs forcontent indirectionContent Indirection If there is a need to send multiple URIs forthe purpose ofcontent indirection, an appropriate multipart MIME type [3] should be used. Each URI MUST be contained in a single entity. Indirect content may be mixed withdirectly supplieddirectly-supplied content. This is particularly useful with the multipart/alternative MIME type. NOTE: This specification does not change the meanings of the various multipart flavors, particularly multipart/related, as described inRFC2387RFC 2387 [12]. BurgerExpires April 25, 2005Standards Track [Page10] Internet-Draft9] RFC 4483 Content Indirection in SIP MessagesOctober 2004April 2006 For example: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=boundary42 --boundary42 Content-Type: text/plain; charset=us-ascii The company announcement for June, 2002 follows: --boundary42 Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/announcements/07242002"; size=4123 Content-Type: text/html Content-Disposition: render --boundary42--5.125.12. Specifying ahash valueHash Value for theindirect contentIndirect Content If the sender knows the specific content being referenced by the indirection, and if the sender wishes the recipient to be able to validate that this content has not been altered from that intended by the sender, the sender includes a SHA-1 [8] hash of the content. If it is included, the hash is encoded by extending the MIME syntax [3] to include a "hash" parameter for the content type"message/external-body", the"message/ external-body", whose valueof whichis a hexadecimal encoding of the hash. For example: Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/the-indirect-content.au"; size=52723; hash=10AB568E91245681AC1B <CRLF> Content-Disposition: renderBurger Expires April 25, 2005 [Page 11] Internet-Draft Content Indirection in SIP Messages October 2004 5.135.13. Supplyingadditional commentsAdditional Comments about theindirect contentIndirect Content One MAY use the Content-Description entity header to provide optional, freeform text to comment on the indirect content. This text MAY be displayed to the end user but MUST NOT used by other elements to determine the disposition of the body. Burger Standards Track [Page 10] RFC 4483 Content Indirection in SIP Messages April 2006 For example: Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/the-indirect-content"; size=52723 <CRLF> Content-Description: Multicast gaming session Content-Disposition: render5.145.14. Relationship to Call-Info, Error-Info, and Alert-Info Headers SIP [9] defines three headers that supply additional information with regard to a session, a particular error response, or alerting. All three of these headers allow the UAC or UAS to indicate additional information through a URI. They may be considered a form of content indirection. The content indirection mechanism defined in this document is not intended as a replacement for these headers. Rather, the headers defined in SIP MUST be used in preference to thismechanismmechanism, whereapplicableapplicable, because of the well-defined semantics of those headers. 6. ExamplesBurger Expires April 25, 2005 [Page 12] Internet-Draft Content Indirection in SIP Messages October 2004 6.16.1. Single Content Indirection INVITE sip:boromir@example.com SIP/2.0 From: <sip:gandalf@example.net>;tag=347242 To: <sip:boromir@example.com> Call-ID: 3573853342923422@example.net CSeq: 2131 INVITE Accept: message/external-body application/sdp Content-Type: message/external-body; ACCESS-TYPE=URL; URL="http://www.example.net/party/06/2002/announcement"; EXPIRATION="Sat, 20 Jun 2002 12:00:00 GMT"; size=231 Content-Length: ... Content-Type: application/sdp Content-Disposition: session Content-ID: <4e5562cd1214427d@example.net>6.2 Multipart MIME with Content IndirectionBurgerExpires April 25, 2005Standards Track [Page13] Internet-Draft11] RFC 4483 Content Indirection in SIP MessagesOctober 2004April 2006 6.2. Multipart MIME with Content Indirection MESSAGE sip:boromir@example.com SIP/2.0 From: <sip:gandalf@example.net>;tag=34589882 To: <sip:boromir@example.com> Call-ID: 9242892442211117@example.net CSeq: 388 MESSAGE Accept: message/external-body, text/html, text/plain, image/*, text/x-emoticon MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=zz993453 --zz993453 Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.net/company_picnic/image1.png"; size=234422 Content-Type: image/png Content-ID: <9535035333@example.net> Content-Disposition: render Content-Description: Kevin getting dunked in the wading pool --zz993453 Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.net/company_picnic/image2.png"; size=233811 Content-Type: image/png Content-ID: <1134299224244@example.net> Content-Disposition: render Content-Description: Peter on his tricycle --zz993453-- 7. Security Considerations Any content indirection mechanism introduces additional security concerns. By its nature, content indirection requires an extra processing step and information transfer. There are a number of potential abuses of a content indirection mechanism: Burger Standards Track [Page 12] RFC 4483 Content Indirection in SIP Messages April 2006 o Content indirection allows the initiator to choose an alternative protocol with weaker security or known vulnerabilities for theBurger Expires April 25, 2005 [Page 14] Internet-Draft Content Indirection in SIP Messages October 2004contenttransfer. Fortransfer (for example, asking the recipient to issue an HTTP request that results in a Basic authenticationchallenge.challenge). o Content indirection allows the initiator to ask the recipient to consume additional resources in the information transfer and content processing, potentially creating an avenue fordenial ofdenial-of- serviceattacks. Forattacks (for example, an active FTP URL consuming 2 connections for every indirect contentmessage.message). o Content indirection could be used as a form ofport scanningport-scanning attack where the indirect content URL is actually a bogus URL pointing to an internal resource of the recipient. The response to the content indirection request could reveal information about open (and vulnerable) ports on these internal resources. o A content indirection URL can disclose sensitive information about the initiator such as an internal user name (as part of an HTTP URL) or possibly geolocation information. Fortunately, all of these potential threats can be mitigated through careful screening of both the indirect content URIs that are receivedas well asand those that are sent. Integrity and confidentiality protection of the indirect content URI can prevent additional attacks as well. For confidentiality, integrity, and authentication, this content indirection mechanism relies on the security mechanisms outlined inRFC3261.RFC 3261. In particular, the usage of S/MIME as defined in section 23 ofRFC3261RFC 3261 provides the necessary mechanism to ensure integrity, protection, and confidentiality of the indirect content URI and associated parameters. Securing the transfer of the indirect content is the responsibility of the underlying protocol used for this transfer. If HTTP is used, applications implementing this content indirection method SHOULD support the HTTPS URI scheme for secure transfer of content and MUST support the upgrading of connections toTLSTLS, by using starttls. Note that a failure to complete HTTPS or starttls (for example, due tocertcertificate or encryption mismatch) after having accepted the indirect content in the SIP request is not the same as rejecting the SIP request, and it may require additional user-user communication for correction. Note that this document does not advocate the use of transitive trust. That is, just because the UAS receives a URI from a UAC that the UAS trusts, the UAS SHOULD NOT implicitly trust the object referred to by the URI without establishing its own trust Burger Standards Track [Page 13] RFC 4483 Content Indirection in SIP Messages April 2006 relationship with the URI provider. Access control to the content referenced by the URI is not defined by this specification. Access control mechanisms may be defined by theBurger Expires April 25, 2005 [Page 15] Internet-Draft Content Indirection in SIP Messages October 2004protocol for the scheme of the indirect content URI. If the UAC knows the content in advance, the UAC SHOULD include a hash parameter in the content indirection. The hash parameter is a hexadecimal-encoded SHA-1 [8] hash of the indirect content. If a hash value is included, the recipient MUST check the indirect content against that hash and indicate any mismatch to the user. In addition, if the hash parameter isincluded,included and the target URI involves setting up a security context using certificates, the UAS MUST ignore the results of the certificate validation procedure, and instead verify that the hash of the (canonicalized) content received matches the hash presented in the content-indirection hash parameter. If the hash parameter is NOT included, the sender SHOULD use only schemes that offer message integrity (such as https:). When the hash parameter is not included and security using certificates is used, the UAS MUST verify any servercertificatescertificates, by using the UAS's list of trusted top-level certificate authorities. If hashing of indirect content is not used, thepossibility exists that thecontent returned to the recipient by exercise of the indirectionhasmight have been altered from that intended by the sender. 8.IANA Considerations This document raises no new IANA considerations. 9.Contributions Sean Olson, seanol@microsoft.com, provided the vast majority of the content of this document, including editorship through the first IESG review. Dean Willis touched it next. Eric Burger edited the document and addressed IESG comments, including the access protocol negotiation mechanism.10.9. Acknowledgements Cullen Jennings and Nancy Greene provided a through review and valuable comments and suggestions.11. ReferencesBurgerExpires April 25, 2005Standards Track [Page16] Internet-Draft14] RFC 4483 Content Indirection in SIP MessagesOctober 2004 11.1April 2006 10. References 10.1. Normative References [1] Freed, N. and K. Moore, "Definition of the URL MIMEExternal-BodyExternal- Body Access-Type", RFC 2017, October 1996. [2] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996. [3] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996. [4] Fielding, R., Gettys, J., Mogul, J., Nielsen,H.H., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068, January 1997. [5] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [6] Daniel, R., "A Trivial Convention for using HTTP in URN Resolution", RFC 2169, June 1997. [7] Berners-Lee, T., Fielding,R.R., and L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", STD 66, RFC2396, August 1998.3986, January 2005. [8] Eastlake, D. and P. Jones, "US Secure Hash Algorithm 1 (SHA1)", RFC 3174, September 2001. [9] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley,M.M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [10] Burger, E., "Critical Content Multi-purpose Internet Mail Extensions (MIME) Parameter", RFC 3459, January 2003. [11] Rosenberg, J.,"A Framework for Application InteractionSchulzrinne, H., and P. Kyzivat, "Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)",draft-ietf-sipping-app-interaction-framework-02 (work in progress), JulyRFC 3840, August 2004.11.210.2. InformativeReferencesReference [12] Levinson, E., "The MIME Multipart/Related Content-type", RFC 2387, August 1998.[13] Berners-Lee, T., Fielding, R. and L. Masinter, "UniformBurgerExpires April 25, 2005Standards Track [Page17] Internet-Draft15] RFC 4483 Content Indirection in SIP MessagesOctober 2004 Resource Identifier (URI): Generic Syntax", draft-fielding-uri-rfc2396bis-06 (work in progress), July 2004.April 2006 Author's Address Eric Burger (editor) Brooktrout Technology, Inc. EMail: eburger@brooktrout.com URI: http://www.brooktrout.com BurgerExpires April 25, 2005Standards Track [Page18] Internet-Draft16] RFC 4483 Content Indirection in SIP MessagesOctober 2004April 2006 Full Copyright Statement Copyright (C) The Internet Society (2006). 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 PropertyStatementThe 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-ipr@ietf.org.Disclaimer of Validity 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. 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. AcknowledgmentAcknowledgement Funding for the RFC Editor function iscurrentlyprovided by theInternet Society.IETF Administrative Support Activity (IASA). BurgerExpires April 25, 2005Standards Track [Page19]17]