SPEERMINT WG R. Mahy Internet-Draft Plantronics Intended status: Informational July 8, 2007 Expires: January 9, 2008 A Minimalist Approach to Direct Peering draft-mahy-speermint-direct-peering-02.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 January 9, 2008. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract This document describes a concrete example of a peering convention for domains and federations of domain which use SIP for communications, especially in conjunction with E.164 addresses (telephone numbers). This convention makes use of direct SIP and media communication between the operator of the initiating and receiving administrative domains. Mahy Expires January 9, 2008 [Page 1] Internet-Draft Direct Peering July 2007 Table of Contents 1. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. Initiating Peer . . . . . . . . . . . . . . . . . . . . . 4 4.1.1. Analyzing target address . . . . . . . . . . . . . . . 4 4.1.2. User ENUM lookup . . . . . . . . . . . . . . . . . . . 4 4.1.3. Carrier ENUM lookup . . . . . . . . . . . . . . . . . 5 4.1.4. Target by routing table . . . . . . . . . . . . . . . 5 4.1.5. SIP DNS resolution . . . . . . . . . . . . . . . . . . 5 4.1.6. Setup TLS connection . . . . . . . . . . . . . . . . . 6 4.1.7. Send the SIP request . . . . . . . . . . . . . . . . . 6 4.2. Receiving Peer . . . . . . . . . . . . . . . . . . . . . . 7 4.2.1. Publish ENUM records . . . . . . . . . . . . . . . . . 7 4.2.2. Publish SIP DNS records . . . . . . . . . . . . . . . 7 4.2.3. Verify TLS connection . . . . . . . . . . . . . . . . 8 4.2.4. Receive SIP requests . . . . . . . . . . . . . . . . . 8 4.2.5. Record Routing . . . . . . . . . . . . . . . . . . . . 8 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 6. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . 9 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.1. Normative References . . . . . . . . . . . . . . . . . . . 9 7.2. Informational References . . . . . . . . . . . . . . . . . 10 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 10 Intellectual Property and Copyright Statements . . . . . . . . . . 11 Mahy Expires January 9, 2008 [Page 2] Internet-Draft Direct Peering July 2007 1. Conventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [3]. 2. Introduction The Session PEERing for Multimedia INTerconnect (SPEERMINT) Working Group is chartered to document conventions for routing real-time sessions, such as VoIP telephone calls, at the application layer. The speermint terminology document [16] describes this as "layer 5 peering". This document will use the term "peering" to describe this layer 5 peering. This document describes a concrete example of a peering convention. This example approach is intentionally minimalistic in its approach, and leaves many issues as local policy decisions. This "less is more" philosophy hopefully encourages addition of new features only when the vast majority of peers would benefits from them. The author hopes that the example will facilitate discussion about speermint requirements. This approach is also summarized in the consolidated use cases document [17]. 3. Overview The approach described here assumes that the initiating peer first discovers a SIP [2] target URI handled by the receiving peer, then sends SIP requests directly to the receiving peer. When the initiating peer receives a request to contact a resource addressed in its domain using an "external" telephone number (one for which the peer is not responsible), the peer first consults "User" ENUM [1] records, then carrier ENUM [14] records, and finally it may optionally consult a local routing table to determine the appropriate target URI. Requests to im: or pres: resources in external domains can resolve to SIP URIs using the procedures defined in RFC 3861 [8]. Requests which already address a SIP URI in an external domain need no additional peer discovery. Once the initiating peer discovers a SIP URI corresponding to the receiving peer, the initiating peer finds the correct SIP server for the receiving peer according to the DNS resolution procedures for SIP in RFC 3263 [2]. Peers send all SIP messages to each other over a TLS [5] protected channel and use the SIP Identity [12] mechanism to verifiably assert an identity for the sender of most messages. Mahy Expires January 9, 2008 [Page 3] Internet-Draft Direct Peering July 2007 Note that in a federation of domains, the initiating peer role can be logically decomposed. Domain A1 can forward requests to domain A2, so that A2 actually opens a TLS connection to the receiving peer. Likewise, the receiving peer function can be similarly decomposed. How functions are distributed between or among domains or nodes is not subject to this specification as long as the requirements described in this document are met. 4. Procedures 4.1. Initiating Peer 4.1.1. Analyzing target address Before the initiating peer is even aware that it will peer, it receives a request to communicate. If the target address does not represent a resource inside the initiating peer's administrative domain or federation of domains, the request may need to be sent to a peer. How the peer determines a resource is external is the subject of local policy. Note that the peer is free to consult any manner of private data sources to make this determination, including for example those using ENUM technology with private roots. If the request is for an im: or pres: URI type, the initiating peer follows the procedures in [8]. If the highest priority supported URI scheme is sip: or sips:, the initiating peer skips to SIP DNS resolution. Likewise, if the target address is already a sip: or sips: URI in an external domain, the initiating peer skips to Section 4.1.5. If the target address corresponds to a specific E.164 address, the peer may need to perform some form of number plan mapping according to local policy. For example, in the United States, a dial string beginning "011 44" could be converted to "+44", or in the United Kingdom "00 1" could be converted to "+1". Once the peer has an E.164 address, it can continue to the next step. 4.1.2. User ENUM lookup If an external E.164 address is the target, the initiating peer consults the public "User ENUM" rooted at e164.arpa, according to the procedures described in RFC 3761. The peer MUST query for the "E2U+ sip" enumservice as described in RFC 3674 [11], but MAY check for other enumservices. The initiating peer MAY consult a cache or alternate representation of the ENUM data rather than actual DNS queries. Also, the peer MAY skip actual DNS queries if the initiating peer is sure that the target address country code is not Mahy Expires January 9, 2008 [Page 4] Internet-Draft Direct Peering July 2007 represented in e164.arpa. If a sip: or sips: URI is chosen, the peer skips to Section 4.1.5. If an im: or pres: URI is chosen for based on an "E2U+im" [15] or "E2U+pres" [4] enumserver, the peer follows the procedures for resolving these URIs to URIs for specific protocols such a SIP or XMPP as described in the previous section. 4.1.3. Carrier ENUM lookup Next the initiating peer checks for a carrier-of-record in a carrier ENUM domain according to the procedures described in [14]. As in the previous step, the peer MAY consult a cache or alternate representation of the ENUM data in lieu of actual DNS queries. The peer first checks for records for the "E2U+sip" enumservice, then for the "E2U+pstn" enumservice as defined in [13]. If a terminal record is found with a sip: or sips: URI, the peer skips to Section 4.1.5, otherwise the peer continues processing according to the next section. 4.1.4. Target by routing table If there are no user ENUM records, and the initiating carrier cannot discover the carrier-of-record or if the initiating peer cannot reach the carrier-of-record via SIP peering, the initiating peer still needs to deliver the call to the PSTN or reject the call. Note that the initiating peer MAY still send the call to another carrier for PSTN gateway termination by prior arrangement. If so, the initiating peer rewrites the Request-URI to address the gateway resource in the target carrier's domain and MAY forward the request on to that carrier using the procedures described in the remainder of these steps. 4.1.5. SIP DNS resolution Once a sip: or sips: in an external domain is selected as the target, the initiating peer MAY apply local policy to decide whether forwarding requests to the target domain is acceptable. If so, the initiating peer uses the procedures in RFC 3263 [6] Section 4 to determine how to contact the receiving peer. To summarize the RFC 3263 procedure: unless these are explicitly encoded in the target URI, a transport is chosen using NAPTR records, a port is chosen using SRV records, and an address is chosen using A or AAAA records. Note that these are queries of records in the global DNS. When communicating with a public external peer, entities compliant to this document MUST only select a TLS-protected transport for communication from the initiating peer to the receiving peer. Note Mahy Expires January 9, 2008 [Page 5] Internet-Draft Direct Peering July 2007 that this is a single-hop requirement. Either peer MAY insist on using a sips: URI which asserts that each hop is TLS-protected, but this document does not require protection over each hop. Some operators have complained that the TLS is not practical to deploy in this context. The traditional objection to using TLS is that it is difficult to build SIP intermediaries which can handle more than on the order of 10,000 or 100,000 simultaneous TCP connections. This objection is not relevant in this context, since the end-user user agents are still free to use any transport inside their administrative domain, and the number of simultaneous TCP connections between peers who have recently exchanged traffic is expected to be on the order of 100 to 1000 connections per peer. 4.1.6. Setup TLS connection Once a transport, port, and address are found, the initiating peer will open or find a reusable TLS connection to the peer. The initiating provider MUST verify the server certificate which SHOULD be rooted in a well-known certificate authority. The initiating provider MUST be prepared to provide a TLS client certificate upon request during the TLS handshake. The client certificate MUST contain a DNS or URI choice type in the subjectAltName which corresponds to the domain asserted in the host production of the From header URI. The certificate SHOULD be valid and rooted in a well- known certificate authority. Note that the client certificate MAY contain a list of entries in the subjectAltName, only one of which has to match the domain in the From header URI. 4.1.7. Send the SIP request Once a TLS connection between the peers is established, the initiating peer sends the request. When sending some requests, the initiating peer MUST verify and assert the senders identity using the SIP Identity mechanism. The domain name in the URI of the From: header MUST be a domain which was present in the certificate presented when establishing the TLS connection for this request, even if the user part has an anonymous value. If the From header contains the user URI parameter with the value of "phone", the user part of the From header URI MUST be a complete and valid tel: URI [9] telephone-subscriber production, and SHOULD be a global-number. For example, the following are all acceptable, the first three are encouraged: Mahy Expires January 9, 2008 [Page 6] Internet-Draft Direct Peering July 2007 From: "John Doe" From: "+12125551212" <+12125551212@example.net;user=phone> From: "Anonymous" From: <4092;phone-context=+12125554000@example.net;user=phone> From: "5551212" <5551212@example.net> The following are not acceptable: From: "2125551212" <2125551212@example.net;user=phone> From: "Anonymous" In addition, for new dialog-forming requests and non-dialog-forming requests, the request MUST contain a valid Identity and Identity-Info header as described in [12]. The Identity-Info header must present a domain name which is represented in the certificate presented when establishing the TLS connection over which the request is sent. The initiating peer SHOULD include an Identity header on in-dialog requests as well, if the From header field value matches an identity the initiating peer is willing to assert. The initiating peer MAY include any SIP option-tags in Supported, Require, or Proxy-Require headers according to procedures in standards-track SIP extensions. Note however that the initiating peer MUST be prepared to fallback to baseline SIP functionality as defined by the mandatory-to-implement features of RFC 3261, RFC 3263, and RFC 3264 [7], except that peers implementing this specification MUST implement SIP over TLS using the sip: URI scheme, the SIP Identity header, and RFC 4320 [10] non-INVITE transaction fixes. 4.2. Receiving Peer 4.2.1. Publish ENUM records The receiving peer SHOULD participate by publishing "E2U+sip" and "E2U+pstn" records with sip: or sips: URIs wherever a public carrier ENUM root is available. This assumes that the receiving peer wants to peer by default. Even when the receiving peer does not want to accept traffic from specific initiating peers, it MAY still reject requests on a case-by-case basis. 4.2.2. Publish SIP DNS records To receive peer requests, the receiving peer MUST insure that it publishes appropriate NAPTR, SRV, and address (A and/or AAAA) records in the global DNS that resolve an appropriate transport, port, and address to a relevant SIP server. The transport actually used for external public peering MUST be TLS protected. Mahy Expires January 9, 2008 [Page 7] Internet-Draft Direct Peering July 2007 4.2.3. Verify TLS connection When the receiving peer receives a TLS client hello, it responds with its certificate. The receiving peer certificate SHOULD be valid and rooted in a well-known certificate authority. The receiving peer MUST request and verify the client certificate during the TLS handshake. Once the initiating peer has been authenticated, the receiving peer can authorize communication from this peer based on the domain name of the peer and the root of its certificate. This allows two authorization models to be used, together or separately. In the domain-based model, the receiving peer can allow communication from peers with some trusted administrative domains which use general- purpose certificate authorities, without explicitly permitting all domains with certificates rooted in the same authority. It also allows a certificate authority (CA) based model where every domain with a valid certificate rooted in some list of CAs is automatically authorized. 4.2.4. Receive SIP requests Once a TLS connection is established, the receiving peer is prepared to receive incoming SIP requests. For new dialog-forming requests and out-of-dialog requests, the receiving peer verifies that the target (request-URI) is a domain which for which it is responsible. (For these requests, there should be no remaining Route header field values.) Next the receiving verifies that the Identity header is valid, corresponds to the message, corresponds to the Identity-Info header, and that the domain in the From header corresponds to one of the domains in the TLS client certificate. For in-dialog requests, the receiving peer can verify that it corresponds to the top-most Route header field value. The peer also validates any Identity header if present. The receiving peer MAY reject incoming requests due to local policy. When a request is rejected because the initiating peer is not authorized to peer, the receiving peer SHOULD respond with a 403 response with the reason phrase "Unsupported Peer". 4.2.5. Record Routing The receiving peer MAY add a Record-Route header field value corresponding to itself. This insures that subsequent in-dialog requests are sent through a node associated with the receiving peer. Mahy Expires January 9, 2008 [Page 8] Internet-Draft Direct Peering July 2007 5. Security Considerations This document does not introduce any new security concerns, but the overall security of a peering system using this mechanism is worth discussing separately. The security and privacy implications of using user and carrier ENUM are primarily discussed in RFC 3761 [1] and [14] respectively. User ENUM records are only added at the discretion of the user. Carrier ENUM records should be deployed for an entire number range so that no user-specific information can be gleaned. Note that in some countries, knowledge of the carrier-of- record for a specific phone number is not public knowledge. This document requires peers use a TLS-protected channel and the SIP Identity mechanism. This section needs to be completed in more detail later. 6. IANA Consideration This document requires no action by IANA. 7. References 7.1. Normative References [1] Faltstrom, P. and M. Mealling, "The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)", RFC 3761, April 2004. [2] 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. [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [4] Peterson, J., "Telephone Number Mapping (ENUM) Service Registration for Presence Services", RFC 3953, January 2005. [5] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.1", RFC 4346, April 2006. [6] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol (SIP): Locating SIP Servers", RFC 3263, June 2002. [7] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. Mahy Expires January 9, 2008 [Page 9] Internet-Draft Direct Peering July 2007 [8] Peterson, J., "Address Resolution for Instant Messaging and Presence", RFC 3861, August 2004. [9] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, December 2004. [10] Sparks, R., "Actions Addressing Identified Issues with the Session Initiation Protocol's (SIP) Non-INVITE Transaction", RFC 4320, January 2006. [11] Peterson, J., "enumservice registration for Session Initiation Protocol (SIP) Addresses-of-Record", RFC 3764, April 2004. [12] Peterson, J. and C. Jennings, "Enhancements for Authenticated Identity Management in the Session Initiation Protocol (SIP)", RFC 4474, August 2006. [13] Livingood, J. and R. Shockey, "IANA Registration for an Enumservice Containing Public Switched Telephone Network (PSTN) Signaling Information", RFC 4769, November 2006. [14] Haberler, M. and R. Stastny, "Combined User and Infrastructure ENUM in the e164.arpa tree", draft-haberler-carrier-enum-03 (work in progress), June 2006. [15] Mahy, R., "A Telephone Number Mapping (ENUM) Service Registration for Instant Messaging (IM) Services", draft-ietf-enum-im-service-02 (work in progress), March 2007. 7.2. Informational References [16] Malas, D. and D. Meyer, "SPEERMINT Terminology", draft-ietf-speermint-terminology-08 (work in progress), July 2007. [17] Uzelac, A., "VoIP SIP Peering Use Cases", draft-ietf-speermint-voip-consolidated-usecases-02 (work in progress), June 2007. Author's Address Rohan Mahy Plantronics Email: rohan@ekabal.com Mahy Expires January 9, 2008 [Page 10] Internet-Draft Direct Peering July 2007 Full Copyright Statement Copyright (C) The IETF Trust (2007). 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, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Mahy Expires January 9, 2008 [Page 11]