draft-ietf-p2psip-sip-00.txt   draft-ietf-p2psip-sip-01.txt 
P2PSIP C. Jennings P2PSIP C. Jennings
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track B. Lowekamp, Ed. Intended status: Standards Track B. Lowekamp, Ed.
Expires: April 30, 2009 SIPeerior Technologies Expires: September 8, 2009 SIPeerior Technologies
E. Rescorla E. Rescorla
Network Resonance Network Resonance
S. Baset S. Baset
H. Schulzrinne H. Schulzrinne
Columbia University Columbia University
October 27, 2008 March 07, 2009
A SIP Usage for RELOAD A SIP Usage for RELOAD
draft-ietf-p2psip-sip-00 draft-ietf-p2psip-sip-01
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any This Internet-Draft is submitted to IETF in full conformance with the
applicable patent or other IPR claims of which he or she is aware provisions of BCP 78 and BCP 79. This document may contain material
have been or will be disclosed, and any of which he or she becomes from IETF Documents or IETF Contributions published or made publicly
aware will be disclosed, in accordance with Section 6 of BCP 79. available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from
the person(s) controlling the copyright in such materials, this
document may not be modified outside the IETF Standards Process, and
derivative works of it may not be created outside the IETF Standards
Process, except to format it for publication as an RFC or to
translate it into languages other than English.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 30, 2009. This Internet-Draft will expire on September 8, 2009.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Abstract Abstract
This document defines a SIP Usage for REsource LOcation And Discovery This document defines a SIP Usage for REsource LOcation And Discovery
(RELOAD), The SIP Usage provides the functionality of a SIP proxy or (RELOAD), The SIP Usage provides the functionality of a SIP proxy or
registrar in a fully-distributed system. The SIP Usage provides registrar in a fully-distributed system. The SIP Usage provides
lookup service for AoRs stored in the overlay. The SIP Usage also lookup service for AoRs stored in the overlay. The SIP Usage also
defines GRUUs that allow the registrations to map an AoR to a defines GRUUs that allow the registrations to map an AoR to a
specific node reachable through the overlay. The Attach method is specific node reachable through the overlay. The AppAttach method is
used to establish a direct connection between nodes through which SIP used to establish a direct connection between nodes through which SIP
messages are exchanged. messages are exchanged.
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Registering AORs . . . . . . . . . . . . . . . . . . . . . . . 5 3. Registering AORs . . . . . . . . . . . . . . . . . . . . . . . 6
4. Looking up an AOR . . . . . . . . . . . . . . . . . . . . . . 7 4. Looking up an AOR . . . . . . . . . . . . . . . . . . . . . . 8
5. Forming a Direct Connection . . . . . . . . . . . . . . . . . 8 5. Forming a Direct Connection . . . . . . . . . . . . . . . . . 9
6. GRUUs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6. GRUUs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7. SIP-REGISTRATION Kind Definition . . . . . . . . . . . . . . . 8 7. SIP-REGISTRATION Kind Definition . . . . . . . . . . . . . . . 9
8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10
8.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 9 8.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.2. SIP-Specific Issues . . . . . . . . . . . . . . . . . . . 10 8.2. SIP-Specific Issues . . . . . . . . . . . . . . . . . . . 10
8.2.1. Fork Explosion . . . . . . . . . . . . . . . . . . . . 10 8.2.1. Fork Explosion . . . . . . . . . . . . . . . . . . . . 10
8.2.2. Malicious Retargeting . . . . . . . . . . . . . . . . 10 8.2.2. Malicious Retargeting . . . . . . . . . . . . . . . . 11
8.2.3. Privacy Issues . . . . . . . . . . . . . . . . . . . . 10 8.2.3. Privacy Issues . . . . . . . . . . . . . . . . . . . . 11
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
11.1. Normative References . . . . . . . . . . . . . . . . . . . 11 11.1. Normative References . . . . . . . . . . . . . . . . . . . 11
11.2. Informative References . . . . . . . . . . . . . . . . . . 11 11.2. Informative References . . . . . . . . . . . . . . . . . . 12
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 11 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 12
A.1. Changes since draft-ietf-p2psip-reload-00 . . . . . . . . 11 A.1. Changes since draft-ietf-p2psip-reload-00 . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12
Intellectual Property and Copyright Statements . . . . . . . . . . 14
1. Overview 1. Overview
The SIP Usage of RELOAD allows SIP user agents to provide a peer-to- The SIP Usage of RELOAD allows SIP user agents to provide a peer-to-
peer telephony service without the requirement for permanent proxy or peer telephony service without the requirement for permanent proxy or
registration servers. In such a network, the RELOAD overlay itself registration servers. In such a network, the RELOAD overlay itself
performs the registration and rendezvous functions ordinarily performs the registration and rendezvous functions ordinarily
associated with such servers. associated with such servers.
The SIP Usage involves two basic functions: The SIP Usage involves two basic functions:
skipping to change at page 3, line 33 skipping to change at page 4, line 33
"sip:bob@dht.example.com". When Alice wants to call Bob, she queries "sip:bob@dht.example.com". When Alice wants to call Bob, she queries
the overlay for "sip:bob@dht.example.com" and gets back Node-ID 1234. the overlay for "sip:bob@dht.example.com" and gets back Node-ID 1234.
She then uses the overlay to establish a direct connection with Bob She then uses the overlay to establish a direct connection with Bob
and can use that direct connection to perform a standard SIP INVITE. and can use that direct connection to perform a standard SIP INVITE.
The way this works is as follows: The way this works is as follows:
1. Bob, operating Node-ID 1234, stores a mapping from his URI to his 1. Bob, operating Node-ID 1234, stores a mapping from his URI to his
Node-ID in the overlay. I.e., "sip:bob@dht.example.com -> 1234". Node-ID in the overlay. I.e., "sip:bob@dht.example.com -> 1234".
2. Alice, operating Node-ID 5678, decides to call Bob. She looks up 2. Alice, operating Node-ID 5678, decides to call Bob. She looks up
"sip:bob@dht.example.com" in the overlay and retrieves "1234". "sip:bob@dht.example.com" in the overlay and retrieves "1234".
3. Alice uses the overlay to route an Attach message to Bob's peer. 3. Alice uses the overlay to route an AppAttach message to Bob's
Bob responds with his own Attach and they set up a direct peer. Bob responds with his own AppAttach and they set up a
connection, as shown below. direct connection, as shown below.
Alice Peer1 Overlay PeerN Bob Alice Peer1 Overlay PeerN Bob
(5678) (1234) (5678) (1234)
------------------------------------------------- -------------------------------------------------
Attach -> AppAttach ->
Attach -> AppAttach ->
Attach -> AppAttach ->
Attach -> AppAttach ->
<- Attach <- AppAttach
<- Attach <- AppAttach
<- Attach <- AppAttach
<- Attach <- AppAttach
<------------------ ICE Checks -----------------> <------------------ ICE Checks ----------------->
INVITE -----------------------------------------> INVITE ----------------------------------------->
<--------------------------------------------- OK <--------------------------------------------- OK
ACK --------------------------------------------> ACK -------------------------------------------->
<------------ ICE Checks for media -------------> <------------ ICE Checks for media ------------->
<-------------------- RTP ----------------------> <-------------------- RTP ---------------------->
It is important to note that RELOAD's only role here is to set up the It is important to note that RELOAD's only role here is to set up the
direct connection between Alice and Bob. As soon as the ICE checks direct SIP connection between Alice and Bob. As soon as the ICE
complete and the connection is established, then ordinary SIP is checks complete and the connection is established, then ordinary SIP
used. In particular, the establishment of the media channel for the is used. In particular, the establishment of the media channel for
phone call happens via the usual SIP mechanisms, and RELOAD is not the phone call happens via the usual SIP mechanisms, and RELOAD is
involved. Media never goes over the overlay. After the successful not involved. Media never goes over the overlay. After the
exchange of SIP messages, call peers run ICE connectivity checks for successful exchange of SIP messages, call peers run ICE connectivity
media. checks for media.
As well as allowing mappings from AORs to Node-IDs, the SIP Usage As well as allowing mappings from AORs to Node-IDs, the SIP Usage
also allows mappings from AORs to other AORs. For instance, if Bob also allows mappings from AORs to other AORs. For instance, if Bob
wanted his phone calls temporarily forwarded to Charlie, he could wanted his phone calls temporarily forwarded to Charlie, he could
store the mapping "sip:bob@dht.example.com -> store the mapping "sip:bob@dht.example.com ->
sip:charlie@dht.example.com". When Alice wants to call Bob, she sip:charlie@dht.example.com". When Alice wants to call Bob, she
retrieves this mapping and can then fetch Charlie's AOR to retrieve retrieves this mapping and can then fetch Charlie's AOR to retrieve
his Node-ID. his Node-ID.
The SIP usage allows a RELOAD overlay to be used as a distributed SIP
registrar/proxy network augmenting the functionality of [RFC3263].
This entails three primary operations:
o Registering one's own AOR with the overlay.
o Looking up a given AOR in the overlay.
o Forming a direct connection to a given peer.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
We use the terminology and definitions from Concepts and Terminology We use the terminology and definitions from Concepts and Terminology
for Peer to Peer SIP [I-D.ietf-p2psip-concepts] and the RELOAD Base for Peer to Peer SIP [I-D.ietf-p2psip-concepts] and the RELOAD Base
Protocol [I-D.ietf-p2psip-base] extensively in this document. Protocol [I-D.ietf-p2psip-base] extensively in this document.
skipping to change at page 8, line 16 skipping to change at page 9, line 16
step 1 for that AOR. step 1 for that AOR.
4. Once only GRUUs and destination lists remain, the peer removes 4. Once only GRUUs and destination lists remain, the peer removes
duplicate destination lists and GRUUs from the list and forms a duplicate destination lists and GRUUs from the list and forms a
SIP connection to the appropriate peers as described in the SIP connection to the appropriate peers as described in the
following sections. If there are also external AORs, the peer following sections. If there are also external AORs, the peer
follows the appropriate procedure for contacting them as well. follows the appropriate procedure for contacting them as well.
5. Forming a Direct Connection 5. Forming a Direct Connection
Once the peer has translated the AOR into a set of destination lists, Once the peer has translated the AOR into a set of destination lists,
it then uses the overlay to route Attach messages to each of those it then uses the overlay to route AppAttach messages to each of those
peers. The "application" field MUST be 5060 to indicate SIP. If peers. The "application" field MUST be 5060 to indicate SIP. If
certificate-based authentication is in use, the responding peer MUST certificate-based authentication is in use, the responding peer MUST
present a certificate with a Node-ID matching the terminal entry in present a certificate with a Node-ID matching the terminal entry in
the route list. Note that it is possible that the peers already have the route list. Note that it is possible that the peers already have
a RELOAD connection between them. This MUST NOT be used for SIP a RELOAD connection between them. This MUST NOT be used for SIP
messages. However, if a SIP connection already exists, that MAY be messages. However, if a SIP connection already exists, that MAY be
used. Once the Attach succeeds, the peer sends SIP messages over the used. Once the AppAttach succeeds, the peer sends SIP messages over
connection as in normal SIP. the connection as in normal SIP.
6. GRUUs 6. GRUUs
GRUUs do not require storing data in the Overlay Instance. Rather, GRUUs do not require storing data in the Overlay Instance. Rather,
they are constructed by embedding a base64-encoded destination list they are constructed by embedding a base64-encoded destination list
in the gr URI parameter of the GRUU. The base64 encoding is done in the gr URI parameter of the GRUU. The base64 encoding is done
with the alphabet specified in table 1 of RFC 4648 with the exception with the alphabet specified in table 1 of RFC 4648 with the exception
that ~ is used in place of =. An example GRUU is that ~ is used in place of =. An example GRUU is
"sip:alice@example.com;gr=MDEyMzQ1Njc4OTAxMjM0NTY3ODk~". When a peer "sip:alice@example.com;gr=MDEyMzQ1Njc4OTAxMjM0NTY3ODk~". When a peer
needs to route a message to a GRUU in the same P2P network, it simply needs to route a message to a GRUU in the same P2P network, it simply
skipping to change at page 8, line 49 skipping to change at page 9, line 49
dictionary. dictionary.
Anonymous GRUUs are done in roughly the same way but require either Anonymous GRUUs are done in roughly the same way but require either
that the enrollment server issue a different Node-ID for each that the enrollment server issue a different Node-ID for each
anonymous GRUU required or that a destination list be used that anonymous GRUU required or that a destination list be used that
includes a peer that compresses the destination list to stop the includes a peer that compresses the destination list to stop the
Node-ID from being revealed. Node-ID from being revealed.
7. SIP-REGISTRATION Kind Definition 7. SIP-REGISTRATION Kind Definition
The first mapping is provided using the SIP-REGISTRATION Kind-ID: This section defines the SIP-REGISTRATION kind.
Name SIP-REGISTRATION
Kind IDs The Resource Name for the SIP-REGISTRATION Kind-ID is the Kind IDs The Resource Name for the SIP-REGISTRATION Kind-ID is the
AOR of the user. The data stored is a SipRegistrationData, which AOR of the user. The data stored is a SipRegistrationData, which
can contain either another URI or a destination list to the peer can contain either another URI or a destination list to the peer
which is acting for the user. which is acting for the user.
Data Model The data model for the SIP-REGISTRATION Kind-ID is Data Model The data model for the SIP-REGISTRATION Kind-ID is
dictionary. The dictionary key is the Node-ID of the storing dictionary. The dictionary key is the Node-ID of the storing
peer. This allows each peer (presumably corresponding to a single peer. This allows each peer (presumably corresponding to a single
device) to store a single route mapping. device) to store a single route mapping.
Access Control If certificate-based access control is being used, Access Control USER-NODE-MATCH.
stored data of Kind-ID SIP-REGISTRATION must be signed by a
certificate which (1) contains user name matching the storing URI
used as the Resource Name for the Resource-ID and (2) contains a
Node-ID matching the storing dictionary key.
Data stored under the SIP-REGISTRATION kind is of type Data stored under the SIP-REGISTRATION kind is of type
SipRegistration. This comes in two varieties: SipRegistration. This comes in two varieties:
sip_registration_uri sip_registration_uri
a URI which the user can be reached at. a URI which the user can be reached at.
sip_registration_route sip_registration_route
a destination list which can be used to reach the user's peer. a destination list which can be used to reach the user's peer.
8. Security Considerations 8. Security Considerations
8.1. Overview 8.1. Overview
RELOAD provides a generic storage service, albeit one designed to be RELOAD provides a generic storage service, albeit one designed to be
useful for P2PSIP. In this section we discuss security issues that useful for P2PSIP. In this section we discuss security issues that
are likely to be relevant to any usage of RELOAD. In Section 8.2 we are likely to be relevant to any usage of RELOAD. In Section 8.2 we
describe issues that are specific to SIP. describe issues that are specific to SIP.
In any Overlay Instance, any given user depends on a number of peers
with which they have no well-defined relationship except that they
are fellow members of the Overlay Instance. In practice, these other
nodes may be friendly, lazy, curious, or outright malicious. No
security system can provide complete protection in an environment
where most nodes are malicious. The goal of security in RELOAD is to
provide strong security guarantees of some properties even in the
face of a large number of malicious nodes and to allow the overlay to
function correctly in the face of a modest number of malicious nodes.
P2PSIP deployments require the ability to authenticate both peers and
resources (users) without the active presence of a trusted entity in
the system. We describe two mechanisms. The first mechanism is
based on public key certificates and is suitable for general
deployments. The second is an admission control mechanism based on
an overlay-wide shared symmetric key.
8.2. SIP-Specific Issues 8.2. SIP-Specific Issues
8.2.1. Fork Explosion 8.2.1. Fork Explosion
Because SIP includes a forking capability (the ability to retarget to Because SIP includes a forking capability (the ability to retarget to
multiple recipients), fork bombs are a potential DoS concern. multiple recipients), fork bombs are a potential DoS concern.
However, in the SIP usage of RELOAD, fork bombs are a much lower However, in the SIP usage of RELOAD, fork bombs are a much lower
concern because the calling party is involved in each retargeting concern because the calling party is involved in each retargeting
event and can therefore directly measure the number of forks and event and can therefore directly measure the number of forks and
throttle at some reasonable number. throttle at some reasonable number.
skipping to change at page 10, line 36 skipping to change at page 11, line 21
excessive and in addition there are good use cases for retargeting to excessive and in addition there are good use cases for retargeting to
a peer without there explicit cooperation. a peer without there explicit cooperation.
8.2.3. Privacy Issues 8.2.3. Privacy Issues
All RELOAD SIP registration data is public. Methods of providing All RELOAD SIP registration data is public. Methods of providing
location and identity privacy are still being studied. location and identity privacy are still being studied.
9. IANA Considerations 9. IANA Considerations
This section contains the new code points registered by this IANA [shall register/has registered] code point TBD to represent the
document. SIP-REGISTRATION kind, as described in Section 7.
TODO define SIP usage specific kinds, etc here.
10. Acknowledgments 10. Acknowledgments
This draft is a merge of the "REsource LOcation And Discovery This draft is a merge of the "REsource LOcation And Discovery
(RELOAD)" draft by David A. Bryan, Marcia Zangrilli and Bruce B. (RELOAD)" draft by David A. Bryan, Marcia Zangrilli and Bruce B.
Lowekamp, the "Address Settlement by Peer to Peer" draft by Cullen Lowekamp, the "Address Settlement by Peer to Peer" draft by Cullen
Jennings, Jonathan Rosenberg, and Eric Rescorla, the "Security Jennings, Jonathan Rosenberg, and Eric Rescorla, the "Security
Extensions for RELOAD" draft by Bruce B. Lowekamp and James Deverick, Extensions for RELOAD" draft by Bruce B. Lowekamp and James Deverick,
the "A Chord-based DHT for Resource Lookup in P2PSIP" by Marcia the "A Chord-based DHT for Resource Lookup in P2PSIP" by Marcia
Zangrilli and David A. Bryan, and the Peer-to-Peer Protocol (P2PP) Zangrilli and David A. Bryan, and the Peer-to-Peer Protocol (P2PP)
skipping to change at page 13, line 4 skipping to change at page 13, line 20
Phone: +1 650 320-8549 Phone: +1 650 320-8549
Email: ekr@networkresonance.com Email: ekr@networkresonance.com
Salman A. Baset Salman A. Baset
Columbia University Columbia University
1214 Amsterdam Avenue 1214 Amsterdam Avenue
New York, NY New York, NY
USA USA
Email: salman@cs.columbia.edu Email: salman@cs.columbia.edu
Henning Schulzrinne Henning Schulzrinne
Columbia University Columbia University
1214 Amsterdam Avenue 1214 Amsterdam Avenue
New York, NY New York, NY
USA USA
Email: hgs@cs.columbia.edu Email: hgs@cs.columbia.edu
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
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.
 End of changes. 22 change blocks. 
82 lines changed or deleted 72 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/