|
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 April 12, 2008.
This specification defines how to use Datagram Transport Layer Security (DTLS) as a transport for Session Initiation Protocol (SIP). DTLS is a protocol for providing Transport Layer Security (TLS) security over a datagram protocol. This specification also specifies the IANA registrations for using SIP with Datagram Congestion Control Protocol (DCCP). DTLS can be used with either UDP or the Datagram Congestion Control Protocol (DCCP). To accommodate this, this specification also defines how to use SIP directly over DCCP.
Datagram Transport Layer Security (DTLS) (Rescorla, E. and N. Modadugu, “Datagram Transport Layer Security,” April 2006.) [2] provides communication privacy similar to TLS (Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.1,” April 2006.) [9] for datagram packets. SIP can run over both stream and datagram transports, including UDP and TCP. SIP [4] (Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, “SIP: Session Initiation Protocol,” June 2002.) already defines how to use TLS with stream oriented transports. This specification extends SIP to use DTLS with datagram oriented transports. Since DTLS can be used with either UDP or the Datagram Congestion Control Protocol (DCCP) as the underlying transport this specification also defines the usage of SIP directly over DCCP.
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 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [5].
Via header fields in SIP carry a transport protocol identifier. This specification extends RFC 3261 to define the value "DTLS-UDP" for DTLS over UDP[2] (Rescorla, E. and N. Modadugu, “Datagram Transport Layer Security,” April 2006.) and "DTLS-DCCP" for DTLS over DCCP[1] (Phelan, T., “Datagram Transport Layer Security (DTLS) over the Datagram Congestion Control Protocol (DCCP),” .) and "DCCP" for directly over DCCP[8] (Kohler, E., Handley, M., and S. Floyd, “Datagram Congestion Control Protocol (DCCP),” March 2006.). The update to the ABNF[3] (Crocker, D. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” October 2005.) in RFC 3261 for this parameter is the following:
transport =/ "DCCP" / "DTLS-DCCP" / "DTLS-UDP"
The following is an example Via header field:
Via: SIP/2.0/DTLS-UDP atlanta.example.com:5060
The normal rules for sending a request over UDP in RFC 3261 apply to sending over DTLS and directly over DCCP. Note that the congestion safety rules for UDP do not apply to DTLS over DCCP and DCCP. In addition, the normal rules for validating a TLS connection in RFC 3261 apply to DTLS connections. Requests with a SIPS URI can be sent over DTLS as well as TLS.
Note that DCCP performs Path Maximum Transfer Unit (PMTU) discovery. Implementations of SIP over DTLS over DCCP and SIP over DCCP MUST use the PMTU discovered by DCCP when determining the maximum request size for the connection.
The following considerations regarding the usage of DCCP options and features apply to the DCCP connections for DTLS and SIP directly over DCCP:
The normal rules from RFC 3263 (Rosenberg, J. and H. Schulzrinne, “Session Initiation Protocol (SIP): Locating SIP Servers,” June 2002.) [6] apply when locating a SIP server that supports DTLS. The following new NAPTR[7] (Mealling, M., “Dynamic Delegation Discovery System (DDDS) Part Three: The Domain Name System (DNS) Database,” October 2002.) service values are defined: "SIPS+D2U" for UDP, and "SIPS+D2D" for DCCP[8] (Kohler, E., Handley, M., and S. Floyd, “Datagram Congestion Control Protocol (DCCP),” March 2006.). In addition, the service value "SIP+D2D" should be used for SIP without DTLS directly over DCCP.
The default port for DTLS over UDP or DCCP is 5061. The default port for SIP directly over DCCP is 5060.
The security issues with SIP using DTLS are equivalent to the issues of using SIP with TLS. All the security considerations in RFC 3261 relevant to TLS apply to DTLS.
SIP over DCCP presents the same security issues as SIP over UDP, with the exception that DCCP enforces congestion control at the transport layer.
This document defines new NAPTR service field values for DTLS over DCCP and UDP as well as over DCCP with no DTLS. IANA is requested to register these values under the "Registry for the SIP SRV Resource Record Services Field". The resulting entries should be:
Services Field Protocol Reference -------------------- -------- --------- SIPS+D2U UDP [RFCXXXX] SIPS+D2D DCCP [RFCXXXX] SIP+D2D DCCP [RFCXXXX]
[Note to RFC Editor: Please replace XXXX with the RFC number of this specification.]
This document registers two new DCCP Service Codes registry as defined by RFC 4340.
Service Code ASCII Description Reference ------------ ----- ---------------------------------- --------- 1936289824 sip SIP over DCCP [RFCXXXX] 1936289907 sips SIP over DCCP over DTLS [RFCXXXX]
This document defines to new ports in the DCCP Port Numbers Registry as defined by RFC 4340.
Port Name Port Number Description Reference -------------- ------------- ------------------------- --------- sip-dccp 5060/dccp SIP over DCCP [RFCXXXX] sip-dtls-dccp 5061/dccp SIP over DTLS over DCCP [RFCXXXX]
Much of text and outline for this specification came from RFC 4168 authored by Jonathan Rosenberg, Henning Schulzrinne, and Gonzalo Camarillo. Jakob Schlyter caught several typos. Eric Rescorla provided helpful comments and text. Tom Phelan provided much of the DCCP text. Thanks also to Colin Perkins.
[1] | Phelan, T., “Datagram Transport Layer Security (DTLS) over the Datagram Congestion Control Protocol (DCCP),” draft-ietf-dccp-dtls (work in progress) (TXT). |
[2] | Rescorla, E. and N. Modadugu, “Datagram Transport Layer Security,” RFC 4347, April 2006 (TXT). |
[3] | Crocker, D. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” RFC 4234, October 2005 (TXT). |
[4] | 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 (TXT). |
[5] | Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (HTML, XML). |
[6] | Rosenberg, J. and H. Schulzrinne, “Session Initiation Protocol (SIP): Locating SIP Servers,” RFC 3263, June 2002 (TXT). |
[7] | Mealling, M., “Dynamic Delegation Discovery System (DDDS) Part Three: The Domain Name System (DNS) Database,” RFC 3403, October 2002 (TXT). |
[8] | Kohler, E., Handley, M., and S. Floyd, “Datagram Congestion Control Protocol (DCCP),” RFC 4340, March 2006 (TXT). |
[9] | Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.1,” RFC 4346, April 2006 (TXT). |
Cullen Jennings | |
Cisco Systems | |
170 West Tasman Drive | |
MS: SJC-21/2 | |
San Jose, CA 95134 | |
USA | |
Phone: | +1 408 902-3341 |
Email: | fluffy@cisco.com |
Nagendra Modadugu | |
Google, Inc. | |
1600 Ampitheatre Parkway | |
Muntain View, CA 94043 | |
USA | |
Email: | ngm@google.com |
Copyright © 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.
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.