| < draft-ietf-p2psip-sip-19.txt | draft-ietf-p2psip-sip-20.txt > | |||
|---|---|---|---|---|
| P2PSIP C. Jennings | P2PSIP C. Jennings | |||
| Internet-Draft Cisco | Internet-Draft Cisco | |||
| Intended status: Standards Track B. Lowekamp | Intended status: Standards Track B. Lowekamp | |||
| Expires: October 19, 2016 Skype | Expires: October 21, 2016 Skype | |||
| E. Rescorla | E. Rescorla | |||
| RTFM, Inc. | RTFM, Inc. | |||
| S. Baset | S. Baset | |||
| H. Schulzrinne | H. Schulzrinne | |||
| Columbia University | Columbia University | |||
| T. Schmidt, Ed. | T. Schmidt, Ed. | |||
| HAW Hamburg | HAW Hamburg | |||
| April 17, 2016 | April 19, 2016 | |||
| A SIP Usage for RELOAD | A SIP Usage for RELOAD | |||
| draft-ietf-p2psip-sip-19 | draft-ietf-p2psip-sip-20 | |||
| 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 and includes a lookup service | registrar in a fully-distributed system and includes a lookup service | |||
| for Address of Records (AORs) stored in the overlay. It also defines | for Address of Records (AORs) stored in the overlay. It also defines | |||
| Globally Routable User Agent URIs (GRUUs) that allow the | Globally Routable User Agent URIs (GRUUs) that allow the | |||
| registrations to map an AOR to a specific node reachable through the | registrations to map an AOR to a specific node reachable through the | |||
| overlay. After such initial contact of a peer, the RELOAD AppAttach | overlay. After such initial contact of a peer, the RELOAD AppAttach | |||
| skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 46 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| 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." | |||
| This Internet-Draft will expire on October 19, 2016. | This Internet-Draft will expire on October 21, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 4 ¶ | skipping to change at page 3, line 4 ¶ | |||
| 4.2. Resolving an AOR . . . . . . . . . . . . . . . . . . . . 11 | 4.2. Resolving an AOR . . . . . . . . . . . . . . . . . . . . 11 | |||
| 5. Forming a Direct Connection . . . . . . . . . . . . . . . . . 11 | 5. Forming a Direct Connection . . . . . . . . . . . . . . . . . 11 | |||
| 5.1. Setting Up a Connection . . . . . . . . . . . . . . . . . 11 | 5.1. Setting Up a Connection . . . . . . . . . . . . . . . . . 11 | |||
| 5.2. Keeping a Connection Alive . . . . . . . . . . . . . . . 12 | 5.2. Keeping a Connection Alive . . . . . . . . . . . . . . . 12 | |||
| 6. Using GRUUs . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 6. Using GRUUs . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 7. SIP-REGISTRATION Kind Definition . . . . . . . . . . . . . . 13 | 7. SIP-REGISTRATION Kind Definition . . . . . . . . . . . . . . 13 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.1. RELOAD-Specific Issues . . . . . . . . . . . . . . . . . 14 | 8.1. RELOAD-Specific Issues . . . . . . . . . . . . . . . . . 14 | |||
| 8.2. SIP-Specific Issues . . . . . . . . . . . . . . . . . . . 14 | 8.2. SIP-Specific Issues . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.2.1. Fork Explosion . . . . . . . . . . . . . . . . . . . 14 | 8.2.1. Fork Explosion . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.2.2. Malicious Retargeting . . . . . . . . . . . . . . . . 14 | 8.2.2. Malicious Retargeting . . . . . . . . . . . . . . . . 15 | |||
| 8.2.3. Misuse of AORs . . . . . . . . . . . . . . . . . . . 15 | 8.2.3. Misuse of AORs . . . . . . . . . . . . . . . . . . . 15 | |||
| 8.2.4. Privacy Issues . . . . . . . . . . . . . . . . . . . 15 | 8.2.4. Privacy Issues . . . . . . . . . . . . . . . . . . . 15 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 9.1. Data Kind-ID . . . . . . . . . . . . . . . . . . . . . . 15 | 9.1. Data Kind-ID . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 9.2. XML Name Space Registration . . . . . . . . . . . . . . . 16 | 9.2. XML Name Space Registration . . . . . . . . . . . . . . . 16 | |||
| 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 18 | 11.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
| Appendix A. Third Party Registration . . . . . . . . . . . . . . 18 | Appendix A. Third Party Registration . . . . . . . . . . . . . . 18 | |||
| Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 18 | Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 18 | |||
| B.1. Changes since draft-ietf-p2psip-sip-09 . . . . . . . . . 18 | B.1. Changes since draft-ietf-p2psip-sip-09 . . . . . . . . . 19 | |||
| B.2. Changes since draft-ietf-p2psip-sip-08 . . . . . . . . . 19 | B.2. Changes since draft-ietf-p2psip-sip-08 . . . . . . . . . 19 | |||
| B.3. Changes since draft-ietf-p2psip-sip-07 . . . . . . . . . 19 | B.3. Changes since draft-ietf-p2psip-sip-07 . . . . . . . . . 19 | |||
| B.4. Changes since draft-ietf-p2psip-sip-06 . . . . . . . . . 19 | B.4. Changes since draft-ietf-p2psip-sip-06 . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 1. Introduction | 1. Introduction | |||
| REsource LOcation And Discovery (RELOAD) [RFC6940] specifies a peer- | REsource LOcation And Discovery (RELOAD) [RFC6940] specifies a peer- | |||
| to-peer (P2P) signaling protocol for the general use on the Internet. | to-peer (P2P) signaling protocol for the general use on the Internet. | |||
| This document defines a SIP Usage of RELOAD that allows SIP [RFC3261] | This document defines a SIP Usage of RELOAD that allows SIP [RFC3261] | |||
| user agents (UAs) to establish peer-to-peer SIP (or SIPS) sessions | user agents (UAs) to establish peer-to-peer SIP (or SIPS) sessions | |||
| without the requirement for permanent proxy or registration servers, | without the requirement for permanent proxy or registration servers, | |||
| e.g., a fully distributed telephony service. In such a network, the | e.g., a fully distributed telephony service. In such a network, the | |||
| RELOAD overlay itself performs the registration and rendezvous | RELOAD overlay itself performs the registration and rendezvous | |||
| skipping to change at page 11, line 12 ¶ | skipping to change at page 11, line 12 ¶ | |||
| AOR is GRUU? If the AOR is a GRUU for this overlay, the callee can | AOR is GRUU? If the AOR is a GRUU for this overlay, the callee can | |||
| be contacted directly as described in Section 6. | be contacted directly as described in Section 6. | |||
| AOR domain is hosted in overlay? If the domain part of the AOR | AOR domain is hosted in overlay? If the domain part of the AOR | |||
| matches a domain pattern configured in the overlay, the user can | matches a domain pattern configured in the overlay, the user can | |||
| continue to resolve the AOR in this overlay. The user MAY choose | continue to resolve the AOR in this overlay. The user MAY choose | |||
| to query the DNS service records to search for additional support | to query the DNS service records to search for additional support | |||
| of this domain name. | of this domain name. | |||
| AOR domain not supported by overlay? If the domain part of the AOR | AOR domain not supported by overlay? If the domain part of the AOR | |||
| is not supported in the current overlay, the user SHOULD query the | is not supported in the current overlay, the user might query the | |||
| DNS (or other discovery services at hand) to search for an | DNS (or other discovery services at hand) to search for an | |||
| alternative overlay that services the AOR under request. | alternative overlay that services the AOR under request. | |||
| Alternatively, standard SIP procedures for contacting the callee | Alternatively, standard SIP procedures for contacting the callee | |||
| SHOULD be used. | might be used. | |||
| AOR inaccessible? If all of the above contact attempts fail, the | AOR inaccessible? If all of the above contact attempts fail, the | |||
| call fails. | call fails. | |||
| The procedures described above likewise apply when nodes are | The procedures described above likewise apply when nodes are | |||
| simultaneously connected to several overlays. | simultaneously connected to several overlays. | |||
| 4.2. Resolving an AOR | 4.2. Resolving an AOR | |||
| A RELOAD user that has discovered a route to an AOR in the current | A RELOAD user that has discovered a route to an AOR in the current | |||
| skipping to change at page 12, line 15 ¶ | skipping to change at page 12, line 15 ¶ | |||
| possible that the peers already have a RELOAD connection mutually | possible that the peers already have a RELOAD connection mutually | |||
| established. This MUST NOT be used for SIP messages unless it is a | established. This MUST NOT be used for SIP messages unless it is a | |||
| SIP connection. A previously established SIP connection MAY be used | SIP connection. A previously established SIP connection MAY be used | |||
| for a new call. | for a new call. | |||
| Once the AppAttach succeeds, the peer sends plain or (D)TLS encrypted | Once the AppAttach succeeds, the peer sends plain or (D)TLS encrypted | |||
| SIP messages over the connection as in normal SIP. A caller MAY | SIP messages over the connection as in normal SIP. A caller MAY | |||
| choose to contact the callee using SIP or secure SIPS, but SHOULD | choose to contact the callee using SIP or secure SIPS, but SHOULD | |||
| follow a preference indicated by the callee in its contact_prefs | follow a preference indicated by the callee in its contact_prefs | |||
| attribute (see Section 3.2). A callee MAY choose to listen on both | attribute (see Section 3.2). A callee MAY choose to listen on both | |||
| SIP and SIPS ports and accept calls from either SIP schemes, or | SIP and SIPS ports and accept calls from either SIP scheme, or select | |||
| select a single one. However, a callee that decides to accept SIPS | a single one. However, a callee that decides to accept SIPS calls, | |||
| calls, only, SHOULD indicate its choice by setting the corresponding | only, SHOULD indicate its choice by setting the corresponding | |||
| attribute in its contact_prefs. It is noteworthy that according to | attribute in its contact_prefs. It is noteworthy that according to | |||
| [RFC6940] all overlay links are built on (D)TLS secured transport. | [RFC6940] all overlay links are built on (D)TLS secured transport. | |||
| While hop-wise encrypted paths do not prevent the use of plain SIP, | While hop-wise encrypted paths do not prevent the use of plain SIP, | |||
| SIPS requires end-to-end protection that may include client links and | SIPS requires protection of all links that may include client links | |||
| endpoint certificates. | (if present) and endpoint certificates. | |||
| SIP messages carry the SIP URIs of actual overlay endpoints (e.g., | SIP messages carry the SIP URIs of actual overlay endpoints (e.g., | |||
| "sip:alice@dht.example.com") in the Via and Contact headers, while | "sip:alice@dht.example.com") in the Via and Contact headers, while | |||
| the communication continues via the RELOAD connection. However, a UA | the communication continues via the RELOAD connection. However, a UA | |||
| can redirect its communication path by setting an alternate Contact | can redirect its communication path by setting an alternate Contact | |||
| header field like in ordinary SIP. | header field like in ordinary SIP. | |||
| 5.2. Keeping a Connection Alive | 5.2. Keeping a Connection Alive | |||
| In many cases, RELOAD connections will traverse NATs and Firewalls | In many cases, RELOAD connections will traverse NATs and Firewalls | |||
| skipping to change at page 13, line 41 ¶ | skipping to change at page 13, line 41 ¶ | |||
| 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 USER-NODE-MATCH. Note that this matches the SIP AOR | Access Control USER-NODE-MATCH. Note that this matches the SIP AOR | |||
| against the rfc822Name in the X509v3 certificate. The rfc822Name | against the rfc822Name in the X509v3 certificate. The rfc822Name | |||
| does not include the scheme so that the "sip:" prefix needs to be | does not include the scheme so that the "sip:" prefix needs to be | |||
| removed from the SIP AOR before matching. Escaped characters ('%' | removed from the SIP AOR before matching. Escaped characters ('%' | |||
| encoding) in the SIP AOR also need to be decoded prior to | encoding) in the SIP AOR also need to be decoded prior to matching | |||
| matching. | (see [RFC3986]). | |||
| 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 | |||
| skipping to change at page 14, line 37 ¶ | skipping to change at page 14, line 37 ¶ | |||
| However, domain name control relies on a lightweight pattern matching | However, domain name control relies on a lightweight pattern matching | |||
| and can be processed prior to validating certificates. Hence no | and can be processed prior to validating certificates. Hence no | |||
| extra burden is introduced for RELOAD peers beyond loads already | extra burden is introduced for RELOAD peers beyond loads already | |||
| present in the base protocol. | present in the base protocol. | |||
| 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 (i.e., attacks using SIP forking to | |||
| However, in the SIP usage of RELOAD, fork bombs are a much lower | amplify the effect on the intended victims) are a potential DoS | |||
| concern than in a conventional SIP Proxy infrastructure, because the | concern. However, in the SIP usage of RELOAD, fork bombs are a much | |||
| calling party is involved in each retargeting event. It can | lower concern than in a conventional SIP Proxy infrastructure, | |||
| therefore directly measure the number of forks and throttle at some | because the calling party is involved in each retargeting event. It | |||
| reasonable number. | can therefore directly measure the number of forks and throttle at | |||
| some reasonable number. | ||||
| 8.2.2. Malicious Retargeting | 8.2.2. Malicious Retargeting | |||
| Another potential DoS attack is for the owner of an attractive AOR to | Another potential DoS attack is for the owner of an attractive AOR to | |||
| retarget all calls to some victim. This attack is common to SIP and | retarget all calls to some victim. This attack is common to SIP and | |||
| difficult to ameliorate without requiring the target of a SIP | difficult to ameliorate without requiring the target of a SIP | |||
| registration to authorize all stores. The overhead of that | registration to authorize all stores. The overhead of that | |||
| requirement would be excessive and in addition there are good use | requirement would be excessive and in addition there are good use | |||
| cases for retargeting to a peer without its explicit cooperation. | cases for retargeting to a peer without its explicit cooperation. | |||
| skipping to change at page 17, line 19 ¶ | skipping to change at page 17, line 19 ¶ | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <http://www.rfc-editor.org/info/rfc3688>. | <http://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, | [RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, | |||
| "Indicating User Agent Capabilities in the Session | "Indicating User Agent Capabilities in the Session | |||
| Initiation Protocol (SIP)", RFC 3840, | Initiation Protocol (SIP)", RFC 3840, | |||
| DOI 10.17487/RFC3840, August 2004, | DOI 10.17487/RFC3840, August 2004, | |||
| <http://www.rfc-editor.org/info/rfc3840>. | <http://www.rfc-editor.org/info/rfc3840>. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | ||||
| Resource Identifier (URI): Generic Syntax", STD 66, | ||||
| RFC 3986, DOI 10.17487/RFC3986, January 2005, | ||||
| <http://www.rfc-editor.org/info/rfc3986>. | ||||
| [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | |||
| Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | |||
| <http://www.rfc-editor.org/info/rfc4648>. | <http://www.rfc-editor.org/info/rfc4648>. | |||
| [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment | [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment | |||
| (ICE): A Protocol for Network Address Translator (NAT) | (ICE): A Protocol for Network Address Translator (NAT) | |||
| Traversal for Offer/Answer Protocols", RFC 5245, | Traversal for Offer/Answer Protocols", RFC 5245, | |||
| DOI 10.17487/RFC5245, April 2010, | DOI 10.17487/RFC5245, April 2010, | |||
| <http://www.rfc-editor.org/info/rfc5245>. | <http://www.rfc-editor.org/info/rfc5245>. | |||
| End of changes. 14 change blocks. | ||||
| 22 lines changed or deleted | 28 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||