| rfc8842xml2.original.xml | rfc8842.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="iso-8859-1"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!-- comment --> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]> | ||||
| <?rfc toc="yes" ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" | |||
| <?rfc compact="yes" ?> | category="std" docName="draft-ietf-mmusic-dtls-sdp-32" | |||
| <?rfc sortrefs="no" ?> | updates="5763, 7345" submissionType="IETF" xml:lang="en" obsoletes="" | |||
| <rfc ipr="trust200902" category="std" docName="draft-ietf-mmusic-dtls-sdp-32.txt | tocInclude="true" symRefs="true" sortRefs="true" version="3" | |||
| " updates="5763,7345" submissionType="IETF" xml:lang="en"> | number="8842" consensus="true"> | |||
| <!-- xml2rfc v2v3 conversion 2.35.0 --> | ||||
| <front> | <front> | |||
| <title> | <title abbrev="SDP Offer/Answer Considerations for DTLS and TLS">Session | |||
| Session Description Protocol (SDP) Offer/Answer Considerations for Datag | Description Protocol (SDP) Offer/Answer Considerations for Datagram | |||
| ram Transport Layer Security (DTLS) | Transport Layer Security (DTLS) and Transport Layer Security (TLS)</title> | |||
| and Transport Layer Security (TLS) | <seriesInfo name="RFC" value="8842"/> | |||
| </title> | <author fullname="Christer Holmberg" initials="C." surname="Holmberg"> | |||
| <author fullname="Christer Holmberg" initials="C.H." surname="Holmberg"> | <organization abbrev="Ericsson">Ericsson</organization> | |||
| <organization abbrev="Ericsson">Ericsson</organization> | <address> | |||
| <address> | <postal> | |||
| <postal> | <street>Hirsalantie 11</street> | |||
| <street>Hirsalantie 11</street> | <city>Jorvas</city> | |||
| <city>Jorvas</city> | <region/> | |||
| <region></region> | <code>02420</code> | |||
| <code>02420</code> | <country>Finland</country> | |||
| <country>Finland</country> | </postal> | |||
| </postal> | <phone/> | |||
| <phone></phone> | <email>christer.holmberg@ericsson.com</email> | |||
| <email>christer.holmberg@ericsson.com</email> | </address> | |||
| </address> | ||||
| </author> | </author> | |||
| <author fullname="Roman Shpount" initials="R.S." surname="Shpount"> | <author fullname="Roman Shpount" initials="R." surname="Shpount"> | |||
| <organization abbrev="TurboBridge">TurboBridge</organization> | <organization abbrev="TurboBridge">TurboBridge</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>4905 Del Ray Avenue, Suite 300</street> | <street>4905 Del Ray Avenue, Suite 300</street> | |||
| <city>Bethesda</city> | <city>Bethesda</city> | |||
| <region>MD</region> | <region>MD</region> | |||
| <code>20814</code> | <code>20814</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone>+1 (240) 292-6632</phone> | <email>rshpount@turbobridge.com</email> | |||
| <email>rshpount@turbobridge.com</email> | </address> | |||
| </address> | ||||
| </author> | </author> | |||
| <date month="January" year="2021"/> | ||||
| <date year="2017" /> | ||||
| <area>RAI</area> | <area>RAI</area> | |||
| <keyword>SDP</keyword> | ||||
| <keyword>DTLS</keyword> | ||||
| <keyword>tls-id</keyword> | ||||
| <abstract> | <abstract> | |||
| <t> | <t> | |||
| This document defines the Session Description Protocol (SDP) offer/a | This document defines the Session Description Protocol (SDP) | |||
| nswer procedures for | offer/answer procedures for negotiating and establishing a Datagram | |||
| negotiating and establishing a Datagram Transport Layer Security (DT | Transport Layer Security (DTLS) association. The document also | |||
| LS) association. | defines the criteria for when a new DTLS association must be | |||
| The document also defines the criteria for when a new DTLS associati | established. The document updates RFCs 5763 and 7345 by replacing | |||
| on must be established. | common SDP offer/answer procedures with a reference to this | |||
| The document updates RFC 5763 and RFC 7345, by replacing common SDP | specification. | |||
| offer/answer procedures | </t> | |||
| with a reference to this specification. | <t> | |||
| </t> | This document defines a new SDP media-level attribute, "tls-id". | |||
| <t> | </t> | |||
| This document defines a new SDP media-level attribute, 'tls-id'. | <t> | |||
| </t> | This document also defines how the "tls-id" attribute can be used | |||
| <t> | for negotiating and establishing a Transport Layer Security (TLS) | |||
| This document also defines how the 'tls-id' attribute can be used fo | connection, in conjunction with the procedures in RFCs 4145 and | |||
| r negotiating | 8122. | |||
| and establishing a Transport Layer Security (TLS) connection, in con | </t> | |||
| junction with | ||||
| the procedures in RFC 4145 and RFC 8122. | ||||
| </t> | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="default"> | |||
| <t> | <name>Introduction</name> | |||
| <xref format="default" pageno="false" target="RFC5763"/> defines | <t> | |||
| Session Description Protocol (SDP) | <xref format="default" target="RFC5763"/> defines Session | |||
| offer/answer procedures for Secure Realtime Transport Protocol U | Description Protocol (SDP) | |||
| sing Datagram Transport Layer Security (DTLS-SRTP). | offer/answer procedures for Secure Real-time Transport | |||
| <xref format="default" pageno="false" target="RFC7345"/> defines | Protocol using Datagram Transport Layer Security (DTLS-SRTP). | |||
| SDP offer/answer procedures for | <xref format="default" target="RFC7345"/> defines SDP | |||
| UDP Transport Layer over Datagram Transport Layer Security (UDPT | offer/answer procedures for | |||
| L-DTLS). This specification | UDP Transport Layer over Datagram Transport Layer Security | |||
| defines general offer/answer procedures for DTLS, based on the p | (UDPTL-DTLS). This specification | |||
| rocedures in <xref format="default" pageno="false" target="RFC5763"/>. | defines general offer/answer procedures for DTLS, based on the | |||
| Other specifications, defining specific DTLS usages, can then re | procedures in <xref format="default" target="RFC5763"/>. | |||
| ference this specification, | Other specifications, defining specific DTLS usages, can then | |||
| in order to ensure that the DTLS aspects are common among all us | reference this specification, | |||
| ages. Having common | in order to ensure that the DTLS aspects are common among all | |||
| usages. Having common | ||||
| procedures is essential when multiple usages share the same | procedures is essential when multiple usages share the same | |||
| DTLS association <xref target="I-D.ietf-mmusic-sdp-bundle-negoti | DTLS association <xref target="RFC8843" format="default"/>. | |||
| ation"/>. | This document updates <xref format="default" target="RFC5763"/> | |||
| The document updates <xref format="default" pageno="false" targe | and <xref format="default" target="RFC7345"/> by replacing commo | |||
| t="RFC5763"/> | n | |||
| and <xref format="default" pageno="false" target="RFC7345"/>, by | ||||
| replacing common | ||||
| SDP offer/answer procedures with a reference to this specificati on. | SDP offer/answer procedures with a reference to this specificati on. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: Since the publication of <xref format="default" pageno="fa | <t> | |||
| lse" target="RFC5763"/>, | NOTE: Since the publication of <xref format="default" target="RF | |||
| <xref format="default" pageno="false" target="RFC4474"/> has bee | C5763"/>, | |||
| n obsoleted by | <xref format="default" target="RFC4474"/> has been obsoleted by | |||
| <xref format="default" pageno="false" target="I-D.ietf-stir-rfc4 | <xref format="default" target="RFC8224"/>. The updating | |||
| 474bis"/>. The updating | of the references (and the associated procedures) within <xref | |||
| of the references (and the associated procedures) within <xref f | format="default" target="RFC5763"/> is outside the scope of | |||
| ormat="default" pageno="false" | this document. However, implementers of | |||
| target="RFC5763"/> is outside the scope of this document. Howeve | <xref format="default" target="RFC5763"/> applications are encou | |||
| r, implementers of | raged to | |||
| <xref format="default" pageno="false" target="RFC5763"/> applica | implement <xref format="default" target="RFC8224"/> instead | |||
| tions are encouraged to | of <xref format="default" target="RFC4474"/>. | |||
| implement <xref format="default" pageno="false" target="I-D.ietf | </t> | |||
| -stir-rfc4474bis"/> instead | </aside> | |||
| of <xref format="default" pageno="false" target="RFC4474"/>. | <t> | |||
| </t> | As defined in <xref format="default" target="RFC5763"/>, a new DTLS asso | |||
| <t> | ciation | |||
| As defined in <xref format="default" pageno="false" target="RFC5 | <bcp14>MUST</bcp14> be established when transport parameters are | |||
| 763"/>, a new DTLS association | changed. Transport parameter change is not | |||
| MUST be established when transport parameters are changed. Trans | well defined when Interactive Connectivity Establishment (ICE) | |||
| port parameter change is not | <xref format="default" target="RFC8445"/> is | |||
| well defined when Interactive Connectivity Establishment (ICE) < | used. One possible way to determine a transport change is | |||
| xref format="default" | based on ufrag <xref format="default" target="RFC8445"/> change, | |||
| pageno="false" target="I-D.ietf-ice-rfc5245bis"/> is used. One p | but the ufrag value is changed both when ICE is negotiated | |||
| ossible way to determine a transport change is | and when ICE restart <xref format="default" target="RFC8445"/> occurs. T | |||
| based on ufrag <xref format="default" pageno="false" target="I-D | hese events | |||
| .ietf-ice-rfc5245bis"/> change, | do not always require a new DTLS association to be established, but | |||
| but the ufrag value is changed both when ICE is negotiated | previously there was no way | |||
| and when ICE restart <xref format="default" pageno="false" targe | to explicitly indicate in an SDP offer or answer whether a new DTLS | |||
| t="I-D.ietf-ice-rfc5245bis"/> occurs. These events | association was required. | |||
| do not always require a new DTLS association to be established, | To solve that problem, this document defines a new SDP attribute, | |||
| but previously there was no way | "tls-id". The pair of | |||
| to explicitly indicate in an SDP offer or answer whether a new D | SDP "tls-id" attribute values (the attribute values of the offerer and t | |||
| TLS association is required. | he answerer) | |||
| To solve that problem, this document defines a new SDP attribute | uniquely identifies the DTLS association. Providing a new value of the | |||
| , 'tls-id'. The pair of | "tls-id" attribute in an SDP offer | |||
| SDP 'tls-id' attribute values (the attribute values of the offer | or answer can be used to indicate whether a new DTLS association is | |||
| er and the answerer) | to be established. | |||
| uniquely identifies the DTLS association. Providing a new value | </t> | |||
| of the 'tls-id' attribute in an SDP offer | <t> | |||
| or answers can be used to indicate whether a new DTLS associatio | The SDP "tls-id" attribute can be specified when negotiating a | |||
| n is to be established. | Transport Layer Security (TLS) connection, using | |||
| </t> | the procedures in this document in conjunction with the procedures in | |||
| <t> | <xref format="default" target="RFC5763"/> and <xref format="default" | |||
| The SDP 'tls-id' attribute can be specified when negotiating a T | target="RFC8122"/>. | |||
| ransport Layer Security (TLS) connection, using | The unique combination of SDP "tls-id" attribute values can be used to | |||
| the procedures in this document in conjunction with the procedur | identify the negotiated | |||
| es in <xref format="default" | TLS connection. The unique value can be used, for example, within TLS | |||
| pageno="false" target="RFC5763"/> and <xref format="default" pag | protocol extensions to | |||
| eno="false" target="RFC8122"/>. | differentiate between multiple TLS connections and correlate those | |||
| The unique combination of SDP 'tls-id' attribute values can be u | connections with specific | |||
| sed to identity the negotiated | offer/answer exchanges. The TLS-specific considerations are described | |||
| TLS connection. The unique value can be used, for example, withi | in <xref format="default" target="sec-tls-cons"/>. | |||
| n TLS protocol extensions to | </t> | |||
| differentiate between multiple TLS connections and correlate tho | ||||
| se connections with specific | ||||
| offer/answer exchanges. The TLS specific considerations are des | ||||
| cribed in <xref format="default" | ||||
| pageno="false" target="sec-tls-cons"/>. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Conventions"> | <name>Conventions</name> | |||
| <t> | <t> | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| "OPTIONAL" in this document are to be interpreted as described in | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and o | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| nly | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
| when, they appear in all capitals, as shown here. | to be interpreted as described in BCP 14 <xref target="RFC2119"/> | |||
| <xref target="RFC8174"/> when, and only when, they appear in all capitals, | ||||
| as shown here. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Establishing a new DTLS Association"> | <name>Establishing a New DTLS Association</name> | |||
| <section title="General" anchor="sec-dtls-gen"> | <section anchor="sec-dtls-gen" numbered="true" toc="default"> | |||
| <t> | <name>General</name> | |||
| <t> | ||||
| A new DTLS association must be established between two endpoints after a | A new DTLS association must be established between two endpoints after a | |||
| successful SDP offer/answer exchange in the following cases: | successful SDP offer/answer exchange in the following cases: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| The negotiated DTLS setup roles change; or | <li> | |||
| </t> | The negotiated DTLS setup roles change; or | |||
| <t> | </li> | |||
| One or more fingerprint values are modified, added | <li> | |||
| or removed in either an SDP offer or answer; or | One or more fingerprint values are modified, added, | |||
| </t> | or removed in either an SDP offer or answer; or | |||
| <t> | </li> | |||
| The intent to establish a new DTLS association is | <li> | |||
| explicitly signaled using SDP, by changing the value | The intent to establish a new DTLS association is | |||
| of the | explicitly signaled using SDP, by changing the value of the | |||
| SDP 'tls-id' attribute defined in this document; | SDP "tls-id" attribute defined in this document; | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | <aside> | |||
| <t> | <t> | |||
| NOTE: The first two items above are based on the procedures | NOTE: The first two items above are based on the procedures | |||
| in <xref format="default" pageno="false" target="RFC5763"/>. | in <xref format="default" target="RFC5763"/>. | |||
| This specification adds the support for explicit signaling using | This specification adds the support for explicit signaling using the | |||
| the SDP 'tls-id' attribute. | SDP "tls-id" attribute. | |||
| </t> | </t> | |||
| <t> | </aside> | |||
| A new DTLS association can only be established as a result of th | <t> | |||
| e successful SDP offer/answer exchange. | A new DTLS association can only be established as a result of the | |||
| Whenever an entity determines that a new DTLS association is req | successful SDP offer/answer exchange. | |||
| uired, the entity MUST initiate an | Whenever an entity determines that a new DTLS association is | |||
| SDP offer/answer exchange, following the procedures in <xref tar | required, the entity <bcp14>MUST</bcp14> initiate an | |||
| get="sec-oa"/>. | SDP offer/answer exchange, following the procedures in <xref | |||
| </t> | target="sec-oa" format="default"/>. | |||
| <t> | </t> | |||
| The sections below describe typical cases where a new DTLS assoc | <t> | |||
| iation needs to be established. | The sections below describe typical cases where a new DTLS | |||
| </t> | association needs to be established. | |||
| <t> | </t> | |||
| In this document, a "new DTLS association" between two endpoints | <t> | |||
| refers to either | In this document, a "new DTLS association" between two endpoints refer | |||
| an initial DTLS association (when no DTLS association is current | s to either | |||
| ly established between | an initial DTLS association (when no DTLS association is currently | |||
| the endpoints) or an DTLS association replacing a previously est | established between | |||
| ablished DTLS association. | the endpoints) or a DTLS association replacing a previously | |||
| </t> | established one. | |||
| </section> | </t> | |||
| <section title="Change of Local Transport Parameters" anchor="sec-dtls-t | </section> | |||
| ransport"> | <section anchor="sec-dtls-transport" numbered="true" toc="default"> | |||
| <t> | <name>Change of Local Transport Parameters</name> | |||
| If an endpoint modifies its local transport parameters (address | <t> | |||
| and/or port), and if the modification | If an endpoint modifies its local transport parameters | |||
| requires a new DTLS association, the endpoint MUST change its lo | (address and/or port), and if the modification | |||
| cal SDP 'tls-id' | requires a new DTLS association, the endpoint | |||
| attribute value (see <xref target="sec-dcon-attr"/>). | <bcp14>MUST</bcp14> change its local SDP "tls-id" | |||
| </t> | attribute value (see <xref target="sec-dcon-attr" format="defaul | |||
| <t> | t"/>). | |||
| </t> | ||||
| <t> | ||||
| If the underlying transport protocol prohibits a DTLS associatio n from spanning multiple 5-tuples | If the underlying transport protocol prohibits a DTLS associatio n from spanning multiple 5-tuples | |||
| (transport/source address/source port/destination address/destin ation port), | (transport/source address/source port/destination address/destin ation port), | |||
| and if the 5-tuple is changed, the endpoint MUST change its loca l SDP 'tls-id' attribute value (see <xref target="sec-dcon-attr"/>). | and if the 5-tuple is changed, the endpoint <bcp14>MUST</bcp14> change its local SDP "tls-id" attribute value (see <xref target="sec-dcon-attr" format="default"/>). | |||
| An example of such a case is when DTLS is carried over the Strea m Control Transmission Protocol (SCTP), | An example of such a case is when DTLS is carried over the Strea m Control Transmission Protocol (SCTP), | |||
| as described in <xref format="default" pageno="false" target="RF | as described in <xref format="default" target="RFC6083"/>. | |||
| C6083"/>. | </t> | |||
| </t> | </section> | |||
| </section> | <section anchor="sec-dtls-ufrag" numbered="true" toc="default"> | |||
| <section title="Change of ICE ufrag value" anchor="sec-dtls-ufrag"> | <name>Change of ICE ufrag Value</name> | |||
| <t> | ||||
| If an endpoint uses ICE, and modifies a local ufrag value, and i | ||||
| f the modification | ||||
| requires a new DTLS association, the endpoint MUST change its lo | ||||
| cal SDP 'tls-id' | ||||
| attribute value (see <xref target="sec-dcon-attr"/>). | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="SDP tls-id Attribute" anchor="sec-dcon-attr"> | ||||
| <t> | <t> | |||
| The pair of SDP 'tls-id' attribute values (the attribute values of t | If an endpoint uses ICE and modifies a local ufrag value, and if the m | |||
| he offerer and the answerer) | odification | |||
| uniquely identifies the DTLS association or TLS connection. | requires a new DTLS association, the endpoint | |||
| <bcp14>MUST</bcp14> change its local SDP "tls-id" | ||||
| attribute value (see <xref target="sec-dcon-attr" format="default"/>). | ||||
| </t> | </t> | |||
| <figure> | </section> | |||
| <artwork align="left"><![CDATA[ | </section> | |||
| Name: tls-id | ||||
| Value: tls-id-value | <section anchor="sec-dcon-attr" numbered="true" toc="default"> | |||
| <name>SDP "tls-id" Attribute</name> | ||||
| <t> | ||||
| The pair of SDP "tls-id" attribute values (the attribute values of the | ||||
| offerer and the answerer) | ||||
| uniquely identifies the DTLS association or TLS connection. | ||||
| </t> | ||||
| Usage Level: media | <dl newline="false"> | |||
| Charset Dependent: no | <dt>Name:</dt> | |||
| <dd>tls-id</dd> | ||||
| Default Value: N/A | <dt>Value:</dt> | |||
| <dd>tls-id-value</dd> | ||||
| Syntax: | <dt>Usage Level:</dt> | |||
| <dd>media</dd> | ||||
| tls-id-value = 20*255(tls-id-char) | <dt>Charset Dependent:</dt> | |||
| tls-id-char = ALPHA / DIGIT / "+" / "/" / "-" / "_" | <dd>no</dd> | |||
| <ALPHA and DIGIT defined in [RFC4566]> | <dt>Default Value:</dt> | |||
| <dd>N/A</dd> | ||||
| Example: | <dt>Syntax:</dt> | |||
| <dd> | ||||
| <sourcecode type="abnf"> | ||||
| tls-id-value = 20*255(tls-id-char) | ||||
| tls-id-char = ALPHA / DIGIT / "+" / "/" / "-" / "_" | ||||
| </sourcecode> | ||||
| <t><ALPHA and DIGIT defined in RFC 4566></t> | ||||
| </dd> | ||||
| a=tls-id:abc3de65cddef001be82 | <dt>Example:</dt> | |||
| <dd> | ||||
| <sourcecode type="sdp"> | ||||
| a=tls-id:abc3de65cddef001be82 | ||||
| </sourcecode> | ||||
| </dd> | ||||
| </dl> | ||||
| ]]></artwork> | <t> | |||
| </figure> | Every time an endpoint requests to establish a new DTLS | |||
| <t> | association, the endpoint <bcp14>MUST</bcp14> | |||
| Every time an endpoint requests to establish a new DTLS association, | generate a new local "tls-id" attribute value. An unchanged local | |||
| the endpoint MUST | "tls-id" attribute | |||
| generate a new local 'tls-id' attribute value. A non-changed local ' | value, in combination with non-changed fingerprints, indicates | |||
| tls-id' attribute | that the endpoint | |||
| value, in combination with non-changed fingerprints, indicates that | ||||
| the endpoint | ||||
| intends to reuse the existing DTLS association. | intends to reuse the existing DTLS association. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The 'tls-id' attribute value MUST be generated using a strong random | The "tls-id" attribute value <bcp14>MUST</bcp14> be generated using | |||
| function | a strong random function | |||
| and include at least 120 bits of randomness. | and include at least 120 bits of randomness. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| No default value is defined for the SDP 'tls-id' attribute. | No default value is defined for the SDP "tls-id" attribute. | |||
| Implementations that wish to use the attribute MUST explicitly | Implementations that wish to use the attribute <bcp14>MUST</bcp14> e | |||
| xplicitly | ||||
| include it in SDP offers and answers. If an offer or answer does not | include it in SDP offers and answers. If an offer or answer does not | |||
| contain a 'tls-id' attribute (this could happen if the offerer or | contain a "tls-id" attribute (this could happen if the offerer or | |||
| answerer represents an existing implementation that has not been | answerer represents an existing implementation that has not been | |||
| updated to support the 'tls-id' attribute), unless there is | updated to support the "tls-id" attribute), a modification of one | |||
| or more of the following characteristics <bcp14>MUST</bcp14> be | ||||
| treated as an indication that an endpoint | ||||
| wants to establish a new DTLS association, unless there is | ||||
| another mechanism to explicitly indicate that a new DTLS association | another mechanism to explicitly indicate that a new DTLS association | |||
| is to be established, a modification of one or more of the following | is to be established: | |||
| characteristics MUST be treated as an indication that an endpoint | </t> | |||
| wants to establish a new DTLS association: | <ul spacing="normal"> | |||
| <list style="symbols"> | <li> | |||
| <t> | DTLS setup role; or | |||
| DTLS setup role; or | </li> | |||
| </t> | <li> | |||
| <t> | fingerprint set; or | |||
| fingerprint set; or | </li> | |||
| </t> | <li> | |||
| <t> | local transport parameters | |||
| local transport parameters | </li> | |||
| </t> | </ul> | |||
| </list> | <aside> | |||
| </t> | <t> | |||
| <t> | ||||
| NOTE: A modification of the ufrag value is not treated as an indicat ion | NOTE: A modification of the ufrag value is not treated as an indicat ion | |||
| that an endpoint wants to establish a new DTLS assocation. In order to | that an endpoint wants to establish a new DTLS association. In order to | |||
| indicate that a new DTLS association is to be established, one or mo re | indicate that a new DTLS association is to be established, one or mo re | |||
| of the characteristics listed above have to be modified. | of the characteristics listed above have to be modified. | |||
| </t> | ||||
| </aside> | ||||
| <t> | ||||
| The mux category <xref target="RFC8859" format="default"/> | ||||
| for the "tls-id" attribute is "IDENTICAL", which means that | ||||
| the attribute value applies to all media descriptions | ||||
| being multiplexed <xref target="RFC8843" format="default"/>. | ||||
| However, as described in <xref target="RFC8843" format="default"/>, | ||||
| in order to avoid duplication, the attribute is only associated with | ||||
| the "m=" line | ||||
| representing the offerer/answerer BUNDLE tag. | ||||
| </t> | ||||
| <t> | ||||
| For RTP-based media, the "tls-id" attribute applies to the whole ass | ||||
| ociated | ||||
| media description. The attribute <bcp14>MUST NOT</bcp14> be defined | ||||
| per source (using the | ||||
| SDP "ssrc" attribute <xref format="default" target="RFC5576"/>). | ||||
| </t> | ||||
| <t> | ||||
| The SDP offer/answer procedures <xref format="default" target="RFC32 | ||||
| 64"/> | ||||
| associated with the attribute are defined in <xref target="sec-oa" f | ||||
| ormat="default"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="sec-oa" numbered="true" toc="default"> | ||||
| <name>SDP Offer/Answer Procedures</name> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>General</name> | ||||
| <t> | ||||
| This section defines the generic SDP offer/answer procedures | ||||
| for negotiating | ||||
| a DTLS association. Additional procedures (e.g., regarding | ||||
| usage of specific SDP | ||||
| attributes) for individual DTLS usages (e.g., DTLS-SRTP) | ||||
| are outside the scope | ||||
| of this specification and need to be specified in a | ||||
| usage-specific document. | ||||
| </t> | </t> | |||
| <aside> | ||||
| <t> | <t> | |||
| The mux category <xref target="I-D.ietf-mmusic-sdp-mux-attributes"/> | NOTE: The procedures in this section are generalizations of procedures | |||
| for the 'tls-id' attribute is 'IDENTICAL', which means that | first | |||
| the attribute value applies to all media descriptions | specified in the DTLS-SRTP document <xref format="default" target="RFC | |||
| being multiplexed <xref target="I-D.ietf-mmusic-sdp-bundle-negotiati | 5763"/>, | |||
| on"/>. | with the addition of usage of the SDP "tls-id" attribute. That documen | |||
| However, as described in <xref target="I-D.ietf-mmusic-sdp-bundle-ne | t is | |||
| gotiation"/>, | herein updated to make use of these new procedures. | |||
| in order to avoid duplication the attribute is only associated with | ||||
| the "m=" line | ||||
| representing the offerer/answerer BUNDLE-tag. | ||||
| </t> | </t> | |||
| </aside> | ||||
| <t> | <t> | |||
| For RTP-based media, the 'tls-id' attribute applies to the whole ass | The procedures in this section apply to an SDP media description | |||
| ociated | ("m=" line) associated | |||
| media description. The attribute MUST NOT be defined per source (usi | with DTLS-protected media/data. | |||
| ng the | ||||
| SDP 'ssrc' attribute <xref format="default" pageno="false" target="R | ||||
| FC5576"/>). | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| The SDP offer/answer <xref format="default" pageno="false" target="R | When an offerer or answerer indicates that it wants to establish a | |||
| FC3264"/> | new DTLS association, it needs to make sure that | |||
| procedures associated with the attribute are defined in <xref target | media packets associated with any previously established DTLS | |||
| ="sec-oa"/>. | association and the new DTLS association can be demultiplexed. In | |||
| the case | ||||
| of an ordered transport (e.g., SCTP), this can be done simply by | ||||
| sending packets for the new DTLS association | ||||
| after all packets associated with a previously established DTLS | ||||
| association have been sent. In the case of an unordered transport, such | ||||
| as | ||||
| UDP, packets associated with a previously established DTLS | ||||
| association can arrive after the answer SDP and | ||||
| the first packets associated with the new DTLS association have been | ||||
| received. The | ||||
| only way to demultiplex packets associated with | ||||
| a previously established DTLS association and the new DTLS | ||||
| association is on the basis of the 5-tuple. Because of this, if an | ||||
| unordered transport | ||||
| is used for the DTLS association, a new 3-tuple (transport/source | ||||
| address/source port) <bcp14>MUST</bcp14> be allocated by at least | ||||
| one of the endpoints so that DTLS packets can be demultiplexed. | ||||
| </t> | </t> | |||
| </section> | <t> | |||
| When an offerer needs to establish a new DTLS association, and if an | ||||
| <section title="SDP Offer/Answer Procedures" anchor="sec-oa"> | unordered transport (e.g., UDP) | |||
| <section title="General"> | is used, the offerer <bcp14>MUST</bcp14> allocate a new 3-tuple for | |||
| <t> | the offer in such a way that the offerer can | |||
| This section defines the generic SDP offer/answer procedures for | disambiguate any packets associated with the new DTLS association | |||
| negotiating | from any packets associated with | |||
| a DTLS association. Additional procedures (e.g., regarding usage | any other DTLS association. This typically means using a local | |||
| of specific SDP | address and/or port, or a set of | |||
| attributes etc.) for individual DTLS usages (e.g., DTLS-SRTP) ar | ICE candidates (see <xref format="default" | |||
| e outside the scope | target="sec-dtls-reest-ice"/>), which were | |||
| of this specification, and need to be specified in a usage speci | not recently used for any other DTLS association. | |||
| fic specification. | </t> | |||
| </t> | <t> | |||
| <t> | When an answerer needs to establish a new DTLS association, if an | |||
| NOTE: The procedures in this section are generalizations of proc | unordered transport is used, and | |||
| edures first | the offerer did not allocate a new 3-tuple, the answerer | |||
| specified in DTLS-SRTP <xref format="default" pageno="false" tar | <bcp14>MUST</bcp14> allocate a new 3-tuple for the | |||
| get="RFC5763"/>, | answer in such a way that it can disambiguate any packets associated | |||
| with the addition of usage of the SDP 'tls-id' attribute. That d | with the new DTLS association from any | |||
| ocument is | packets associated with any other DTLS association. This typically | |||
| herein updated to make use of these new procedures. | means using a local address and/or | |||
| </t> | port, or a set of ICE candidates (see <xref format="default" | |||
| <t> | target="sec-dtls-reest-ice"/>), | |||
| The procedures in this section apply to an SDP media description | which were not recently used for any other DTLS association. | |||
| ("m=" line) associated | </t> | |||
| with DTLS-protected media/data. | <t> | |||
| </t> | ||||
| <t> | ||||
| When an offerer or answerer indicates that it wants to establish | ||||
| a new DTLS association, it needs to make sure that | ||||
| media packets associated with any previously established DTLS as | ||||
| sociation and the new DTLS association can be de-multiplexed. In case | ||||
| of an ordered transport (e.g., SCTP) this can be done simply by | ||||
| sending packets for the new DTLS association | ||||
| after all packets associated with a previously established DTLS | ||||
| association has been sent. In case of an unordered transport, such as | ||||
| UDP, packets associated with a previously established DTLS assoc | ||||
| iation can arrive after the answer SDP was received and after the first | ||||
| packets associated with the new DTLS association were received. | ||||
| The only way to de-multiplex packets associated with | ||||
| with a previously established DTLS association and the new DTLS | ||||
| association is on the basis of the 5-tuple. Because of this, if an unordered tra | ||||
| nsport | ||||
| is used for the DTLS association, a new 3-tuple (transport/sourc | ||||
| e address/source port) MUST be allocated by at least one | ||||
| of the endpoints so that DTLS packets can be de-multiplexed. | ||||
| </t> | ||||
| <t> | ||||
| When an offerer needs to establish a new DTLS association, and i | ||||
| f an unordered transport (e.g., UDP) | ||||
| is used, the offerer MUST allocate a new 3-tuple for the offer i | ||||
| n such a way that the offerer can | ||||
| disambiguate any packets associated with the new DTLS associatio | ||||
| n from any packets associated with | ||||
| any other DTLS association. This typically means using a local a | ||||
| ddress and/or port, or a set of | ||||
| ICE candidates (see <xref format="default" pageno="false" target | ||||
| ="sec-dtls-reest-ice"/>), which were | ||||
| not recently used for any other DTLS association. | ||||
| </t> | ||||
| <t> | ||||
| When an answerer needs to establish a new DTLS association, if a | ||||
| n unordered transport is used, and if | ||||
| the offerer did not allocate a new 3-tuple, the answerer MUST al | ||||
| locate a new 3-tuple for the | ||||
| answer in such a way that it can disambiguate any packets associ | ||||
| ated with the new DTLS association from any | ||||
| packets associated with any other DTLS association. This typical | ||||
| ly means using a local address and/or | ||||
| port, or a set of ICE candidates (see <xref format="default" pag | ||||
| eno="false" target="sec-dtls-reest-ice"/>), | ||||
| which were not recently used for any other DTLS association. | ||||
| </t> | ||||
| <t> | ||||
| In order to negotiate a DTLS association, the following SDP attr ibutes are used: | In order to negotiate a DTLS association, the following SDP attr ibutes are used: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| The SDP 'setup' attribute, defined in <xref target="RFC4 | <li> | |||
| 145" pageno="false" | The SDP "setup" attribute, defined in <xref target="RFC4 | |||
| format="default" />, is used to negotiate the DTLS roles | 145" format="default"/>, is used to negotiate the DTLS roles; | |||
| ; | </li> | |||
| </t> | <li> | |||
| <t> | The SDP "fingerprint" attribute, defined in <xref format | |||
| The SDP 'fingerprint' attribute, defined in <xref format | ="default" target="RFC8122"/>, is used to | |||
| ="default" | ||||
| pageno="false" target="RFC8122"/>, is used to | ||||
| provide one or more fingerprint values; and | provide one or more fingerprint values; and | |||
| </t> | </li> | |||
| <t> | <li> | |||
| The SDP 'tls-id' attribute, defined in this specificatio | The SDP "tls-id" attribute, defined in this specificatio | |||
| n, is used to identity | n, is used to identity | |||
| the DTLS association. | the DTLS association. | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | <t> | |||
| <t> | This specification does not define the usage of the SDP "connect | |||
| This specification does not define the usage of the SDP 'connect | ion" attribute | |||
| ion' attribute | <xref target="RFC4145" format="default"/> for negotiating a DTLS | |||
| <xref target="RFC4145" pageno="false" format="default" /> for ne | association. However, the attribute <bcp14>MAY</bcp14> be used i | |||
| gotiating a DTLS | f the DTLS association is used | |||
| association. However, the attribute MAY be used if the DTLS asso | ||||
| ciation is used | ||||
| together with another protocol (e.g., SCTP or TCP) for which the usage of the | together with another protocol (e.g., SCTP or TCP) for which the usage of the | |||
| attribute has been defined. | attribute has been defined. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Unlike for TCP and TLS connections, endpoints MUST NOT use the | Unlike for TCP and TLS connections, endpoints <bcp14>MUST NOT</b | |||
| SDP 'setup' attribute 'holdconn' value when negotiating a DTLS a | cp14> use the | |||
| ssociation. | SDP "setup" attribute "holdconn" value when negotiating a DTLS a | |||
| </t> | ssociation. | |||
| <t> | </t> | |||
| Endpoints MUST support the hash functions as defined in | <t> | |||
| <xref format="default" pageno="false" target="RFC8122"/>. | Endpoints <bcp14>MUST</bcp14> support the hash functions as defi | |||
| </t> | ned in | |||
| <t> | <xref format="default" target="RFC8122"/>. | |||
| The certificate received during the DTLS handshake <xref format= | </t> | |||
| "default" | <t> | |||
| pageno="false" target="RFC6347"/> MUST match a certificate | The certificate received during the DTLS handshake <xref format= | |||
| fingerprint received in SDP 'fingerprint' attributes according t | "default" target="RFC6347"/> <bcp14>MUST</bcp14> match a certificate | |||
| o the procedures | fingerprint received in SDP "fingerprint" attributes according t | |||
| defined in <xref format="default" pageno="false" target="RFC8122 | o the procedures | |||
| "/>. | defined in <xref format="default" target="RFC8122"/>. | |||
| If fingerprints do not match the hashed certificate, then an end | If fingerprints do not match the hashed certificate, then an end | |||
| point MUST tear | point <bcp14>MUST</bcp14> tear | |||
| down the media session immediately (see <xref format="default" p | down the media session immediately (see <xref format="default" t | |||
| ageno="false" | arget="RFC8122"/>). | |||
| target="RFC8122"/>). | </t> | |||
| </t> | <t> | |||
| <t> | ||||
| SDP offerers and answerers might reuse certificates across multi ple DTLS | SDP offerers and answerers might reuse certificates across multi ple DTLS | |||
| associations, and provide identical fingerprint values for each DTLS | associations, and provide identical fingerprint values for each DTLS | |||
| association. The combination of the SDP 'tls-id' attribute value s of the SDP | association. The combination of the SDP "tls-id" attribute value s of the SDP | |||
| offerer and answerer identifies each individual DTLS association . | offerer and answerer identifies each individual DTLS association . | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: There are cases where the SDP 'tls-id' attribute value gen | <t> | |||
| erated by the | NOTE: There are cases where the SDP "tls-id" attribute value generated | |||
| offerer will end up being used for multiple DTLS associations. F | by the | |||
| or that reason | offerer will end up being used for multiple DTLS associations. For tha | |||
| the combination of the attribute values of the offerer and answe | t reason, | |||
| rer is needed | the combination of the attribute values of the offerer and answerer is | |||
| in order to identity a DTLS association. An example of such case | needed | |||
| is where the | in order to identity a DTLS association. An example of such a case is | |||
| offerer sends an updated offer (<xref target="sec-oa-mod"/>), wi | where the | |||
| thout modifying its | offerer sends an updated offer (<xref target="sec-oa-mod" | |||
| attribute value, but the answerer determines that a new DTLS ass | format="default"/>) without modifying its | |||
| ociation is to | attribute value, but the answerer determines that a new DTLS associati | |||
| be created. The answerer will generate a new local attribute val | on is to | |||
| ue for the new | be created. The answerer will generate a new local attribute value for | |||
| DTLS association (<xref target="sec-oa-answer"/>), while the off | the new | |||
| erer will use the | DTLS association (<xref target="sec-oa-answer" format="default"/>), wh | |||
| same attribute value that it used for the current association. A | ile the offerer will use the | |||
| nother example is | same attribute value that it used for the current association. Another | |||
| when the Session Initiation Protocol (SIP) <xref format="default | example is | |||
| " pageno="false" | when the Session Initiation Protocol (SIP) <xref format="default" | |||
| target="RFC3261"/> is used for signalling, and an offer is forke | target="RFC3261"/> is used for signaling, and an offer is forked to | |||
| d to multiple answerers. | multiple answerers. | |||
| The attribute value generated by the offerer will be used for DT | The attribute value generated by the offerer will be used for DTLS ass | |||
| LS associations | ociations | |||
| established by each answerer. | established by each answerer. | |||
| </t> | </t> | |||
| </section> | </aside> | |||
| </section> | ||||
| <section title="Generating the Initial SDP Offer" anchor="sec-oa-offer"> | <section anchor="sec-oa-offer" numbered="true" toc="default"> | |||
| <t> | <name>Generating the Initial SDP Offer</name> | |||
| When an offerer sends the initial offer, the offerer MUST insert | <t> | |||
| an SDP 'setup' attribute | When an offerer sends the initial offer, the offerer | |||
| <xref format="default" pageno="false" target="RFC4145"/> with an | <bcp14>MUST</bcp14> insert an SDP "setup" attribute | |||
| 'actpass' attribute value, and | <xref format="default" target="RFC4145"/> with an "actpass" | |||
| one or more SDP 'fingerprint' attributes according to the proced | attribute value, as well as | |||
| ures in <xref format="default" | one or more SDP "fingerprint" attributes according to the procedures | |||
| pageno="false" target="RFC8122"/>. In addition, the offerer MUST | in <xref format="default" target="RFC8122"/>. In addition, the | |||
| insert in the offer an SDP | offerer <bcp14>MUST</bcp14> insert in the offer an SDP | |||
| 'tls-id' attribute with a unique attribute value. | "tls-id" attribute with a unique attribute value. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As the offerer inserts the SDP 'setup' attribute with an 'actpas | As the offerer inserts the SDP "setup" attribute with an | |||
| s' attribute value, the | "actpass" attribute value, the | |||
| offerer MUST be prepared to receive a DTLS ClientHello message < | offerer <bcp14>MUST</bcp14> be prepared to receive a DTLS | |||
| xref format="default" pageno="false" | ClientHello message <xref format="default" target="RFC6347"/> | |||
| target="RFC6347"/> (if a new DTLS association is established by | from the answerer | |||
| the answerer) from the answerer | (if a new DTLS association is established by the answerer) | |||
| before the offerer receives the SDP answer. | before the offerer receives the SDP answer. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the offerer receives a DTLS ClientHello message, and a DTLS a | If the offerer receives a DTLS ClientHello message, and a DTLS | |||
| ssociation is established, | association is established | |||
| before the offerer receives the SDP Answer carrying the fingerpr | before the offerer receives the SDP answer carrying the | |||
| int associated with the DTLS | fingerprint associated with the DTLS | |||
| association, any data received on the DTLS association before th | association, any data received on the DTLS association before | |||
| e fingerprint MUST be | the fingerprint <bcp14>MUST</bcp14> be | |||
| considered coming from an unverified source. The processing of s | considered to be coming from an unverified source. The processing of | |||
| uch data, and sending of data | such data and sending of data | |||
| by the offerer to the unverified source, is outside the scope of | by the offerer to the unverified source is outside the scope | |||
| this document. | of this document. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="Generating the Answer" anchor="sec-oa-answer"> | <section anchor="sec-oa-answer" numbered="true" toc="default"> | |||
| <t> | <name>Generating the Answer</name> | |||
| When an answerer sends an answer, the answerer MUST insert in th | <t> | |||
| e answer an SDP 'setup' attribute | When an answerer sends an answer, the answerer | |||
| according to the procedures in <xref format="default" pageno="fa | <bcp14>MUST</bcp14> insert in the answer an SDP "setup" | |||
| lse" target="RFC4145"/>, and one | attribute | |||
| or more SDP 'fingerprint' attributes according to the procedures | according to the procedures in <xref format="default" | |||
| in <xref format="default" | target="RFC4145"/> and one | |||
| pageno="false" target="RFC8122"/>. | or more SDP "fingerprint" attributes according to the | |||
| If the answerer determines, based on the criteria specified in < | procedures in <xref format="default" target="RFC8122"/>. | |||
| xref target="sec-dtls-gen"/>, | If the answerer determines, based on the criteria specified in | |||
| that a new DTLS association is to be established, the answerer M | <xref target="sec-dtls-gen" format="default"/>, | |||
| UST insert in the associated answer | that a new DTLS association is to be established, the answerer | |||
| an SDP 'tls-id' attribute with a new unique attribute value. Not | <bcp14>MUST</bcp14> insert in the associated answer | |||
| e that the offerer and answerer generate | an SDP "tls-id" attribute with a new unique attribute | |||
| their own local 'tls-id' attribute values, and the combination o | value. Note that the offerer and answerer generate | |||
| f both values identify the | their own local "tls-id" attribute values, and the combination | |||
| of both values identifies the | ||||
| DTLS association. | DTLS association. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the answerer receives an offer that requires establishment of a new DTLS association, and if the | If the answerer receives an offer that requires establishment of a new DTLS association, and if the | |||
| answerer does not accept the establishment of a new DTLS associa tion, the answerer MUST reject | answerer does not accept the establishment of a new DTLS associa tion, the answerer <bcp14>MUST</bcp14> reject | |||
| the "m=" lines associated with the suggested DTLS association | the "m=" lines associated with the suggested DTLS association | |||
| <xref format="default" pageno="false" target="RFC3264"/>. | <xref format="default" target="RFC3264"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If an answerer receives an offer that does not require the estab lishment of a new DTLS association, | If an answerer receives an offer that does not require the estab lishment of a new DTLS association, | |||
| and if the answerer determines that a new DTLS association is no t to be established, | and if the answerer determines that a new DTLS association is no t to be established, | |||
| the answerer MUST insert an SDP 'tls-id' attribute with the prev | the answerer <bcp14>MUST</bcp14> insert in the associated | |||
| iously assigned attribute value in the | answer an SDP "tls-id" | |||
| associated answer. In addition, the answerer MUST insert an SDP | attribute with the previously assigned attribute value. In | |||
| 'setup' attribute with an | addition, the answerer | |||
| attribute value that does not change the previously negotiated D | <bcp14>MUST</bcp14> insert an SDP "setup" attribute with an | |||
| TLS roles, and one or more SDP 'fingerprint' | attribute value that does not change the previously negotiated | |||
| attributes values that do not change the previously sent fingerp | DTLS roles, as well as one or more SDP "fingerprint" | |||
| rint set, in the associated answer. | attributes values that do not change the previously sent | |||
| </t> | fingerprint set, in the associated answer. | |||
| <t> | </t> | |||
| If the answerer receives an offer that does not contain an SDP ' | <t> | |||
| tls-id' attribute, | If the answerer receives an offer that does not contain an SDP "tls-id | |||
| the answerer MUST NOT insert a 'tls-id' attribute in the answer. | " attribute, | |||
| </t> | the answerer <bcp14>MUST NOT</bcp14> insert a "tls-id" attribute in th | |||
| <t> | e answer. | |||
| If a new DTLS association is to be established, and if the answe | </t> | |||
| rer inserts an SDP 'setup' | <t> | |||
| attribute with an 'active' attribute value in the answer, the an | If a new DTLS association is to be established, and if the | |||
| swerer MUST initiate a DTLS handshake | answerer inserts an SDP "setup" | |||
| <xref format="default" pageno="false" target="RFC6347"/>) by sen | attribute with an "active" attribute value in the answer, the | |||
| ding a DTLS ClientHello message towards the offerer. | answerer <bcp14>MUST</bcp14> initiate a DTLS handshake | |||
| </t> | <xref format="default" target="RFC6347"/> by sending a DTLS | |||
| <t> | ClientHello message towards the offerer. | |||
| Even though an offerer is required to insert an 'SDP' setup attr | </t> | |||
| ibute with an 'actpass' attribute value | <t> | |||
| in initial offers (<xref target="sec-oa-offer"/>) and subsequent | Even though an offerer is required to insert an "SDP" setup attr | |||
| offers (<xref target="sec-oa-mod"/>), | ibute with an "actpass" attribute value | |||
| the answerer MUST be able to receive initial and subsequent offe | in initial offers (<xref target="sec-oa-offer" format="default"/ | |||
| rs with other attribute values, in order | >) and subsequent offers (<xref target="sec-oa-mod" format="default"/>), | |||
| the answerer <bcp14>MUST</bcp14> be able to receive initial and | ||||
| subsequent offers with other attribute values, in order | ||||
| to be backward compatible with older implementations that might insert other attribute values in initial and | to be backward compatible with older implementations that might insert other attribute values in initial and | |||
| subsequent offers. | subsequent offers. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="Offerer Processing of the SDP Answer"> | <section numbered="true" toc="default"> | |||
| <t> | <name>Offerer Processing of the SDP Answer</name> | |||
| When an offerer receives an answer that establishes a new DTLS a | <t> | |||
| ssociation based on | When an offerer receives an answer that establishes a new DTLS | |||
| criteria defined in <xref target="sec-dtls-gen"/>, and if the of | association based on | |||
| ferer | criteria defined in <xref target="sec-dtls-gen" | |||
| becomes DTLS client (based on the value of the SDP 'setup' attri | format="default"/>, if the offerer | |||
| bute value | becomes DTLS client (based on the value of the SDP "setup" attri | |||
| <xref format="default" pageno="false" target="RFC4145"/>), the o | bute value | |||
| fferer MUST | <xref format="default" target="RFC4145"/>), the offerer <bcp14>M | |||
| establish a DTLS association. If the offerer becomes DTLS server | UST</bcp14> | |||
| , it MUST wait for the answerer | establish a DTLS association. If the offerer becomes DTLS server | |||
| , it <bcp14>MUST</bcp14> wait for the answerer | ||||
| to establish the DTLS association. | to establish the DTLS association. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the offerer indicated a desire to reuse an existing DTLS asso | If the offerer indicated a desire to reuse an existing DTLS | |||
| ciation and the | association, and the | |||
| answerer does not request the establishment of a new DTLS associ | answerer does not request the establishment of a new DTLS | |||
| ation, the offerer will | association, the offerer will | |||
| continue to use the previously established DTLS association. | continue to use the previously established DTLS association. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A new DTLS association can be established based on changes in ei | A new DTLS association can be established based on changes in either | |||
| ther an SDP offer or answer. | an SDP offer or answer. | |||
| When communicating with legacy endpoints, an offerer can receive | When communicating with legacy endpoints, an offerer can receive an | |||
| an answer that includes the same | answer that includes the same | |||
| fingerprint set and setup role. A new DTLS association will stil | fingerprint set and setup role. A new DTLS association will still be | |||
| l be established if such an answer | established if such an answer | |||
| was received as a response to an offer which requested the estab | is received as a response to an offer that requested the | |||
| lishment of a new DTLS association, | establishment of a new DTLS association, | |||
| as the transport parameters would have been changed in the offer | as the transport parameters would have been changed in the offer. | |||
| . | </t> | |||
| </t> | </section> | |||
| </section> | <section anchor="sec-oa-mod" numbered="true" toc="default"> | |||
| <section title="Modifying the Session" anchor="sec-oa-mod"> | <name>Modifying the Session</name> | |||
| <t> | <t> | |||
| When an offerer sends a subsequent offer, and if the offerer wan | When an offerer sends a subsequent offer, if the offerer | |||
| ts to establish a new | wants to establish a new | |||
| DTLS association, the offerer MUST insert an SDP 'setup' attribu | DTLS association, the offerer <bcp14>MUST</bcp14> insert an | |||
| te <xref format="default" | SDP "setup" attribute <xref format="default" | |||
| pageno="false" target="RFC4145"/> with an 'actpass' attribute va | target="RFC4145"/> with an "actpass" attribute value, as well as | |||
| lue, and one or more SDP 'fingerprint' | or more SDP "fingerprint" | |||
| attributes according to the procedures in <xref format="default" | attributes according to the procedures in <xref | |||
| pageno="false" target="RFC8122"/>. | format="default" target="RFC8122"/>. | |||
| In addition, the offerer MUST insert in the offer an SDP 'tls-id | In addition, the offerer <bcp14>MUST</bcp14> insert in the offer | |||
| ' attribute with a new unique | an SDP "tls-id" attribute with a new unique | |||
| attribute value. | attribute value. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When an offerer sends a subsequent offer, and the offerer does n | When an offerer sends a subsequent offer and does | |||
| ot want to establish | not want to establish | |||
| a new DTLS association, and if a previously established DTLS ass | a new DTLS association, if a previously established DTLS | |||
| ociation exists, | association exists, | |||
| the offerer MUST insert an SDP 'setup' attribute with an 'actpas | the offerer <bcp14>MUST</bcp14> insert in the offer an SDP "setu | |||
| s' attribute value, and | p" | |||
| one or more SDP 'fingerprint' attributes with attribute values t | attribute with an "actpass" attribute value, and | |||
| hat do not change the previously | one or more SDP "fingerprint" attributes with attribute values | |||
| sent fingerprint set, in the offer. In addition, the offerer MUS | that do not change the previously | |||
| T insert an SDP 'tls-id' | sent fingerprint set. In addition, the offerer | |||
| <bcp14>MUST</bcp14> insert an SDP "tls-id" | ||||
| attribute with the previously assigned attribute value in the of fer. | attribute with the previously assigned attribute value in the of fer. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: When a new DTLS association is being established, each end | ||||
| point needs to be prepared to receive | ||||
| data on both the new and old DTLS associations as long as both a | ||||
| re alive. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="ICE Considerations" anchor="sec-dtls-reest-ice"> | ||||
| <t> | <t> | |||
| NOTE: When a new DTLS association is being established, each | ||||
| endpoint needs to be prepared to receive | ||||
| data on both the new and old DTLS associations as long as both are | ||||
| alive. | ||||
| </t> | ||||
| </aside> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="sec-dtls-reest-ice" numbered="true" toc="default"> | ||||
| <name>ICE Considerations</name> | ||||
| <t> | ||||
| When the Interactive Connectivity Establishment (ICE) mechanism | When the Interactive Connectivity Establishment (ICE) mechanism | |||
| <xref format="default" pageno="false" target="I-D.ietf-ice-rfc5245bi s"/> is used, the | <xref format="default" target="RFC8445"/> is used, the | |||
| ICE connectivity checks are performed before the DTLS | ICE connectivity checks are performed before the DTLS | |||
| handshake begins. Note that if aggressive nomination mode is used, | handshake begins. Note that if aggressive nomination mode is used, | |||
| multiple candidate pairs may be marked valid before ICE finally | multiple candidate pairs may be marked valid before ICE finally | |||
| converges on a single candidate pair. | converges on a single candidate pair. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: Aggressive nomination has been deprecated from ICE, but must s | <t> | |||
| till be | NOTE: Aggressive nomination has been deprecated from ICE but must still | |||
| supported for backwards compatibility reasons <xref format="default" | be | |||
| pageno="false" | supported for backwards compatibility reasons <xref format="default" | |||
| target="I-D.ietf-ice-rfc5245bis"/>. | target="RFC8445"/>. | |||
| </t> | </t> | |||
| <t> | </aside> | |||
| When a new DTLS association is established over an unordered transpo | <t> | |||
| rt, in order to | When a new DTLS association is established over an unordered | |||
| disambiguate any packets associated with the newly established DTLS | transport, in order to | |||
| association, at least | disambiguate any packets associated with the newly established | |||
| one of the endpoints MUST allocate a completely new set of ICE candi | DTLS association, at least | |||
| dates which | one of the endpoints <bcp14>MUST</bcp14> allocate a completely new | |||
| set of ICE candidates that | ||||
| were not recently used for any other DTLS association. This means th e answerer | were not recently used for any other DTLS association. This means th e answerer | |||
| cannot initiate a new DTLS association unless the offerer initiated ICE restart | cannot initiate a new DTLS association unless the offerer initiated ICE restart | |||
| <xref format="default" pageno="false" target="I-D.ietf-ice-rfc5245bi s"/>. If the answerer wants | <xref format="default" target="RFC8445"/>. If the answerer wants | |||
| to initiate a new DTLS association, it needs to initiate an ICE rest art | to initiate a new DTLS association, it needs to initiate an ICE rest art | |||
| and a new offer/answer exchange on its own. However, an ICE restart does not by | and a new offer/answer exchange on its own. However, an ICE restart does not by | |||
| default require a new DTLS association | default require a new DTLS association | |||
| to be established. | to be established. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: Simple Traversal of the UDP Protocol through NAT (STUN) packet | <t> | |||
| s are sent directly | NOTE: Simple Traversal of the UDP Protocol through NAT (STUN) packets | |||
| over UDP, not over DTLS. <xref format="default" pageno="false" targe | are sent directly | |||
| t="RFC7983"/> describes | over UDP, not over DTLS. <xref format="default" target="RFC7983"/> descr | |||
| how to demultiplex STUN packets from DTLS packets and SRTP packets. | ibes | |||
| </t> | how to demultiplex STUN packets from DTLS packets and SRTP packets. | |||
| <t> | </t> | |||
| </aside> | ||||
| <t> | ||||
| Each ICE candidate associated with a component is treated as being p art of the | Each ICE candidate associated with a component is treated as being p art of the | |||
| same DTLS association. Therefore, from a DTLS perspective it is not considered | same DTLS association. Therefore, from a DTLS perspective, it is not considered | |||
| a change of local transport parameters when an endpoint switches bet ween those | a change of local transport parameters when an endpoint switches bet ween those | |||
| ICE candidates. | ICE candidates. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="sec-tls-cons" numbered="true" toc="default"> | ||||
| <section title="TLS Considerations" anchor="sec-tls-cons"> | <name>TLS Considerations</name> | |||
| <t> | <t> | |||
| The procedures in this document can also be used for negotiating and | The procedures in this document can also be used for negotiating and | |||
| establishing a TLS connection, with the restriction described below. | establishing a TLS connection, with the restriction described below. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As specified in <xref format="default" pageno="false" target="RFC414 | As specified in <xref format="default" target="RFC4145"/>, | |||
| 5"/>, | the SDP "connection" attribute is used to indicate whether to establ | |||
| the SDP 'connection' attribute is used to indicate whether to establ | ish a new | |||
| ish a new | TLS connection. An offerer and answerer <bcp14>MUST</bcp14> ensure | |||
| TLS connection. An offerer and answerer MUST ensure that the 'connec | that the "connection" | |||
| tion' | attribute value and the "tls-id" attribute value do not cause a conf | |||
| attribute value and the 'tls-id' attribute value does not cause a co | lict | |||
| nflict | ||||
| regarding whether a new TLS connection is to be established or not. | regarding whether a new TLS connection is to be established or not. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: Even though the SDP 'connection' attribute can be used to indi | <t> | |||
| cate | NOTE: Even though the SDP "connection" attribute can be used to indi | |||
| cate | ||||
| whether a new TLS connection is to be established, the unique combin ation | whether a new TLS connection is to be established, the unique combin ation | |||
| of SDP 'tls-id' attribute values can be used to identity a TLS conne ction. | of SDP "tls-id" attribute values can be used to identity a TLS conne ction. | |||
| The unique value can be used e.g., within TLS protocol extensions to differentiate | The unique value can be used e.g., within TLS protocol extensions to differentiate | |||
| between multiple TLS connections and correlate those connections wit h specific | between multiple TLS connections and correlate those connections wit h specific | |||
| offer/answer exchanges. One such extension is defined in | offer/answer exchanges. One such extension is defined in | |||
| <xref format="default" pageno="false" target="I-D.ietf-mmusic-sdp-uk | <xref format="default" target="RFC8844"/>. | |||
| s"/>. | </t> | |||
| </aside> | ||||
| </t> | <t> | |||
| <t> | If an offerer or answerer inserts an SDP "connection" attribute with | |||
| If an offerer or answerer inserts an SDP 'connection' attribute with | a "new" | |||
| a 'new' | value in the offer/answer and also inserts an SDP "tls-id" attribute | |||
| value in the offer/answer and also inserts an SDP 'tls-id' attribute | , | |||
| , | the value of the "tls-id" attribute <bcp14>MUST</bcp14> be new and u | |||
| the value of tls-id' attribute MUST be new and unique. | nique. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If an offerer or answerer inserts an SDP 'connection' attribute with | If an offerer or answerer inserts an SDP "connection" attribute with an | |||
| a 'existing' | "existing" | |||
| value in the offer/answer, if a previously established TLS connectio | value in the offer/answer, if a previously established TLS connection ex | |||
| n exists, and | ists, and | |||
| if the offerer/answerer previously inserted an SDP 'tls-id' attribut | if the offerer/answerer previously inserted an SDP "tls-id" attribute as | |||
| e associated with | sociated with | |||
| the same TLS connection in an offer/answer, the offerer/answerer MUS | the same TLS connection in an offer/answer, the offerer/answerer | |||
| T also insert | <bcp14>MUST</bcp14> also insert | |||
| an SDP 'tls-id' attribute with the previously assigned value in the | an SDP "tls-id" attribute with the previously assigned value in the offe | |||
| offer/answer. | r/answer. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If an offerer or answerer receives an offer/answer with conflicting attribute values, | If an offerer or answerer receives an offer/answer with conflicting attribute values, | |||
| the offerer/answerer MUST process the offer/answer as misformed. | the offerer/answerer <bcp14>MUST</bcp14> process the offer/answer as | |||
| </t> | misformed. | |||
| <t> | </t> | |||
| An endpoint MUST NOT make assumptions regarding the support of the S | <t> | |||
| DP 'tls-id' | An endpoint <bcp14>MUST NOT</bcp14> make assumptions regarding the | |||
| attribute by the peer. Therefore, to avoid ambiguity, both offerers | support of the SDP "tls-id" | |||
| and answerers | attribute by the peer. Therefore, to avoid ambiguity, both | |||
| MUST always use the 'connection' attribute in conjunction with the ' | offerers and answerers | |||
| tls-id' attribute. | <bcp14>MUST</bcp14> always use the "connection" attribute in | |||
| </t> | conjunction with the "tls-id" attribute. | |||
| <t> | </t> | |||
| NOTE: As defined in <xref format="default" pageno="false" target="RF | <aside> | |||
| C4145"/>, if the | <t> | |||
| SDP 'connection' attribute is not explicitly present, the implicit d | NOTE: As defined in <xref format="default" target="RFC4145"/>, if th | |||
| efault value is 'new'. | e | |||
| </t> | SDP "connection" attribute is not explicitly present, the implicit | |||
| <t> | default value is "new". | |||
| The SDP example below is based on the example in section 3.4 of | </t> | |||
| <xref format="default" pageno="false" target="RFC8122"/>, with the a | </aside> | |||
| ddition of | <t> | |||
| the SDP 'tls-id' attribute. | The SDP example below is based on the example in | |||
| </t> | <xref format="default" target="RFC8122" sectionFormat="of" | |||
| <figure> | section="3.4"/>, with the addition of | |||
| <artwork align="left"><![CDATA[ | the SDP "tls-id" attribute. | |||
| </t> | ||||
| m=image 54111 TCP/TLS t38 | <sourcecode type="sdp" > | |||
| c=IN IP4 192.0.2.2 | m=image 54111 TCP/TLS t38 | |||
| a=tls-id:abc3de65cddef001be82 | c=IN IP4 192.0.2.2 | |||
| a=setup:passive | a=tls-id:abc3de65cddef001be82 | |||
| a=connection:new | a=setup:passive | |||
| a=fingerprint:SHA-256 \ | a=connection:new | |||
| 12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF: \ | a=fingerprint:SHA-256 \ | |||
| 3E:5D:49:6B:19:E5:7C:AB:4A:AD | 12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF: \ | |||
| a=fingerprint:SHA-1 \ | 3E:5D:49:6B:19:E5:7C:AB:4A:AD | |||
| 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | a=fingerprint:SHA-1 \ | |||
| 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | ||||
| </sourcecode> | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="SIP Considerations"> | <name>SIP Considerations</name> | |||
| <t> | <t> | |||
| When the Session Initiation Protocol (SIP) <xref format="default" pa | When the Session Initiation Protocol (SIP) <xref format="default" | |||
| geno="false" | target="RFC3261"/> is used as the signal protocol for establishing | |||
| target="RFC3261"/> is used as the signal protocol for establishing a | a multimedia | |||
| multimedia | session, dialogs <xref format="default" target="RFC3261"/> might be | |||
| session, dialogs <xref format="default" pageno="false" target="RFC32 | established between the caller and multiple callees. This is referred to | |||
| 61"/> might be | as forking. | |||
| established between the caller and multiple callees. This is referre | If forking occurs, separate DTLS associations will be established betwee | |||
| d to as forking. | n the caller | |||
| If forking occurs, separate DTLS associations will be established be | and each callee. | |||
| tween the caller | </t> | |||
| and each callee. | <t> | |||
| </t> | When forking occurs, an SDP offerer can receive DTLS ClientHello | |||
| <t> | messages and SDP | |||
| When forking occurs, an SDP offerer can receive DTLS ClientHello mes | answers from multiple remote locations. Because of this, the | |||
| sages and SDP | offerer might have to | |||
| answerers from multiple remote locations. Because of this, the offer | wait for multiple SDP answers (from different remote locations) | |||
| er might have to | until it receives | |||
| wait for multiple SDP answers (from different remote locations) unti | a certificate fingerprint that matches the certificate associated | |||
| l it receives | with a specific | |||
| a certificate fingerprint that matches the certificate associated wi | DTLS handshake. The offerer <bcp14>MUST NOT</bcp14> declare a | |||
| th a specific | fingerprint mismatch until it | |||
| DTLS handshake. The offerer MUST NOT declare a fingerprint mismatch | determines that it will not receive SDP answers from any | |||
| until it | additional remote locations. | |||
| determines that it will not receive SDP answers from any additional | </t> | |||
| remote locations. | <t> | |||
| </t> | It is possible to send an INVITE request that does not contain an SD | |||
| <t> | P offer. Such | |||
| It is possible to send an INVITE request which does not contain an S | an INVITE request is often referred to as an "empty INVITE" or an | |||
| DP offer. Such | "offerless INVITE". | |||
| an INVITE request is often referred to as an 'empty INVITE', or an ' | ||||
| offer-less INVITE'. | ||||
| The receiving endpoint will include the SDP offer in a response to t he request. | The receiving endpoint will include the SDP offer in a response to t he request. | |||
| When the endpoint generates such SDP offer, if a previously establis | When the endpoint generates such an SDP offer, if a previously estab | |||
| hed | lished | |||
| DTLS association exists, the offerer MUST insert an SDP 'tls-id' | DTLS association exists, the offerer <bcp14>MUST</bcp14> insert an S | |||
| attribute, and one or more SDP 'fingerprint' attributes, with previo | DP "tls-id" | |||
| usly assigned | attribute and one or more SDP "fingerprint" attributes, with previou | |||
| attribute values. If a previously established DTLS association did n | sly assigned | |||
| ot exist, | attribute values. If a previously established DTLS association does | |||
| the offer MUST be generated based on the same rules as a new offer ( | not exist, | |||
| see <xref target="sec-oa-offer"/>). | the offer <bcp14>MUST</bcp14> be generated based on the same rules a | |||
| Regardless of the previous existence of a DTLS association, the SDP | s a new offer (see <xref target="sec-oa-offer" format="default"/>). | |||
| 'setup' attribute | Regardless of the previous existence of a DTLS association, the | |||
| MUST be included according to the rules defined in <xref format="def | SDP "setup" attribute | |||
| ault" pageno="false" | <bcp14>MUST</bcp14> be included according to the rules defined in | |||
| target="RFC4145"/>. Furthermore, if ICE is used, according to the th | <xref format="default" target="RFC4145"/>. Furthermore, if ICE is | |||
| ird party call control | used, ICE restart <bcp14>MUST</bcp14> be initiated, according to | |||
| considerations described in <xref target="I-D.ietf-mmusic-ice-sip-sd | the third-party call-control | |||
| p"/>, ICE restart | considerations described in <xref | |||
| MUST be initiated. | target="RFC8839" format="default"/>. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="RFC Updates"> | <name>RFC Updates</name> | |||
| <section title="General"> | <section numbered="true" toc="default"> | |||
| <t> | <name>General</name> | |||
| <t> | ||||
| This section updates specifications that use DTLS-protected medi a, in | This section updates specifications that use DTLS-protected medi a, in | |||
| order to reflect the procedures defined in this specification. | order to reflect the procedures defined in this specification. | |||
| </t> | </t> | |||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Update to RFC 5763</name> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Update to Section 1</name> | ||||
| <t>The reference to <xref format="default" target="RFC4572"/> is repla | ||||
| ced | ||||
| with a reference to <xref format="default" target="RFC8122"/>.</t> | ||||
| </section> | </section> | |||
| <section title="Update to RFC 5763"> | <section numbered="true" toc="default"> | |||
| <section title="Update to section 1"> | <name>Update to Section 5</name> | |||
| <t>The reference to <xref format="default" pageno="false" target="RF | <t>The text in <xref target="RFC5763" section="5" sectionFormat="comma | |||
| C4572"/> is replaced | "/> ("Establishing a Secure Channel") is modified | |||
| with a reference to <xref format="default" pageno="false" target="RF | by replacing generic | |||
| C8122"/>.</t> | SDP offer/answer procedures for DTLS with a reference to this | |||
| </section> | specification: | |||
| <section title="Update to section 5"> | </t> | |||
| <t>The text in section 5 (Establishing a Secure Channel) is modified | ||||
| by replacing generic | ||||
| SDP offer/answer procedures for DTLS with a reference to this specif | ||||
| ication: | ||||
| </t> | ||||
| <figure> | ||||
| <artwork align="left" alt="" height="" name="" type="" width="" | ||||
| xml:space="preserve"><![CDATA[ | ||||
| NEW TEXT: | ||||
| <t>NEW TEXT:</t> | ||||
| <blockquote> | ||||
| <t> | ||||
| The two endpoints in the exchange present their identities as part of | The two endpoints in the exchange present their identities as part of | |||
| the DTLS handshake procedure using certificates. This document uses | the DTLS handshake procedure using certificates. This document uses | |||
| certificates in the same style as described in "Connection-Oriented | certificates in the same style as described in "Connection-Oriented | |||
| Media Transport over the Transport Layer Security (TLS) Protocol in | Media Transport over the Transport Layer Security (TLS) Protocol in | |||
| the Session Description Protocol (SDP)" [RFC8122]. | the Session Description Protocol (SDP)" <xref target="RFC8122" />. | |||
| </t> | ||||
| <t> | ||||
| If self-signed certificates are used, the content of the | If self-signed certificates are used, the content of the | |||
| subjectAltName attribute inside the certificate MAY use the uniform | "subjectAltName" attribute inside the certificate <bcp14>MAY</bcp14> use the uniform | |||
| resource identifier (URI) of the user. This is useful for debugging | resource identifier (URI) of the user. This is useful for debugging | |||
| purposes only and is not required to bind the certificate to one of | purposes only and is not required to bind the certificate to one of | |||
| the communication endpoints. The integrity of the certificate is | the communication endpoints. The integrity of the certificate is | |||
| ensured through the fingerprint attribute in the SDP. | ensured through the "fingerprint" attribute in the SDP. | |||
| </t> | ||||
| <t> | ||||
| The generation of public/private key pairs is relatively expensive. | The generation of public/private key pairs is relatively expensive. | |||
| Endpoints are not required to generate certificates for each session. | Endpoints are not required to generate certificates for each session. | |||
| </t> | ||||
| The offer/answer model, defined in [RFC3264], is used by protocols | <t> | |||
| like the Session Initiation Protocol (SIP) [RFC3261] to set up | The offer/answer model, defined in <xref target="RFC3264"/>, is used by proto | |||
| cols | ||||
| like the Session Initiation Protocol (SIP) <xref target="RFC3261" /> to set u | ||||
| p | ||||
| multimedia sessions. | multimedia sessions. | |||
| </t> | ||||
| <t> | ||||
| When an endpoint wishes to set up a secure media session with another | When an endpoint wishes to set up a secure media session with another | |||
| endpoint, it sends an offer in a SIP message to the other endpoint. | endpoint, it sends an offer in a SIP message to the other endpoint. | |||
| This offer includes, as part of the SDP payload, a fingerprint of | This offer includes, as part of the SDP payload, a fingerprint of | |||
| a certificate that the endpoint wants to use. The endpoint SHOULD | a certificate that the endpoint wants to use. The endpoint <bcp14>SHOULD</bcp 14> | |||
| send the SIP message containing the offer to the offerer's SIP proxy | send the SIP message containing the offer to the offerer's SIP proxy | |||
| over an integrity protected channel. The proxy SHOULD add an | over an integrity-protected channel. The proxy <bcp14>SHOULD</bcp14> add an | |||
| Identity header field according to the procedures outlined in | Identity header field according to the procedures outlined in | |||
| [RFC4474]. When the far endpoint receives the SIP message, it can | <xref target="RFC4474" />. When the far endpoint receives the SIP message, it can | |||
| verify the identity of the sender using the Identity header field. | verify the identity of the sender using the Identity header field. | |||
| Since the Identity header field is a digital signature across several | Since the Identity header field is a digital signature across several | |||
| SIP header fields, in addition to the body of the SIP message, the | SIP header fields, in addition to the body of the SIP message, the | |||
| receiver can also be certain that the message has not been tampered | receiver can also be certain that the message has not been tampered | |||
| with after the digital signature was applied and added to the SIP | with after the digital signature was applied and added to the SIP | |||
| message. | message. | |||
| </t> | ||||
| <t> | ||||
| The far endpoint (answerer) may now establish a DTLS association with | The far endpoint (answerer) may now establish a DTLS association with | |||
| the offerer. Alternately, it can indicate in its answer that the | the offerer. Alternately, it can indicate in its answer that the | |||
| offerer is to initiate the DTLS association. In either case, mutual | offerer is to initiate the DTLS association. In either case, mutual | |||
| DTLS certificate-based authentication will be used. After completing | DTLS certificate-based authentication will be used. After completing | |||
| the DTLS handshake, information about the authenticated identities, | the DTLS handshake, information about the authenticated identities, | |||
| including the certificates, are made available to the endpoint | including the certificates, is made available to the endpoint | |||
| application. The answerer is then able to verify that the offerer's | application. The answerer is then able to verify that the offerer's | |||
| certificate used for authentication in the DTLS handshake can be | certificate used for authentication in the DTLS handshake can be | |||
| associated to a certificate fingerprint contained in the offer in | associated with a certificate fingerprint contained in the offer in | |||
| the SDP. At this point, the answerer may indicate to the end user | the SDP. At this point, the answerer may indicate to the end user | |||
| that the media is secured. The offerer may only tentatively accept | that the media is secured. The offerer may only tentatively accept | |||
| the answerer's certificate since it may not yet have the answerer's | the answerer's certificate, since it may not yet have the answerer's | |||
| certificate fingerprint. | certificate fingerprint | |||
| </t> | ||||
| <t> | ||||
| When the answerer accepts the offer, it provides an answer back to | When the answerer accepts the offer, it provides an answer back to | |||
| the offerer containing the answerer's certificate fingerprint. At | the offerer containing the answerer's certificate fingerprint. At | |||
| this point, the offerer can accept or reject the peer's certificate | this point, the offerer can accept or reject the peer's certificate, | |||
| and the offerer can indicate to the end user that the media is | and the offerer can indicate to the end user that the media is | |||
| secured. | secured. | |||
| </t> | ||||
| <t> | ||||
| Note that the entire authentication and key exchange for securing | Note that the entire authentication and key exchange for securing | |||
| the media traffic is handled in the media path through DTLS. The | the media traffic is handled in the media path through DTLS. The | |||
| signaling path is only used to verify the peers' certificate | signaling path is only used to verify the peers' certificate | |||
| fingerprints. | fingerprints. | |||
| </t> | ||||
| The offerer and answerer MUST follow the SDP offer/answer procedures | <t> | |||
| defined in [RFCXXXX]. | The offerer and answerer <bcp14>MUST</bcp14> follow the SDP offer/answer proc | |||
| edures | ||||
| ]]></artwork> | defined in RFC 8842. | |||
| </figure> | </t> | |||
| </section> | </blockquote> | |||
| <section title="Update to section 6.6"> | </section> | |||
| <t>The text in section 6.6 (Session Modification) is modified by replac | <section numbered="true" toc="default"> | |||
| ing generic | <name>Update to Section 6.6</name> | |||
| <t>The text in <xref target="RFC5763" section="6.6" sectionFormat="com | ||||
| ma"/> ("Session Modification") is modified by replacing generic | ||||
| SDP offer/answer procedures for DTLS with a reference to this specif ication: | SDP offer/answer procedures for DTLS with a reference to this specif ication: | |||
| </t> | </t> | |||
| <figure> | ||||
| <artwork align="left" alt="" height="" name="" type="" width="" xml:s | ||||
| pace="preserve"><![CDATA[ | ||||
| <t> | ||||
| NEW TEXT: | NEW TEXT: | |||
| </t> | ||||
| Once an answer is provided to the offerer, either endpoint MAY | <blockquote> | |||
| request a session modification that MAY include an updated offer. | <t> | |||
| Once an answer is provided to the offerer, either endpoint <bcp14>MAY</bcp14> | ||||
| request a session modification that <bcp14>MAY</bcp14> include an updated off | ||||
| er. | ||||
| This session modification can be carried in either an INVITE or | This session modification can be carried in either an INVITE or | |||
| UPDATE request. The peers can reuse an existing DTLS association, | UPDATE request. The peers can reuse an existing DTLS association | |||
| or establish a new one, following the procedures in [RFCXXXX]. | or establish a new one, following the procedures in RFC 8842. | |||
| </t></blockquote> | ||||
| ]]></artwork> | </section> | |||
| </figure> | <section numbered="true" toc="default"> | |||
| </section> | <name>Update to Section 6.7.1</name> | |||
| <section title="Update to section 6.7.1"> | <t>The text in <xref target="RFC5763" section="6.7.1" sectionFormat="c | |||
| <t>The text in section 6.7.1 (ICE Interaction) is modified by replacing the | omma"/> ("ICE Interaction") is modified by | |||
| ICE procedures with | replacing the ICE procedures with | |||
| a reference to this specification: | a reference to this specification: | |||
| </t> | </t> | |||
| <figure> | ||||
| <artwork align="left" alt="" height="" name="" type="" width="" xml:space="p | ||||
| reserve"><![CDATA[ | ||||
| <t> | ||||
| NEW TEXT: | NEW TEXT: | |||
| </t> | ||||
| <blockquote> | ||||
| The Interactive Connectivity Establishment (ICE) | The Interactive Connectivity Establishment (ICE) | |||
| [I-D.ietf-ice-rfc5245bis] considerations for DTLS-protected media | <xref target="RFC8445" /> considerations for DTLS-protected media | |||
| are described in [RFCXXXX]. | are described in RFC 8842. | |||
| ]]></artwork> | </blockquote> | |||
| </figure> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section title="Update to RFC 7345"> | </section> | |||
| <section title="Update to section 4"> | <section numbered="true" toc="default"> | |||
| <t>The subsections (4.1.-4.5.) in section 4 (SDP Offerer/Answerer | <name>Update to RFC 7345</name> | |||
| Procedures) are removed, and replaced with the new text below:</t> | <section numbered="true" toc="default"> | |||
| <figure> | <name>Update to Section 4</name> | |||
| <artwork align="left" alt="" height="" name="" type="" width="" | <t>The subsections (4.1 - 4.5) in <xref target="RFC7345" section="4" | |||
| xml:space="preserve"><![CDATA[ | sectionFormat="comma"/> ("SDP Offerer/Answerer | |||
| Procedures") are removed and replaced with the new text below:</t> | ||||
| NEW TEXT: | <t>NEW TEXT:</t> | |||
| <blockquote> | ||||
| An endpoint (i.e., both the offerer and the answerer) MUST create an | <t> | |||
| An endpoint (i.e., both the offerer and the answerer) <bcp14>MUST</bcp14> cre | ||||
| ate an | ||||
| SDP media description ("m=" line) for each UDPTL-over-DTLS media | SDP media description ("m=" line) for each UDPTL-over-DTLS media | |||
| stream and MUST assign a UDP/TLS/UDPTL value (see Table 1) to the | stream and <bcp14>MUST</bcp14> assign a UDP/TLS/UDPTL value (see Table 1) to the | |||
| "proto" field of the "m=" line. | "proto" field of the "m=" line. | |||
| </t> | ||||
| The offerer and answerer MUST follow the SDP offer/answer procedures | <t> | |||
| defined in [RFCXXXX] in order to negotiate the DTLS association | The offerer and answerer <bcp14>MUST</bcp14> follow the SDP offer/answer proc | |||
| edures | ||||
| defined in RFC 8842 in order to negotiate the DTLS association | ||||
| associated with the UDPTL-over-DTLS media stream. In addition, | associated with the UDPTL-over-DTLS media stream. In addition, | |||
| the offerer and answerer MUST use the SDP attributes defined for | the offerer and answerer <bcp14>MUST</bcp14> use the SDP attributes defined f | |||
| UDPTL over UDP, as defined in [ITU.T38.2010]. | or | |||
| UDPTL over UDP, as defined in <xref target="ITU.T38" />. | ||||
| </t> | ||||
| </blockquote> | ||||
| ]]></artwork> | </section> | |||
| </figure> | <section numbered="true" toc="default"> | |||
| </section> | <name>Update to Section 5.2.1</name> | |||
| <section title="Update to section 5.2.1"> | <t>The text in <xref target="RFC7345" section="5.2.1" | |||
| <t>The text in section 5.2.1 (ICE Usage) is modified by replacing the ICE pr | sectionFormat="comma"/> ("ICE Usage") is modified by replacing the | |||
| ocedures with | ICE procedures with a reference to this specification: | |||
| a reference to this specification: | </t> | |||
| </t> | ||||
| <figure> | ||||
| <artwork align="left" alt="" height="" name="" type="" width="" xml:space="p | ||||
| reserve"><![CDATA[ | ||||
| <t> | ||||
| NEW TEXT: | NEW TEXT: | |||
| </t> | ||||
| <blockquote> | ||||
| The Interactive Connectivity Establishment (ICE) | The Interactive Connectivity Establishment (ICE) | |||
| [I-D.ietf-ice-rfc5245bis] considerations for DTLS-protected media | <xref target="RFC8445" /> considerations for DTLS-protected media | |||
| are described in [RFCXXXX]. | are described in RFC 8842. | |||
| </blockquote> | ||||
| [RFC EDITOR NOTE: Throughout the document, please replace RFCXXXX | ||||
| with the RFC number of this document.] | ||||
| ]]></artwork> | </section> | |||
| </figure> | <section numbered="true" toc="default"> | |||
| </section> | <name>Update to Section 9.1</name> | |||
| <section title="Update to section 10.1"> | <t>A reference to <xref format="default" target="RFC8122"/> is added | |||
| <t>A reference to <xref format="default" pageno="false" target="RF | to <xref target="RFC7345" section="9.1" | |||
| C8122"/> is added to section 10.1 (Normative References):</t> | sectionFormat="comma"/> ("Normative References"):</t> | |||
| <figure> | ||||
| <artwork align="left" alt="" height="" name="" type="" width="" | ||||
| xml:space="preserve"><![CDATA[ | ||||
| <t> | ||||
| NEW TEXT: | NEW TEXT: | |||
| </t> | ||||
| <blockquote> | ||||
| <dl indent="12"> | ||||
| <dt>[RFC8122]</dt> | ||||
| <dd>Lennox, J. and C. Holmberg, "Connection-Oriented Media | ||||
| Transport over the Transport Layer Security (TLS) | ||||
| Protocol in the Session Description Protocol (SDP)", | ||||
| RFC 8122, DOI 10.17487/RFC8122, March 2017, | ||||
| <eref brackets="angle" target="https://www.rfc-editor.org/info/rfc8122"/>. | ||||
| </dd> | ||||
| </dl> | ||||
| </blockquote> | ||||
| [RFC8122] Lennox, J. and C. Holmberg, "Connection-Oriented Media | ||||
| Transport over the Transport Layer Security (TLS) Protocol | ||||
| in the Session Description Protocol (SDP)", RFC 8122, | ||||
| DOI 10.17487/RFC8122, March 2017, | ||||
| <http://www.rfc-editor.org/info/rfc8122>. | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | ||||
| </section> | </section> | |||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Security Considerations"> | <name>Security Considerations</name> | |||
| <t> | <t> | |||
| This specification does not modify the security considerations assoc | This specification does not modify the security considerations | |||
| iated with DTLS, or | associated with DTLS or | |||
| the SDP offer/answer mechanism. In addition to the introduction of t he SDP | the SDP offer/answer mechanism. In addition to the introduction of t he SDP | |||
| 'tls-id' attribute, the specification simply clarifies the procedure s for | "tls-id" attribute, this document simply clarifies the procedures fo r | |||
| negotiating and establishing a DTLS association. | negotiating and establishing a DTLS association. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This specification does not modify the actual TLS connection setup p rocedures. The | This specification does not modify the actual TLS connection setup p rocedures. The | |||
| SDP 'tls-is' attribute as such cannot be used to correlate an SDP Of | SDP "tls-is" attribute as such cannot be used to correlate an SDP | |||
| fer/Answer exchange with a | offer/answer exchange with a | |||
| TLS connection setup. Thus, this draft does not introduce new securi | TLS connection setup. Thus, this document does not introduce new | |||
| ty considerations | security considerations | |||
| related to correlating an SDP Offer/Answer exchange with a TLS conne | related to correlating an SDP offer/answer exchange with a TLS conne | |||
| ction setup. | ction setup. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="section.iana" numbered="true" toc="default"> | ||||
| <section anchor="section.iana" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t> | <t> | |||
| This document updates the "Session Description Protocol Parameters" registry | This document updates the "Session Description Protocol Parameters" registry | |||
| as specified in Section 8.2.2 of <xref target="RFC4566" pageno="fals | as specified in <xref target="RFC4566" | |||
| e" format="default"/>. | format="default" sectionFormat="of" section="8.2.2" />. | |||
| Specifically, it adds the SDP 'tls-id' attribute to the table for SD | Specifically, it adds the SDP "tls-id" attribute to the table for SD | |||
| P | P | |||
| media level attributes. | media-level attributes as follows. | |||
| </t> | </t> | |||
| <figure> | ||||
| <artwork align="left"><![CDATA[ | ||||
| Attribute name: tls-id | <dl> | |||
| Type of attribute: media-level | ||||
| Subject to charset: no | ||||
| Purpose: Indicates whether a new DTLS association or TLS connection | ||||
| is to be established/re-established. | ||||
| Appropriate Values: see Section 4 | ||||
| Contact name: Christer Holmberg | ||||
| Mux Category: IDENTICAL | ||||
| ]]></artwork> | <dt>Attribute name:</dt> | |||
| </figure> | <dd>tls-id</dd> | |||
| </section> | ||||
| <section title="Acknowledgements"> | <dt>Type of attribute:</dt> | |||
| <t> | <dd>Media-level</dd> | |||
| Thanks to Justin Uberti, Martin Thomson, Paul Kyzivat, Jens Guballa, | ||||
| Charles Eckel, Gonzalo Salgueiro and Paul Jones for providing commen | <dt>Subject to charset:</dt> | |||
| ts and | <dd>No</dd> | |||
| suggestions on the document. Ben Campbell performed an AD review. Pa | ||||
| ul | <dt>Purpose:</dt> | |||
| Kyzivat performed a gen-art review. | <dd>Indicates whether a new DTLS association or TLS connection is to be | |||
| </t> | established/re-established.</dd> | |||
| </section> | ||||
| <section title="Change Log"> | <dt>Appropriate Values:</dt> | |||
| <t>[RFC EDITOR NOTE: Please remove this section when publishing]</t> | <dd>See <xref target="sec-dcon-attr" /></dd> | |||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-31 | ||||
| <list style="symbols"> | <dt>Contact name:</dt> | |||
| <t>Changes based on IESG comments from Eric R</t> | <dd>Christer Holmberg</dd> | |||
| </list> | ||||
| </t> | <dt>Mux Category:</dt> | |||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-30 | <dd>IDENTICAL</dd> | |||
| <list style="symbols"> | ||||
| <t>Changes based on IESG comments from Mirja K</t> | </dl> | |||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-29 | ||||
| <list style="symbols"> | ||||
| <t>Removal of ufrag value change as a trigger for a new DTLS ass | ||||
| ociation</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-28 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on IESG review by Adam Roach, Eric Rescorla, Al | ||||
| exey Melnikov and Mirja Kuhlewind:</t> | ||||
| <t>- Document title changed</t> | ||||
| <t>- Transport Protocol Considerations section removed</t> | ||||
| <t>- Additional text to Security Considerations section</t> | ||||
| <t>- Editorial changes</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-27 | ||||
| <list style="symbols"> | ||||
| <t>Reference fixes based on Gen-ART review by Paul Kyzivat.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-26 | ||||
| <list style="symbols"> | ||||
| <t>Editorial fixes based on Gen-ART review by Paul Kyzivat.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-25 | ||||
| <list style="symbols"> | ||||
| <t>Minor editorial nits.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-24 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on 2nd WGLC comments from Roman S and Martin T: | ||||
| </t> | ||||
| <t>- RFC update structure shortened (old text removed).</t> | ||||
| <t>- Guidance regarding receiving ClientHello before SDP answer | ||||
| added.</t> | ||||
| <t>- Additional SIP considerations regarding forking.</t> | ||||
| <t>- SDP setup attribute value restriction in initial and subseq | ||||
| uent offers based on comment from Ekr.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-23 | ||||
| <list style="symbols"> | ||||
| <t>Editorial change to make it clear that the document does not | ||||
| modify the procedures in RFC 8122.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-22 | ||||
| <list style="symbols"> | ||||
| <t>Support for TLS added.</t> | ||||
| <t>Editorial changes based on sec-dir review by Rich Salz.</t> | ||||
| <t>Editorial changes based on gen-art review by Paul Kyzivat.</t | ||||
| > | ||||
| <t>Editorial changes based on ops-dir review by Carlos Pignataro | ||||
| .</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-21 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on AD review by Ben Campbell.</t> | ||||
| <t>(https://www.ietf.org/mail-archive/web/mmusic/current/msg1770 | ||||
| 7.html)</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-20 | ||||
| <list style="symbols"> | ||||
| <t>Change to length and randomness of tls-id attribute value.</t | ||||
| > | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-19 | ||||
| <list style="symbols"> | ||||
| <t>Change based on comment from Roman.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-18 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on comments from Flemming.</t> | ||||
| <t>- Change in tls-id value definition.</t> | ||||
| <t>- Editorial fixes.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-17 | ||||
| <list style="symbols"> | ||||
| <t>Reference fix.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-16 | ||||
| <list style="symbols"> | ||||
| <t>Editorial changes based on 2nd WGLC comments | ||||
| from Christian Groves and Nevenka Biondic.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-15 | ||||
| <list style="symbols"> | ||||
| <t>tls-id attribute value made globally unique</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-14 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on comments from Flemming:</t> | ||||
| <t>- Additional dtls-is clarifications</t> | ||||
| <t>- Editorial fixes</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-13 | ||||
| <list style="symbols"> | ||||
| <t>Text about the updated RFCs added to Abstract and Introductio | ||||
| n</t> | ||||
| <t>Reference to RFC 5763 removed from section 6 (ICE Considerati | ||||
| ons)</t> | ||||
| <t>Reference to RFC 5763 removed from section 8 (SIP Considerati | ||||
| ons)</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-12 | ||||
| <list style="symbols"> | ||||
| <t>"unreliable" changed to "unordered"</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-11 | ||||
| <list style="symbols"> | ||||
| <t>Attribute name changed to tls-id</t> | ||||
| <t>Additional text based on comments from Roman Shpount.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-10 | ||||
| <list style="symbols"> | ||||
| <t>Modified document to use tls-id instead of dtls-connection</t | ||||
| > | ||||
| <t>Changes are based on comments from Eric Rescorla, Justin Uber | ||||
| ti, and Paul Kyzivat.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-08 | ||||
| <list style="symbols"> | ||||
| <t>Offer/Answer section modified in order to allow sending of mu | ||||
| ltiple SDP 'fingerprint' attributes.</t> | ||||
| <t>Terminology made consistent: 'DTLS connection' replaced with | ||||
| 'DTLS association'.</t> | ||||
| <t>Editorial changes based on comments from Paul Kyzivat.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-07 | ||||
| <list style="symbols"> | ||||
| <t>Reference to RFC 7315 replaced with reference to RFC 7345.</t | ||||
| > | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-06 | ||||
| <list style="symbols"> | ||||
| <t>Text on restrictions regarding spanning a DTLS association ov | ||||
| er multiple transports added.</t> | ||||
| <t>Mux category added to IANA Considerations.</t> | ||||
| <t>Normative text regarding mux category and source-specific app | ||||
| licability added.</t> | ||||
| <t>Reference to RFC 7315 added.</t> | ||||
| <t>Clarified that offerer/answerer that has not been updated to | ||||
| support this specification will | ||||
| not include the tls-id attribute in offers and answers.</t> | ||||
| <t>Editorial corrections based on WGLC comments from Charles Eck | ||||
| el.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-05 | ||||
| <list style="symbols"> | ||||
| <t>Text on handling offer/answer error conditions added.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-04 | ||||
| <list style="symbols"> | ||||
| <t>Editorial nits fixed based on comments from Paul Kyzivat:</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-03 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on comments from Paul Kyzivat:</t> | ||||
| <t>- Modification of tls-id attribute section.</t> | ||||
| <t>- Removal of IANA considerations subsection.</t> | ||||
| <t>- Making note into normative text in o/a section.</t> | ||||
| <t>Changes based on comments from Martin Thompson:</t> | ||||
| <t>- Abbreviations section removed.</t> | ||||
| <t>- Clarify that a new DTLS association requires a new o/a tran | ||||
| saction.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-02 | ||||
| <list style="symbols"> | ||||
| <t>- Updated RFCs added to boilerplate.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-01 | ||||
| <list style="symbols"> | ||||
| <t>- Annex regarding 'tls-id-id' attribute removed.</t> | ||||
| <t>- Additional SDP offer/answer procedures, related to certific | ||||
| ates, added.</t> | ||||
| <t>- Updates to RFC 5763 and RFC 7345 added.</t> | ||||
| <t>- Transport protocol considerations added.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sdp-dtls-00 | ||||
| <list style="symbols"> | ||||
| <t>- SDP 'connection' attribute replaced with new 'tls-id' attri | ||||
| bute.</t> | ||||
| <t>- IANA Considerations added.</t> | ||||
| <t>- E-mail regarding 'tls-id-id' attribute added as Annex.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-holmberg-mmusic-sdp-dtls-01 | ||||
| <list style="symbols"> | ||||
| <t>- draft-ietf-mmusic version of draft submitted.</t> | ||||
| <t>- Draft file name change (sdp-dtls -> dtls-sdp) due to collis | ||||
| ion with another expired draft.</t> | ||||
| <t>- Clarify that if ufrag in offer is unchanged, it must be unc | ||||
| hanged in associated answer.</t> | ||||
| <t>- SIP Considerations section added.</t> | ||||
| <t>- Section about multiple SDP fingerprint attributes added.</t | ||||
| > | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-holmberg-mmusic-sdp-dtls-00 | ||||
| <list style="symbols"> | ||||
| <t>- Editorial changes and clarifications.</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | ||||
| <back> | <references> | |||
| <references title="Normative References"> | <name>References</name> | |||
| <?rfc include="reference.RFC.2119"?> | <references> | |||
| <?rfc include="reference.RFC.3261"?> | <name>Normative References</name> | |||
| <?rfc include="reference.RFC.3264"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <?rfc include="reference.RFC.4145"?> | ence.RFC.2119.xml"/> | |||
| <?rfc include="reference.RFC.4566"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <?rfc include="reference.RFC.5763"?> | ence.RFC.3261.xml"/> | |||
| <?rfc include="reference.RFC.6347"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <?rfc include="reference.RFC.7345"?> | ence.RFC.3264.xml"/> | |||
| <?rfc include="reference.RFC.8122"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <?rfc include="reference.RFC.8174"?> | ence.RFC.4145.xml"/> | |||
| <?rfc include="reference.I-D.draft-ietf-ice-rfc5245bis-13"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <?rfc include="reference.I-D.draft-ietf-mmusic-sdp-mux-attributes-16"?> | ence.RFC.4566.xml"/> | |||
| <?rfc include="reference.I-D.draft-ietf-mmusic-sdp-bundle-negotiation-39 | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| "?> | ence.RFC.5763.xml"/> | |||
| </references> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <references title="Informative References"> | ence.RFC.6347.xml"/> | |||
| <?rfc include="reference.RFC.4474"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <?rfc include="reference.RFC.4572"?> | ence.RFC.7345.xml"/> | |||
| <?rfc include="reference.RFC.5576"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <?rfc include="reference.RFC.6083"?> | ence.RFC.8122.xml"/> | |||
| <?rfc include="reference.RFC.7983"?> | <xi:include | |||
| <?rfc include="reference.I-D.draft-ietf-stir-rfc4474bis-16"?> | href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC. | |||
| <?rfc include="reference.I-D.draft-ietf-mmusic-ice-sip-sdp-14"?> | 8174.xml"/> | |||
| <?rfc include="reference.I-D.draft-ietf-mmusic-sdp-uks-00"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <reference anchor="ITU.T38.2010"> | ence.RFC.8445.xml"/> | |||
| <!-- draft-ietf-mmusic-sdp-mux-attributes-17 (RFC 8859) --> | ||||
| <reference anchor="RFC8859" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 859"> | ||||
| <front> | <front> | |||
| <title>Procedures for real-time Group 3 facsimile communication over I | <title>A Framework for Session Description Protocol (SDP) | |||
| P networks</title> | Attributes When Multiplexing</title> | |||
| <author> | <author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar | |||
| <organization>International Telecommunications Union</organization> | "> | |||
| </author> | <organization/> | |||
| <date year="2010" month="September"/> | </author> | |||
| <date month="January" year="2021"/> | ||||
| </front> | </front> | |||
| <seriesInfo value="Recommendation T.38" name="ITU-T"/> | <seriesInfo name="RFC" value="8859"/> | |||
| <seriesInfo name="DOI" value="10.17487/RFC8859"/> | ||||
| </reference> | </reference> | |||
| </references> | ||||
| </back> | <!-- draft-ietf-mmusic-sdp-bundle-negotiation (RFC 8843) C238 --> | |||
| <reference anchor="RFC8843" target="https://www.rfc-editor.org/info/rfc8843" | ||||
| > | ||||
| <front> | ||||
| <title>Negotiating Media Multiplexing Using the Session Description Prot | ||||
| ocol (SDP)</title> | ||||
| <author initials="C" surname="Holmberg" fullname="Christer Holmberg"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="H" surname="Alvestrand" fullname="Harald Alvestrand"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="C" surname="Jennings" fullname="Cullen Jennings"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8843"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8843"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4474.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4572.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.5576.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.6083.xml"/> | ||||
| <xi:include | ||||
| href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC. | ||||
| 7983.xml"/> | ||||
| <xi:include | ||||
| href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC. | ||||
| 8224.xml"/> | ||||
| <!-- draft-ietf-mmusic-ice-sip-sdp-39 RFC-to-be 8839 C238 --> | ||||
| <reference anchor='RFC8839' target="https://www.rfc-editor.org/info/rfc8839"> | ||||
| <front> | ||||
| <title>Session Description Protocol (SDP) Offer/Answer Procedures for Interactiv | ||||
| e Connectivity Establishment (ICE)</title> | ||||
| <author initials='M' surname='Petit-Huguenin' fullname='Marc Petit-Huguenin'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Nandakumar' fullname='Suhas Nandakumar'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='C' surname='Holmberg' fullname='Christer Holmberg'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='A' surname='Keränen' fullname='Ari Keränen'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='R' surname='Shpount' fullname='Roman Shpount'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8839"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8839"/> | ||||
| </reference> | ||||
| <!-- draft-ietf-mmusic-sdp-uks in C238 --> | ||||
| <reference anchor='RFC8844' target="https://www.rfc-editor.org/info/rfc8844"> | ||||
| <front> | ||||
| <title>Unknown Key-Share Attacks on Uses of TLS with the Session Description Pro | ||||
| tocol (SDP)</title> | ||||
| <author initials='M' surname='Thomson' fullname='Martin Thomson'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='E' surname='Rescorla' fullname='Eric Rescorla'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8844"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8844"/> | ||||
| </reference> | ||||
| <reference anchor="ITU.T38" target="https://www.itu.int/rec/T-REC-T.38/e | ||||
| n"> | ||||
| <front> | ||||
| <title>Procedures for real-time Group 3 facsimile communication over | ||||
| IP networks</title> | ||||
| <seriesInfo name="Recommendation" value="T.38"/> | ||||
| <author> | ||||
| <organization>ITU-T</organization> | ||||
| </author> | ||||
| <date year="2010" month="September"/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t> | ||||
| Thanks to <contact fullname="Justin Uberti"/>, <contact | ||||
| fullname="Martin Thomson"/>, <contact fullname="Paul Kyzivat"/>, | ||||
| <contact fullname="Jens Guballa"/>, <contact fullname="Charles | ||||
| Eckel"/>, <contact fullname="Gonzalo Salgueiro"/>, and <contact | ||||
| fullname="Paul Jones"/> for providing comments and suggestions on | ||||
| the document. <contact fullname="Ben Campbell"/> performed an Area | ||||
| Director review. <contact fullname="Paul Kyzivat"/> performed a | ||||
| Gen-ART review. | ||||
| </t> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 128 change blocks. | ||||
| 1225 lines changed or deleted | 1151 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/ | ||||