idnits 2.17.1 draft-ietf-mmusic-dtls-sdp-25.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC5763, updated by this document, for RFC5378 checks: 2007-11-12) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (June 21, 2017) is 2494 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFCXXXX' is mentioned on line 748, but not defined == Unused Reference: 'RFC5245' is defined on line 1059, but no explicit reference was found in the text ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) == Outdated reference: A later version (-20) exists of draft-ietf-ice-rfc5245bis-10 == Outdated reference: A later version (-19) exists of draft-ietf-mmusic-sdp-mux-attributes-16 == Outdated reference: A later version (-54) exists of draft-ietf-mmusic-sdp-bundle-negotiation-38 -- Obsolete informational reference (is this intentional?): RFC 4474 (Obsoleted by RFC 8224) -- Obsolete informational reference (is this intentional?): RFC 4572 (Obsoleted by RFC 8122) -- Obsolete informational reference (is this intentional?): RFC 5245 (Obsoleted by RFC 8445, RFC 8839) Summary: 1 error (**), 0 flaws (~~), 6 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group C. Holmberg 3 Internet-Draft Ericsson 4 Updates: 5763,7345 (if approved) R. Shpount 5 Intended status: Standards Track TurboBridge 6 Expires: December 23, 2017 June 21, 2017 8 Using the SDP Offer/Answer Mechanism for DTLS 9 draft-ietf-mmusic-dtls-sdp-25.txt 11 Abstract 13 This document defines the SDP offer/answer procedures for negotiating 14 and establishing a DTLS association. The document also defines the 15 criteria for when a new DTLS association must be established. The 16 document updates RFC 5763 and RFC 7345, by replacing common SDP 17 offer/answer procedures with a reference to this specification. 19 This document defines a new SDP media-level attribute, 'tls-id'. 21 This document also defines how the 'tls-id' attribute can be used for 22 negotiating and establishing a TLS connection, in conjunction with 23 the procedures in RFC 4145 and RFC 8122. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on December 23, 2017. 42 Copyright Notice 44 Copyright (c) 2017 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4 61 3. Establishing a new DTLS Association . . . . . . . . . . . . . 4 62 3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 3.2. Change of Local Transport Parameters . . . . . . . . . . 4 64 3.3. Change of ICE ufrag value . . . . . . . . . . . . . . . . 5 65 4. SDP tls-id Attribute . . . . . . . . . . . . . . . . . . . . 5 66 5. SDP Offer/Answer Procedures . . . . . . . . . . . . . . . . . 6 67 5.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 6 68 5.2. Generating the Initial SDP Offer . . . . . . . . . . . . 8 69 5.3. Generating the Answer . . . . . . . . . . . . . . . . . . 9 70 5.4. Offerer Processing of the SDP Answer . . . . . . . . . . 10 71 5.5. Modifying the Session . . . . . . . . . . . . . . . . . . 10 72 6. ICE Considerations . . . . . . . . . . . . . . . . . . . . . 11 73 7. Transport Protocol Considerations . . . . . . . . . . . . . . 11 74 7.1. Transport Re-Usage . . . . . . . . . . . . . . . . . . . 11 75 8. TLS Considerations . . . . . . . . . . . . . . . . . . . . . 12 76 9. SIP Considerations . . . . . . . . . . . . . . . . . . . . . 13 77 10. RFC Updates . . . . . . . . . . . . . . . . . . . . . . . . . 14 78 10.1. General . . . . . . . . . . . . . . . . . . . . . . . . 14 79 10.2. Update to RFC 5763 . . . . . . . . . . . . . . . . . . . 14 80 10.2.1. Update to section 5 . . . . . . . . . . . . . . . . 14 81 10.2.2. Update to section 6.6 . . . . . . . . . . . . . . . 15 82 10.2.3. Update to section 6.7.1 . . . . . . . . . . . . . . 16 83 10.3. Update to RFC 7345 . . . . . . . . . . . . . . . . . . . 16 84 10.3.1. Update to section 4 . . . . . . . . . . . . . . . . 16 85 10.3.2. Update to section 5.2.1 . . . . . . . . . . . . . . 16 86 11. Security Considerations . . . . . . . . . . . . . . . . . . . 17 87 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 88 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 89 14. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 17 90 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 91 15.1. Normative References . . . . . . . . . . . . . . . . . . 22 92 15.2. Informative References . . . . . . . . . . . . . . . . . 23 93 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 95 1. Introduction 97 [RFC5763] defines SDP offer/answer procedures for SRTP-DTLS. 98 [RFC7345] defines SDP offer/answer procedures for UDPTL-DTLS. This 99 specification defines general offer/answer procedures for DTLS, based 100 on the procedures in [RFC5763]. Other specifications, defining 101 specific DTLS usages, can then reference this specification, in order 102 to ensure that the DTLS aspects are common among all usages. Having 103 common procedures is essential when multiple usages share the same 104 DTLS association [I-D.ietf-mmusic-sdp-bundle-negotiation]. The 105 document updates [RFC5763] and [RFC7345], by replacing common SDP 106 offer/answer procedures with a reference to this specification. 108 NOTE: Since the publication of [RFC5763], [RFC4474] has been 109 obsoleted by [I-D.ietf-stir-rfc4474bis]. The updating of the 110 references (and the associated procedures) within [RFC5763] is 111 outside the scope of this document. However, implementers of 112 [RFC5763] applications are encouraged to implement 113 [I-D.ietf-stir-rfc4474bis] instead of [RFC4474]. 115 As defined in [RFC5763], a new DTLS association MUST be established 116 when transport parameters are changed. Transport parameter change is 117 not well defined when Interactive Connectivity Establishment (ICE) 118 [I-D.ietf-ice-rfc5245bis] is used. One possible way to determine a 119 transport change is based on ufrag [I-D.ietf-ice-rfc5245bis] change, 120 but the ufrag value is changed both when ICE is negotiated and when 121 ICE restart [I-D.ietf-ice-rfc5245bis] occurs. These events do not 122 always require a new DTLS association to be established, but 123 currently there is no way to explicitly indicate in an SDP offer or 124 answer whether a new DTLS association is required. To solve that 125 problem, this document defines a new SDP attribute, 'tls-id'. The 126 pair of SDP 'tls-id' attribute values (the attribute values of the 127 offerer and the answerer) uniquely identifies the DTLS association. 128 Providing a new value of the 'tls-id' attribute in an SDP offer or 129 answers can be used to indicate whether a new DTLS association is to 130 be established. 132 The SDP 'tls-id' attribute can be specified when negotiating a TLS 133 connection, using the procedures in this document in conjunction with 134 the procedures in [RFC5763] and [RFC8122]. The unique combination of 135 SDP 'tls-id' attribute values can be used to identity the negotiated 136 TLS connection. The unique value can be used, for example, within 137 TLS protocol extensions to differentiate between multiple TLS 138 connections and correlate those connections with specific offer/ 139 answer exchanges. The TLS specific considerations are described in 140 Section 8. 142 2. Conventions 144 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 145 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 146 document are to be interpreted as described in [RFC2119]. 148 3. Establishing a new DTLS Association 150 3.1. General 152 A new DTLS association must be established between two endpoints 153 after a successful SDP offer/answer exchange in the following cases: 155 o The negotiated DTLS setup roles change; or 157 o One or more fingerprint values are modified, added or removed in 158 either an SDP offer or answer; or 160 o The intent to establish a new DTLS association is explicitly 161 signaled using SDP, by changing the value of the SDP 'tls-id' 162 attribute defined in this document; 164 NOTE: The first two items above are based on the procedures in 165 [RFC5763]. This specification adds the support for explicit 166 signaling using the SDP 'tls-id' attribute. 168 A new DTLS association can only be established as a result of the 169 successful SDP offer/answer exchange. Whenever an entity determines 170 that a new DTLS association is required, the entity MUST initiate an 171 SDP offer/answer exchange, following the procedures in Section 5. 173 The sections below describe typical cases where a new DTLS 174 association needs to be established. 176 In this document, a "new DTLS association" between two endpoints 177 refers to either an initial DTLS association (when no DTLS 178 association is currently established between the endpoints) or an 179 DTLS association replacing a previously established DTLS association. 181 3.2. Change of Local Transport Parameters 183 If an endpoint modifies its local transport parameters (address and/ 184 or port), and if the modification requires a new DTLS association, 185 the endpoint must change its local SDP 'tls-id' attribute value (see 186 Section 4). 188 If the underlying transport prohibits a DTLS association from 189 spanning multiple transports, and if the transport is changed, the 190 endpoint must change its local SDP 'tls-id' attribute value (see 191 Section 4). An example of such a case is when DTLS is carried over 192 SCTP, as described in [RFC6083]. 194 3.3. Change of ICE ufrag value 196 If an endpoint uses ICE, and modifies a local ufrag value, and if the 197 modification requires a new DTLS association, the endpoint MUST 198 change its local SDP 'tls-id' attribute value (see Section 4). 200 4. SDP tls-id Attribute 202 The pair of SDP 'tls-id' attribute values (the attribute values of 203 the offerer and the answerer) uniquely identifies the DTLS 204 association or TLS connection. 206 Name: tls-id 208 Value: tls-id-value 210 Usage Level: media 212 Charset Dependent: no 214 Default Value: N/A 216 Syntax: 218 tls-id-value = 20*255(tls-id-char) 219 tls-id-char = ALPHA / DIGIT / "+" / "/" / "-" / "_" 221 223 Example: 225 a=tls-id:abc3de65cddef001be82 227 Every time an endpoint requests to establish a new DTLS association, 228 the endpoint MUST generate a new local 'tls-id' attribute value. A 229 non-changed local 'tls-id' attribute value, in combination with non- 230 changed fingerprints, indicates that the endpoint intends to reuse 231 the existing DTLS association. 233 The 'tls-id' attribute value MUST be generated using a strong random 234 function and include at least 120 bits of randomness. 236 No default value is defined for the SDP 'tls-id' attribute. 237 Implementations that wish to use the attribute MUST explicitly 238 include it in SDP offers and answers. If an offer or answer does not 239 contain a 'tls-id' attribute (this could happen if the offerer or 240 answerer represents an existing implementation that has not been 241 updated to support the 'tls-id' attribute), unless there is another 242 mechanism to explicitly indicate that a new DTLS association is to be 243 established, a modification of one or more of the following 244 characteristics MUST be treated as an indication that an endpoint 245 wants to establish a new DTLS association: 247 o DTLS setup role; or 249 o fingerprint set; or 251 o local transport parameters; or 253 o ICE ufrag value 255 The mux category [I-D.ietf-mmusic-sdp-mux-attributes] for the 'tls- 256 id' attribute is 'IDENTICAL', which means that the attribute value 257 must be identical across all media descriptions being multiplexed 258 [I-D.ietf-mmusic-sdp-bundle-negotiation]. 260 For RTP-based media, the 'tls-id' attribute applies to the whole 261 associated media description. The attribute MUST NOT be defined per 262 source (using the SDP 'ssrc' attribute [RFC5576]). 264 The SDP offer/answer [RFC3264] procedures associated with the 265 attribute are defined in Section 5. 267 5. SDP Offer/Answer Procedures 269 5.1. General 271 This section defines the generic SDP offer/answer procedures for 272 negotiating a DTLS association. Additional procedures (e.g., 273 regarding usage of specific SDP attributes etc.) for individual DTLS 274 usages (e.g., SRTP-DTLS) are outside the scope of this specification, 275 and need to be specified in a usage specific specification. 277 NOTE: The procedures in this section are generalizations of 278 procedures first specified in SRTP-DTLS [RFC5763], with the addition 279 of usage of the SDP 'tls-id' attribute. That document is herein 280 updated to make use of these new procedures. 282 The procedures in this section apply to an SDP media description 283 ("m=" line) associated with DTLS-protected media/data. 285 When an offerer or answerer indicates that it wants to establish a 286 new DTLS association, it needs to make sure that media packets 287 associated with any previously established DTLS association and the 288 new DTLS association can be de-multiplexed. In case of an ordered 289 transport (e.g., SCTP) this can be done simply by sending packets for 290 the new DTLS association after all packets associated with a 291 previously established DTLS association has been sent. In case of an 292 unordered transport, such as UDP, packets associated with a 293 previously established DTLS association can arrive after the answer 294 SDP was received and after the first packets associated with the new 295 DTLS association were received. The only way to de-multiplex packets 296 associated with with a previously established DTLS association and 297 the new DTLS association is on the basis of transport 5-tuple. 298 Because of this, if an unordered transport is used for the DTLS 299 association, a new transport (3-tuple) must be allocated by at least 300 one of the endpoints so that DTLS packets can be de-multiplexed. 302 When an offerer needs to establish a new DTLS association, and if an 303 unordered transport (e.g., UDP) is used, the offerer MUST allocate a 304 new transport (3-tuple) for the offer in such a way that the offerer 305 can disambiguate any packets associated with the new DTLS association 306 from any packets associated with any other DTLS association. This 307 typically means using a local address and/or port, or a set of ICE 308 candidates (see Section 6), which were not recently used for any 309 other DTLS association. 311 When an answerer needs to establish a new DTLS association, if an 312 unordered transport is used, and if the offerer did not allocate a 313 new transport, the answerer MUST allocate a new transport for the 314 answer in such a way that it can disambiguate any packets associated 315 with the new DTLS association from any packets associated with any 316 other DTLS association. This typically means using a local address 317 and/or port, or a set of ICE candidates (see Section 6), which were 318 not recently used for any other DTLS association. 320 In order to negotiate a DTLS association, the following SDP 321 attributes are used: 323 o The SDP 'setup' attribute, defined in [RFC4145], is used to 324 negotiate the DTLS roles; 326 o The SDP 'fingerprint' attribute, defined in [RFC8122], is used to 327 provide one or more fingerprint values; and 329 o The SDP 'tls-id' attribute, defined in this specification, is used 330 to identity the DTLS association. 332 This specification does not define the usage of the SDP 'connection' 333 attribute [RFC4145] for negotiating a DTLS association. However, the 334 attribute MAY be used if the DTLS association is used together with 335 another protocol (e.g., SCTP or TCP) for which the usage of the 336 attribute has been defined. 338 Unlike for TCP and TLS connections, endpoints MUST NOT use the SDP 339 'setup' attribute 'holdconn' value when negotiating a DTLS 340 association. 342 Endpoints MUST support the cipher suites as defined in [RFC8122]. 344 The certificate received during the DTLS handshake MUST match a 345 certificate fingerprint received in SDP 'fingerprint' attributes 346 according to the procedures defined in [RFC8122]. If fingerprints do 347 not match the hashed certificate, then an endpoint MUST tear down the 348 media session immediately (see [RFC8122]). Note that it is 349 permissible to wait until the other side's fingerprint(s) has been 350 received before establishing the connection; however, this may have 351 undesirable latency effects. 353 SDP offerers and answerers might reuse certificates across multiple 354 DTLS associations, and provide identical fingerprint values for each 355 DTLS association. The combination of the SDP 'tls-id' attribute 356 values of the SDP offerer and answerer identifies each individual 357 DTLS association. 359 NOTE: There are cases where the SDP a€˜tls-ida€™ 360 attribute value generated by the offerer will end up being used for 361 multiple DTLS associations. For that reason the combination of the 362 attribute values of the offerer and answerer is needed in order to 363 identity a DTLS association. An example of such case is where the 364 offerer sends an updated offer (Section 5.5), without modifying its 365 attribute value, but the answerer determines that a new DTLS 366 association is to be created. The answerer will generate a new local 367 attribute value for the new DTLS association (Section 5.3), while the 368 offerer will use the same attribute value that it used for the 369 current association. Another example is when the Session Initiation 370 Protocol (SIP) [RFC3261] is used for signalling, and an offer is 371 forked to multiple answerers. The attribute value generated by the 372 offerer will be used for DTLS associations established by each 373 answerer. 375 5.2. Generating the Initial SDP Offer 377 When an offerer sends the initial offer, the offerer MUST insert an 378 SDP 'setup' attribute [RFC4145] with an 'actpass' attribute value, 379 and one or more SDP 'fingerprint' attributes according to the 380 procedures in [RFC8122]. In addition, the offerer MUST insert in the 381 offer an SDP 'tls-id' attribute with a unique attribute value. 383 As the offerer inserts the SDP 'setup' attribute with an 'actpass' 384 attribute value, the offerer MUST be prepared to receive a DTLS 385 ClientHello message (if a new DTLS association is established by the 386 answerer) from the answerer before the offerer receives the SDP 387 answer. 389 If the offerer receives a DTLS ClientHello message, and a DTLS 390 association is established, before the offerer receives the SDP 391 Answer carrying the fingerprint associated with the DTLS association, 392 any data received on the DTLS association before the fingerprint MUST 393 be considered coming from an unverified source. The processing of 394 such data, and sending of data by the offerer to the unverified 395 source, is outside the scope of this document. 397 5.3. Generating the Answer 399 When an answerer sends an answer, the answerer MUST insert in the 400 answer an SDP 'setup' attribute according to the procedures in 401 [RFC4145], and one or more SDP 'fingerprint' attributes according to 402 the procedures in [RFC8122]. If the answerer determines, based on 403 the criteria specified in Section 3.1, that a new DTLS association is 404 to be established, the answerer MUST insert in the associated answer 405 an SDP 'tls-id' attribute with a new unique attribute value. Note 406 that the offerer and answerer generate their own local 'tls-id' 407 attribute values, and the combination of both values identify the 408 DTLS association. 410 If the answerer receives an offer that requires establishment of a 411 new DTLS association, and if the answerer does not accept the 412 establishment of a new DTLS association, the answerer MUST reject the 413 "m=" lines associated with the suggested DTLS association [RFC3264]. 415 If an answerer receives an offer that does not require the 416 establishment of a new DTLS association, and if the answerer 417 determines that a new DTLS association is not to be established, the 418 answerer MUST insert an SDP 'tls-id' attribute with the previously 419 assigned attribute value in the associated answer. In addition, the 420 answerer MUST insert an SDP 'setup' attribute with an attribute value 421 that does not change the previously negotiated DTLS roles, and one or 422 more SDP 'fingerprint' attributes values that do not change the 423 previously sent fingerprint set, in the associated answer. 425 If the answerer receives an offer that does not contain an SDP 'tls- 426 id' attribute, the answerer MUST NOT insert a 'tls-id' attribute in 427 the answer. 429 If a new DTLS association is to be established, and if the answerer 430 inserts an SDP 'setup' attribute with an 'active' attribute value in 431 the answer, the answerer MUST initiate a DTLS handshake by sending a 432 DTLS ClientHello message towards the offerer. 434 Eventhough an offerer is required to insert an 'SDP' setup attribute 435 with an 'actpass' attribute value in initial offers (Section 5.2) and 436 subsequent offers (Section 5.5), the answerer MUST be able to receive 437 initial and subsequent offers with other attribute values, in order 438 to be backward compatible with older implementations that might 439 insert other attribute values in initial and subsequent offers. 441 5.4. Offerer Processing of the SDP Answer 443 When an offerer receives an answer that establishes a new DTLS 444 association based on criteria defined in Section 3.1, and if the 445 offerer becomes DTLS client (based on the value of the SDP 'setup' 446 attribute value [RFC4145]), the offerer MUST establish a DTLS 447 association. If the offerer becomes DTLS server, it MUST wait for 448 the answerer to establish the DTLS association. 450 If the offerer indiciated a desire to reuse an existing DTLS 451 association and the answerer does not request the establishment of a 452 new DTLS assocation, the offerer will continue to use the previously 453 established DTLS association. 455 NOTE: A new DTLS association can be established based on changes in 456 either an SDP offer or answer. When communicating with legacy 457 endpoints, an offerer can receive an answer that includes the same 458 fingerprint set and setup role. A new DTLS association MUST still be 459 established if such an answer was received as a response to an offer 460 which requested the establishment of a new DTLS association. 462 5.5. Modifying the Session 464 When an offerer sends a subsequent offer, and if the offerer wants to 465 establish a new DTLS association, the offerer MUST insert an SDP 466 'setup' attribute [RFC4145] with an 'actpass' attribute value, and 467 one or more SDP 'fingerprint' attributes according to the procedures 468 in [RFC8122]. In addition, the offerer MUST insert in the offer an 469 SDP 'tls-id' attribute with a new unique attribute value. 471 When an offerer sends a subsequent offer, and the offerer does not 472 want to establish a new DTLS association, and if a previously 473 established DTLS association exists, the offerer MUST insert an SDP 474 'setup' attribute with an 'actpass' attribute value, and one or more 475 SDP 'fingerprint' attributes with attribute values that do not change 476 the previously sent fingerprint set, in the offer. In addition, the 477 offerer MUST insert an SDP 'tls-id' attribute with the previously 478 assigned attribute value in the offer. 480 NOTE: When a new DTLS association is being established, each endpoint 481 needs to be prepared to receive data on both the new and old DTLS 482 associations as long as both are alive. 484 6. ICE Considerations 486 When the Interactive Connectivity Establishment (ICE) mechanism 487 [I-D.ietf-ice-rfc5245bis] is used, the ICE connectivity checks are 488 performed before the DTLS handshake begins. Note that if aggressive 489 nomination mode is used, multiple candidate pairs may be marked valid 490 before ICE finally converges on a single candidate pair. 492 NOTE: Aggressive nomination has been deprecated from ICE, but must 493 still be supported for backwards compatibility reasons 494 [I-D.ietf-ice-rfc5245bis]. 496 When a new DTLS association is established over an unordered 497 transport, in order to disambiguate any packets associated with the 498 newly established DTLS association, at least one of the endpoints 499 MUST allocate a completely new set of ICE candidates which were not 500 recently used for any other DTLS association. This means the 501 answerer cannot initiate a new DTLS association unless the offerer 502 initiated ICE restart [I-D.ietf-ice-rfc5245bis]. If the answerer 503 wants to initiate a new DTLS association, it needs to initiate an ICE 504 restart and a new offer/answer exchange on its own. However, an ICE 505 restart does not by default require a new DTLS association to be 506 established. 508 NOTE: Simple Traversal of the UDP Protocol through NAT (STUN) packets 509 are sent directly over UDP, not over DTLS. [RFC5764] describes how 510 to demultiplex STUN packets from DTLS packets and SRTP packets. 512 Each ICE candidate associated with a component is treated as being 513 part of the same DTLS association. Therefore, from a DTLS 514 perspective it is not considered a change of local transport 515 parameters when an endpoint switches between those ICE candidates. 517 7. Transport Protocol Considerations 519 7.1. Transport Re-Usage 521 If DTLS is transported on top of a connection-oriented transport 522 protocol (e.g., TCP or SCTP), where all IP packets are acknowledged, 523 all DTLS packets associated with a previous DTLS association MUST be 524 acknowledged (or timed out) before a new DTLS association can be 525 established on the same instance of that transport (5-tuple). 527 8. TLS Considerations 529 The procedures in this document can also be used for negotiating and 530 establishing aTLS connection, with the restriction described below. 532 As specified in [RFC4145], the SDP 'connection' attribute is used to 533 indicate whether to establish a new TLS connection. An offerer and 534 answerer MUST ensure that the 'connection' attribute value and the 535 'tls-id' attribute value does not cause a conflict regarding whether 536 a new TLS connection is to be established or not. 538 NOTE: Even though the SDP 'connection' attribute can be used to 539 indicate whether a new TLS connection is to be established, the 540 unique combination of SDP 'tls-id' attribute values can be used to 541 identity a TLS connection. The unique value can be used e.g., within 542 TLS protocol extensions to differentiate between multiple TLS 543 connections and correlate those connections with specific offer/ 544 answer exchanges. 546 If an offerer or answerer inserts an SDP 'connection' attribute with 547 a 'new' value in the offer/answer and also inserts an SDP 'tls-id' 548 attribute, the value of tls-id' attribute MUST be new and unique. 550 If an offerer or answerer inserts an SDP 'connection' attribute with 551 a 'existing' value in the offer/answer, if a previously established 552 TLS connection exists, and if the offerer/answerer previously 553 inserted an SDP 'tls-id' attribute associated with the same TLS 554 connection in an offer/answer, the offerer/answerer MUST also insert 555 an SDP 'tls-id' attribute with the previously assigned value in the 556 offer/answer. 558 If an offerer or answerer receives an offer/answer with conflicting 559 attribute values, the offerer/answerer MUST process the offer/answer 560 as misformed. 562 An endpoint must not make assumptions regarding the support of the 563 SDP 'tls-id' attribute by the peer. Therefore, to avoid ambiguity, 564 both offerers and answerers MUST always use the 'connection' 565 attribute in conjunction with the 'tls-id' attribute. 567 NOTE: As defined in [RFC4145], if the SDP 'connection' attribute is 568 not explicitly present, the implicit default value is 'new'. 570 The SDP example below is based on the example in section 3.4 of 571 [RFC3261], with the addition of the SDP 'tls-id' attribute. 573 m=image 54111 TCP/TLS t38 574 c=IN IP4 192.0.2.2 575 a=tls-id:abc3de65cddef001be82 576 a=setup:passive 577 a=connection:new 578 a=fingerprint:SHA-256 \ 579 12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF: \ 580 3E:5D:49:6B:19:E5:7C:AB:4A:AD 581 a=fingerprint:SHA-1 \ 582 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB 584 9. SIP Considerations 586 When the Session Initiation Protocol (SIP) [RFC3261] is used as the 587 signal protocol for establishing a multimedia session, dialogs 588 [RFC3261] might be established between the caller and multiple 589 callees. This is referred to as forking. If forking occurs, 590 separate DTLS associations will be established between the caller and 591 each callee. 593 When forking occurs, an SDP offerer can receive DTLS ClientHello 594 messages and SDP answerers from multiple remote locations. Because 595 of this, the offerer might have to wait for multiple SDP answers 596 (from different remote locations) until it receives a certificate 597 fingerprint that matches the certificate associated with a specific 598 DTLS handshake. The offerer MUST NOT decleare a fingerprint mismatch 599 until it determines that it will not receive SDP answers from any 600 additional remote locations. 602 It is possible to send an INVITE request which does not contain an 603 SDP offer. Such an INVITE request is often referred to as an 'empty 604 INVITE', or an 'offer-less INVITE'. The receiving endpoint will 605 include the SDP offer in a response to the request. When the 606 endpoint generates such SDP offer, if a previously established DTLS 607 association exists, the offerer MUST insert an SDP 'tls-id' 608 attribute, and one or more SDP 'fingerprint' attributes, with 609 previously assigned attribute values. If a previously established 610 DTLS association did not exist, the offer MUST be generated based on 611 the same rules as a new offer (see Section 5.2). Regardless of the 612 previous existence of a DTLS association, the SDP 'setup' attribute 613 MUST be included according to the rules defined in [RFC4145] and if 614 ICE is used, ICE restart MUST be initiated. 616 10. RFC Updates 618 10.1. General 620 This section updates specifications that use DTLS-protected media, in 621 order to reflect the procedures defined in this specification. 623 10.2. Update to RFC 5763 625 10.2.1. Update to section 5 627 The text in section 5 (Establishing a Secure Channel) is replaced 628 with the new text below: 630 NEW TEXT: 632 The two endpoints in the exchange present their identities as part of 633 the DTLS handshake procedure using certificates. This document uses 634 certificates in the same style as described in "Connection-Oriented 635 Media Transport over the Transport Layer Security (TLS) Protocol in 636 the Session Description Protocol (SDP)" [RFC4572]. 638 If self-signed certificates are used, the content of the 639 subjectAltName attribute inside the certificate MAY use the uniform 640 resource identifier (URI) of the user. This is useful for debugging 641 purposes only and is not required to bind the certificate to one of 642 the communication endpoints. The integrity of the certificate is 643 ensured through the fingerprint attribute in the SDP. 645 The generation of public/private key pairs is relatively expensive. 646 Endpoints are not required to generate certificates for each session. 648 The offer/answer model, defined in [RFC3264], is used by protocols 649 like the Session Initiation Protocol (SIP) [RFC3261] to set up 650 multimedia sessions. 652 When an endpoint wishes to set up a secure media session with another 653 endpoint, it sends an offer in a SIP message to the other endpoint. 654 This offer includes, as part of the SDP payload, a fingerprint of 655 a certificate that the endpoint wants to use. The endpoint SHOULD 656 send the SIP message containing the offer to the offerer's SIP proxy 657 over an integrity protected channel. The proxy SHOULD add an 658 Identity header field according to the procedures outlined in 659 [RFC4474]. When the far endpoint receives the SIP message, it can 660 verify the identity of the sender using the Identity header field. 661 Since the Identity header field is a digital signature across several 662 SIP header fields, in addition to the body of the SIP message, the 663 receiver can also be certain that the message has not been tampered 664 with after the digital signature was applied and added to the SIP 665 message. 667 The far endpoint (answerer) may now establish a DTLS association with 668 the offerer. Alternately, it can indicate in its answer that the 669 offerer is to initiate the DTLS association. In either case, mutual 670 DTLS certificate-based authentication will be used. After completing 671 the DTLS handshake, information about the authenticated identities, 672 including the certificates, are made available to the endpoint 673 application. The answerer is then able to verify that the offerer's 674 certificate used for authentication in the DTLS handshake can be 675 associated to a certificate fingerprint contained in the offer in 676 the SDP. At this point, the answerer may indicate to the end user 677 that the media is secured. The offerer may only tentatively accept 678 the answerer's certificate since it may not yet have the answerer's 679 certificate fingerprint. 681 When the answerer accepts the offer, it provides an answer back to 682 the offerer containing the answerer's certificate fingerprint. At 683 this point, the offerer can accept or reject the peer's certificate 684 and the offerer can indicate to the end user that the media is 685 secured. 687 Note that the entire authentication and key exchange for securing 688 the media traffic is handled in the media path through DTLS. The 689 signaling path is only used to verify the peers' certificate 690 fingerprints. 692 The offerer and answerer MUST follow the SDP offer/answer procedures 693 defined in [RFCXXXX]. 695 10.2.2. Update to section 6.6 697 The text in section 6.6 (Session Modification) is replaced with the 698 new text below: 700 NEW TEXT: 702 Once an answer is provided to the offerer, either endpoint MAY 703 request a session modification that MAY include an updated offer. 704 This session modification can be carried in either an INVITE or 705 UPDATE request. The peers can reuse an existing DTLS association, 706 or establish a new one, following the procedures in [RFCXXXX]. 708 10.2.3. Update to section 6.7.1 710 The text in section 6.7.1 (ICE Interaction) is replaced with the new 711 text below: 713 NEW TEXT: 715 The Interactive Connectivity Establishment (ICE) 716 [I-D.ietf-ice-rfc5245bis] considerations for DTLS-protected media 717 are described in [RFCXXXX]. 719 10.3. Update to RFC 7345 721 10.3.1. Update to section 4 723 The subsections (4.1.-4.5.) in section 4 (SDP Offerer/Answerer 724 Procedures) are removed, and replaced with the new text below: 726 NEW TEXT: 728 An endpoint (i.e., both the offerer and the answerer) MUST create an 729 SDP media description ("m=" line) for each UDPTL-over-DTLS media 730 stream and MUST assign a UDP/TLS/UDPTL value (see Table 1) to the 731 "proto" field of the "m=" line. 733 The offerer and answerer MUST follow the SDP offer/answer procedures 734 defined in [RFCXXXX] in order to negotiate the DTLS association 735 associated with the UDPTL-over-DTLS media stream. In addition, 736 the offerer and answerer MUST use the SDP attributes defined for 737 UDPTL over UDP, as defined in [ITU.T38.2010]. 739 10.3.2. Update to section 5.2.1 741 The text in section 5.2.1 (ICE Usage) is replaced with the new text 742 below: 744 NEW TEXT: 746 The Interactive Connectivity Establishment (ICE) 747 [I-D.ietf-ice-rfc5245bis] considerations for DTLS-protected media 748 are described in [RFCXXXX]. 750 [RFC EDITOR NOTE: Througout the document, please replace RFCXXXX 751 with the RFC number of this document.] 753 11. Security Considerations 755 This specification does not modify the security considerations 756 associated with DTLS, or the SDP offer/answer mechanism. In addition 757 to the introduction of the SDP 'tls-id' attribute, the specification 758 simply clarifies the procedures for negotiating and establishing a 759 DTLS association. 761 12. IANA Considerations 763 This document updates the "Session Description Protocol Parameters" 764 registry as specified in Section 8.2.2 of [RFC4566]. Specifically, 765 it adds the SDP 'tls-id' attribute to the table for SDP media level 766 attributes. 768 Attribute name: tls-id 769 Type of attribute: media-level 770 Subject to charset: no 771 Purpose: Indicates whether a new DTLS association or TLS connection 772 is to be established/re-established. 773 Appropriate Values: see Section 4 774 Contact name: Christer Holmberg 775 Mux Category: IDENTICAL 777 13. Acknowledgements 779 Thanks to Justin Uberti, Martin Thomson, Paul Kyzivat, Jens Guballa, 780 Charles Eckel, Gonzalo Salgueiro and Paul Jones for providing 781 comments and suggestions on the document. Ben Campbell performed an 782 AD review. 784 14. Change Log 786 [RFC EDITOR NOTE: Please remove this section when publishing] 788 Changes from draft-ietf-mmusic-sdp-dtls-24 789 o Changes based on 2nd WGLC comments from Roman S and Martin T: 791 o - RFC update structure shortened (old text removed). 793 o - Guidance regarding receiving ClientHello before SDP answer 794 added. 796 o - Additional SIP condierations regarding forking. 798 o - SDP setup attribute value restriction in initial and subsequent 799 offers based on comment from Ekr. 801 Changes from draft-ietf-mmusic-sdp-dtls-23 803 o Editrial change to make it clear that the document does not modify 804 the procedures in RFC 8122. 806 Changes from draft-ietf-mmusic-sdp-dtls-22 808 o Support for TLS added. 810 o Editorial changes based on sec-dir review by Rich Salz. 812 o Editorial changes based on gen-art review by Paul Kyzivat. 814 o Editorial changes based on ops-dir review by Carlos Pignataro. 816 Changes from draft-ietf-mmusic-sdp-dtls-21 818 o Changes based on AD review by Ben Campbell. 820 o (https://www.ietf.org/mail-archive/web/mmusic/current/ 821 msg17707.html) 823 Changes from draft-ietf-mmusic-sdp-dtls-20 825 o Change to length and randomness of tls-id attribute value. 827 Changes from draft-ietf-mmusic-sdp-dtls-19 829 o Change based on comment from Roman. 831 Changes from draft-ietf-mmusic-sdp-dtls-18 833 o Changes based on comments from Flemming. 835 o - Change in tls-id value definition. 837 o - Editorial fixes. 839 Changes from draft-ietf-mmusic-sdp-dtls-17 841 o Reference fix. 843 Changes from draft-ietf-mmusic-sdp-dtls-16 845 o Editorial changes based on 2nd WGLC comments from Christian Groves 846 and Nevenka Biondic. 848 Changes from draft-ietf-mmusic-sdp-dtls-15 850 o tls-id attribute value made globally unique 852 Changes from draft-ietf-mmusic-sdp-dtls-14 854 o Changes based on comments from Flemming: 856 o - Additional dtls-is clarifiations 858 o - Editorial fixes 860 Changes from draft-ietf-mmusic-sdp-dtls-13 862 o Text about the updated RFCs added to Abstract and Introduction 864 o Reference to RFC 5763 removed from section 6 (ICE Considerations) 866 o Reference to RFC 5763 removed from section 8 (SIP Considerations) 868 Changes from draft-ietf-mmusic-sdp-dtls-12 870 o "unreliable" changed to "unordered" 872 Changes from draft-ietf-mmusic-sdp-dtls-11 874 o Attribute name changed to tls-id 876 o Additional text based on comments from Roman Shpount. 878 Changes from draft-ietf-mmusic-sdp-dtls-10 880 o Modified document to use tls-id instead of dtls-connection 882 o Changes are based on comments from Eric Rescorla, Justin Uberti, 883 and Paul Kyzivat. 885 Changes from draft-ietf-mmusic-sdp-dtls-08 887 o Offer/Answer section modified in order to allow sending of 888 multiple SDP 'fingerprint' attributes. 890 o Terminology made consistent: 'DTLS connection' replaced with 'DTLS 891 association'. 893 o Editorial changes based on comments from Paul Kyzivat. 895 Changes from draft-ietf-mmusic-sdp-dtls-07 897 o Reference to RFC 7315 replaced with reference to RFC 7345. 899 Changes from draft-ietf-mmusic-sdp-dtls-06 901 o Text on restrictions regarding spanning a DTLS association over 902 multiple transports added. 904 o Mux category added to IANA Considerations. 906 o Normative text regarding mux category and source-specific 907 applicability added. 909 o Reference to RFC 7315 added. 911 o Clarified that offerer/answerer that has not been updated to 912 support this specification will not include the tls-id attribute 913 in offers and answers. 915 o Editorial corrections based on WGLC comments from Charles Eckel. 917 Changes from draft-ietf-mmusic-sdp-dtls-05 919 o Text on handling offer/answer error conditions added. 921 Changes from draft-ietf-mmusic-sdp-dtls-04 923 o Editorial nits fixed based on comments from Paul Kyzivat: 925 Changes from draft-ietf-mmusic-sdp-dtls-03 927 o Changes based on comments from Paul Kyzivat: 929 o - Modification of tls-id attribute section. 931 o - Removal of IANA considerations subsection. 933 o - Making note into normative text in o/a section. 935 o Changes based on comments from Martin Thompson: 937 o - Abbreviations section removed. 939 o - Clarify that a new DTLS association requires a new o/a 940 transaction. 942 Changes from draft-ietf-mmusic-sdp-dtls-02 944 o - Updated RFCs added to boilerplate. 946 Changes from draft-ietf-mmusic-sdp-dtls-01 948 o - Annex regarding 'tls-id-id' attribute removed. 950 o - Additional SDP offer/answer procedures, related to certificates, 951 added. 953 o - Updates to RFC 5763 and RFC 7345 added. 955 o - Transport protocol considerations added. 957 Changes from draft-ietf-mmusic-sdp-dtls-00 959 o - SDP 'connection' attribute replaced with new 'tls-id' attribute. 961 o - IANA Considerations added. 963 o - E-mail regarding 'tls-id-id' attribute added as Annex. 965 Changes from draft-holmberg-mmusic-sdp-dtls-01 967 o - draft-ietf-mmusic version of draft submitted. 969 o - Draft file name change (sdp-dtls -> dtls-sdp) due to collision 970 with another expired draft. 972 o - Clarify that if ufrag in offer is unchanged, it must be 973 unchanged in associated answer. 975 o - SIP Considerations section added. 977 o - Section about multiple SDP fingerprint attributes added. 979 Changes from draft-holmberg-mmusic-sdp-dtls-00 980 o - Editorial changes and clarifications. 982 15. References 984 15.1. Normative References 986 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 987 Requirement Levels", BCP 14, RFC 2119, 988 DOI 10.17487/RFC2119, March 1997, 989 . 991 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 992 A., Peterson, J., Sparks, R., Handley, M., and E. 993 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 994 DOI 10.17487/RFC3261, June 2002, 995 . 997 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 998 with Session Description Protocol (SDP)", RFC 3264, 999 DOI 10.17487/RFC3264, June 2002, 1000 . 1002 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1003 the Session Description Protocol (SDP)", RFC 4145, 1004 DOI 10.17487/RFC4145, September 2005, 1005 . 1007 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1008 Description Protocol", RFC 4566, DOI 10.17487/RFC4566, 1009 July 2006, . 1011 [RFC5763] Fischl, J., Tschofenig, H., and E. Rescorla, "Framework 1012 for Establishing a Secure Real-time Transport Protocol 1013 (SRTP) Security Context Using Datagram Transport Layer 1014 Security (DTLS)", RFC 5763, DOI 10.17487/RFC5763, May 1015 2010, . 1017 [RFC7345] Holmberg, C., Sedlacek, I., and G. Salgueiro, "UDP 1018 Transport Layer (UDPTL) over Datagram Transport Layer 1019 Security (DTLS)", RFC 7345, DOI 10.17487/RFC7345, August 1020 2014, . 1022 [RFC8122] Lennox, J. and C. Holmberg, "Connection-Oriented Media 1023 Transport over the Transport Layer Security (TLS) Protocol 1024 in the Session Description Protocol (SDP)", RFC 8122, 1025 DOI 10.17487/RFC8122, March 2017, 1026 . 1028 [I-D.ietf-ice-rfc5245bis] 1029 Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive 1030 Connectivity Establishment (ICE): A Protocol for Network 1031 Address Translator (NAT) Traversal", draft-ietf-ice- 1032 rfc5245bis-10 (work in progress), May 2017. 1034 [I-D.ietf-mmusic-sdp-mux-attributes] 1035 Nandakumar, S., "A Framework for SDP Attributes when 1036 Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-16 1037 (work in progress), December 2016. 1039 [I-D.ietf-mmusic-sdp-bundle-negotiation] 1040 Holmberg, C., Alvestrand, H., and C. Jennings, 1041 "Negotiating Media Multiplexing Using the Session 1042 Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- 1043 negotiation-38 (work in progress), April 2017. 1045 15.2. Informative References 1047 [RFC4474] Peterson, J. and C. Jennings, "Enhancements for 1048 Authenticated Identity Management in the Session 1049 Initiation Protocol (SIP)", RFC 4474, 1050 DOI 10.17487/RFC4474, August 2006, 1051 . 1053 [RFC4572] Lennox, J., "Connection-Oriented Media Transport over the 1054 Transport Layer Security (TLS) Protocol in the Session 1055 Description Protocol (SDP)", RFC 4572, 1056 DOI 10.17487/RFC4572, July 2006, 1057 . 1059 [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment 1060 (ICE): A Protocol for Network Address Translator (NAT) 1061 Traversal for Offer/Answer Protocols", RFC 5245, 1062 DOI 10.17487/RFC5245, April 2010, 1063 . 1065 [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific 1066 Media Attributes in the Session Description Protocol 1067 (SDP)", RFC 5576, DOI 10.17487/RFC5576, June 2009, 1068 . 1070 [RFC5764] McGrew, D. and E. Rescorla, "Datagram Transport Layer 1071 Security (DTLS) Extension to Establish Keys for the Secure 1072 Real-time Transport Protocol (SRTP)", RFC 5764, 1073 DOI 10.17487/RFC5764, May 2010, 1074 . 1076 [RFC6083] Tuexen, M., Seggelmann, R., and E. Rescorla, "Datagram 1077 Transport Layer Security (DTLS) for Stream Control 1078 Transmission Protocol (SCTP)", RFC 6083, 1079 DOI 10.17487/RFC6083, January 2011, 1080 . 1082 [I-D.ietf-stir-rfc4474bis] 1083 Peterson, J., Jennings, C., Rescorla, E., and C. Wendt, 1084 "Authenticated Identity Management in the Session 1085 Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-16 1086 (work in progress), February 2017. 1088 [ITU.T38.2010] 1089 International Telecommunications Union, "Procedures for 1090 real-time Group 3 facsimile communication over IP 1091 networks", ITU-T Recommendation T.38, September 2010. 1093 Authors' Addresses 1095 Christer Holmberg 1096 Ericsson 1097 Hirsalantie 11 1098 Jorvas 02420 1099 Finland 1101 Email: christer.holmberg@ericsson.com 1103 Roman Shpount 1104 TurboBridge 1105 4905 Del Ray Avenue, Suite 300 1106 Bethesda, MD 20814 1107 USA 1109 Phone: +1 (240) 292-6632 1110 Email: rshpount@turbobridge.com