SIPPING G. Camarillo Internet-Draft Ericsson Expires: August 29, 2006 February 25, 2006 A Document Format for Expressing Consent draft-camarillo-sipping-consent-format-00.txt Status of this Memo 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 becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 29, 2006. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document defines an Extensible Markup Language (XML) format for expressing consent. A permission document written in this format gives a relay permission to perform a particular translation, which is described in the document. Camarillo Expires August 29, 2006 [Page 1] Internet-Draft Permission Document Format February 2006 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Permission Document Structure . . . . . . . . . . . . . . . . 3 3.1. Conditions . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1.1. Identity Condition . . . . . . . . . . . . . . . . . . 4 3.1.2. Sender Condition . . . . . . . . . . . . . . . . . . . 4 3.1.3. Target Condition . . . . . . . . . . . . . . . . . . . 7 3.2. Actions . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.1. Translation Handling . . . . . . . . . . . . . . . . . 7 4. Example Document . . . . . . . . . . . . . . . . . . . . . . . 7 5. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 9.1. Normative References . . . . . . . . . . . . . . . . . . . 10 9.2. Informative References . . . . . . . . . . . . . . . . . . 10 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11 Intellectual Property and Copyright Statements . . . . . . . . . . 12 Camarillo Expires August 29, 2006 [Page 2] Internet-Draft Permission Document Format February 2006 1. Introduction The framework for consent-based communications in SIP [7] identifies the need for a format to create permission documents. Such permission documents give (or deny) SIP [3] relays permission to perform translations. A relay is defined as any SIP server, be it a proxy, B2BUA (Back-to-Back User Agent), or some hybrid, which receives a request and translates the request URI into one or more next hop URIs to which it then delivers a request. The format for permission documents specified in this document is based on the XML document format for expressing Privacy Preferences [8]. 2. Terminology In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 [1] and indicate requirement levels for compliant implementations. Recipient URI: The request-URI of an outgoing request sent by an entity (e.g., a user agent or a proxy). The sending of such request may have been the result of a translation operation. Target URI: The request-URI of an incoming request that arrives to an entity (e.g., a proxy) that will perform a translation operation. Translation operation: Operation by which an entity (e.g., a proxy) translates the request URI of an incoming request (i.e., the target URI) into one or more URIs (i.e., recipient URIs) which are used as the request URIs of one or more outgoing requests. 3. Permission Document Structure A permission document is an XML document, formatted according to the schema defined in [8]. Permission documents inherit the MIME type of common policy documents, 'application/auth-policy+xml'. As described in [8], this document is composed of three parts: conditions, actions, and transformations. This section defines the new conditions and actions defined by this specification. This specification does not define any new transformation. Camarillo Expires August 29, 2006 [Page 3] Internet-Draft Permission Document Format February 2006 3.1. Conditions Note that, as discussed in [8], a permission document applies to a translation if all the expressions in its conditions part evaluate to TRUE. 3.1.1. Identity Condition The identity condition, defined in [8], is matched against the recipient URI of a translation. When performing a translation, a relay matches the identity condition against the destination URI of the outgoing request. When receiving a permission document (e.g., in a PUBLISH request as described in [7], the relay matches the identity condition against the identity of the entity uploading the permission document (e.g., the sender of the PUBLISH request). Although the element is defined in [8], that specification indicates that the specific usages of the framework document need to define details that are protocol and usage specific. In particular, this section defines acceptable means of authentication. The elements and MUST contain a scheme when they appear in a permission document. When used with SIP, a recipient uploading a permission document to a relay is considered authenticated if one of the following techniques is used: SIP Identity [6], as described in [7]. For PUBLISH requests that are authenticated using the SIP Identity mechanism, the identity of the sender of the PUBLISH request is equal to the SIP URI in the From header field of the request, assuming that the signature in the Identity header field has been validated. P-Asserted-Identity [5], as described in [7]. For PUBLISH requests that are authenticated using the P-Asserted-Identity mechanism, the identity of the sender of the PUBLISH request is equal to the P-Asserted-Identity header field of the request. Return Routability Test, as described in [7]. 3.1.2. Sender Condition The sender condition is matched against the URI of the sender of the request that is used as input for a translation. Sender conditions can contain the same elements and attributes as identity conditions. Camarillo Expires August 29, 2006 [Page 4] Internet-Draft Permission Document Format February 2006 When performing a translation, a relay matches the sender condition against the identity of the sender of the incoming request. The following subsections define: acceptable means of authentication. the procedure for representing the identity of the sender as a URI. the procedure for converting an identifier of the form user@domain, present in the 'id' attribute of the and elements, into a URI. 3.1.2.1. Acceptable Means of Authentication When used with SIP, a request sent by a sender is considered authenticated if one of the following techniques is used: SIP Digest the relay authenticates the sender using SIP digest authentication [2]. However, if the anonymous authentication described on page 194 of RFC 3261 [3] is used, the sender is not considered authenticated. Asserted Identity: if a request contains a P-Asserted-ID header field [5] and the request is coming from a trusted element, the sender is considered authenticated. Cryptographically Verified Identity: if a request contains an Identity header field as defined in [6], and it validates the From header field of the request, the request is considered to be authenticated. Note that this is true even if the request contained a From header field of the form sip:anonymous@example.com. As long as the signature verifies that the request legitimately came from this identity, it is considered authenticated. 3.1.2.2. Computing a URI for the Sender For requests that are authenticated using SIP Digest, the identity of the sender is set equal to the user and domain part of the SIP Address of Record (AOR) for the user that has authenticated themselves. For example, consider the following "user record" in a database: SIP AOR: sip:alice@example.com digest username: ali digest password: f779ajvvh8a6s6 digest realm: example.com If the relay receives a request, challenges it with the realm set to Camarillo Expires August 29, 2006 [Page 5] Internet-Draft Permission Document Format February 2006 "example.com", and the subsequent request contains an Authorization header field with a username of "ali" and a digest response generated with the password "f779ajvvh8a6s6", the identity used in matching operations is "sip:alice@example.com". For requests that are authenticated using RFC 3325 [5], the identity of the watcher is equal to the username and domain parts of the SIP URI in the P-Asserted-ID header field. If there are multiple values for the P-Asserted-ID header field (there can be one sip URI and one tel URI [9]), then each of them is used for the comparisons outlined in [8], and if either of them match a or element, it is considered a match. For requests that are authenticated using the SIP Identity mechanism [6], identity of the sender is equal to the SIP URI in the From header field of the request, assuming that the signature in the Identity header field has been validated. SIP also allows for anonymous requests. If a request is anonymous because the digest challenge/response used the "anonymous" username, the request is considered unauthenticated and will not match the condition. If a request is anonymous because it contains a Privacy header field [4], but still contains a P-Asserted-ID header field, the identity in the P-Asserted-ID header field is still used in the authorization computations; the fact that the request was anonymous has no impact on the identity processing. However, if the request had traversed a trust boundary and the P-Asserted-ID header field and the Privacy header field had been removed, the request will be considered unauthenticated when it arrives at the presence server, and thus not match the condition. Finally, if a request contained an Identity header field that was validated, and the From header field contained a URI of the form sip:anonymous@example.com, then the watcher is considered authenticated, and it will have an identity equal to sip:anonymous@example.com. Had such an identity been placed into a or element, there will be a match. 3.1.2.3. Computing a SIP URI from the id Attribute If the or condition does not contain a scheme, conversion of the value in the 'id' attribute to a SIP URI is done trivially. If the characters in the 'id' attribute are valid characters for the user and hostpart components of the SIP URI, a 'sip:' is appended to the contents of the 'id' attribute, and the result is the SIP URI. If the characters in the 'id' attribute are not valid for the user and hostpart components of the SIP URI, conversion is not possible. This happens, for example, when the user portion of the 'id' attribute contain UTF-8 characters. Camarillo Expires August 29, 2006 [Page 6] Internet-Draft Permission Document Format February 2006 3.1.3. Target Condition The target condition is matched against the target URI of a translation. Sender conditions can contain the same elements and attributes as identity conditions. When performing a translation, a relay matches the target condition against the destination of the incoming request, which is typically contained in the Request-URI. 3.2. Actions The actions in a permission document indicate whether or not the recipient gives the relay permission to perform a translation. 3.2.1. Translation Handling The element specifies whether or not the relay is allowed to perform a translation. The element is an enumerated Integer type. The defined values are: OPEN ISSUE: does it need to be an Integer? block: this action tells the relay not to perform the translation. It has the value of zero, and it represents the default value. No value of the element can ever be lower than this. Strictly speaking, it is not necessary to even include an explicit block action, since the default in the absence of any action will be block. However, it is included for completeness. pending: this action tells the relay not to perform the translation. Additionally, it also indicates that the receiver of the translation has not given or denied the relay permission to perform the translation. It has a value of one. allow: this action tells the server to perform the translation. This action has a value of two. 4. Example Document The following permission document gives the relay handling 'sip:alices-friends@example.com' permission to relay requests sent to that URI to 'sip:bob@example.org'. Camarillo Expires August 29, 2006 [Page 7] Internet-Draft Permission Document Format February 2006 allow 5. XML Schema Camarillo Expires August 29, 2006 [Page 8] Internet-Draft Permission Document Format February 2006 6. IANA Considerations This document does not require the IANA to take any actions. 7. Security Considerations TBD. 8. Acknowledgements Jonathan Rosenberg provided useful ideas. 9. References Camarillo Expires August 29, 2006 [Page 9] Internet-Draft Permission Document Format February 2006 9.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, "HTTP Authentication: Basic and Digest Access Authentication", RFC 2617, June 1999. [3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [4] Peterson, J., "A Privacy Mechanism for the Session Initiation Protocol (SIP)", RFC 3323, November 2002. [5] Jennings, C., Peterson, J., and M. Watson, "Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks", RFC 3325, November 2002. [6] Peterson, J. and C. Jennings, "Enhancements for Authenticated Identity Management in the Session Initiation Protocol (SIP)", draft-ietf-sip-identity-06 (work in progress), October 2005. [7] Rosenberg, J., "A Framework for Consent-Based Communications in the Session Initiation Protocol (SIP)", draft-ietf-sipping-consent-framework-03 (work in progress), October 2005. [8] Schulzrinne, H., "A Document Format for Expressing Privacy Preferences", draft-ietf-geopriv-common-policy-06 (work in progress), October 2005. 9.2. Informative References [9] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, December 2004. Camarillo Expires August 29, 2006 [Page 10] Internet-Draft Permission Document Format February 2006 Author's Address Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: Gonzalo.Camarillo@ericsson.com Camarillo Expires August 29, 2006 [Page 11] Internet-Draft Permission Document Format February 2006 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-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 (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. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Camarillo Expires August 29, 2006 [Page 12]