%ents; ]>
Use of DTLS-SRTP in Jingle Sessions This specification defines how to use DTLS-SRTP (RFC 5763) in the Jingle application type for the Real-time Transport Protocol (RTP) as a way to negotiate media path key agreement for secure RTP in one-to-one media sessions. &LEGALNOTICE; 0320 Draft 2020-05-19 Standards Track Standards Council XMPP Core XEP-0166 XEP-0167 RFC 4145 RFC 4572 RFC 5763 NOT_YET_ASSIGNED jingle &fippo; 1.0.0 2020-05-26 XEP Editor (jsc)

Move to Draft as per Council vote from 2020-05-20.

0.3.1 2015-10-15 ph
  • Noted that whitespace is not significant in examples.
0.3 2015-09-28 ph
  • Clarified that holdconn setup role is not mapped.
0.2 2013-10-22 ph
  • Changed namespace to urn:xmpp:jingle:apps:dtls:0.
  • Removed "required" attribute based on implementation feedback.
  • Added setup attribute to map SDP setup attribute.
0.1 2013-04-16 psa

Initial published version approved by the XMPP Council.

0.0.2 2013-02-18 ph

Second draft, rewrite no longer based on XEP-0262.

0.0.1 2012-12-13 ph

First draft, copied from XEP-0262.

&xep0167; recommends the use of the Secure Real-time Transport Protocol (SRTP) for end-to-end encryption of RTP sessions negotiated using &xep0166;. &rfc5763; provides an approach to establish a Secure Real-time Transport Protocol (SRTP) security context using the Datagram Transport Layer Security (DTLS) protocol. A mechanism of transporting the fingerprint attribute that identifies the key that will be presented during the DTLS handshake in Jingle is defined herein. Inclusion of this information is OPTIONAL in both SIP/SDP and Jingle.

Note that while this specification only describes the use in the context of DTLS-SRTP, the fingerprint transported can be used in other contexts like for example establishing connections using SCTP over DTLS as described in &xep0343;.

The SDP format (defined in &rfc4572;) is shown below.

a=fingerprint:hash-func fingerprint

An example follows.

a=fingerprint:sha-256 02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:CD:54:F1:7A:03:A2:7D:F9:B0:7F:46:19:B2

Additionally, the SDP setup attribute defined in &rfc4145; must be mapped, whose usage for DTLS-SRTP is defined in RFC 5763.

a=setup:role

Note that no mapping for the 'holdconn' role is defined herein.

These SDP attributes can be translated into Jingle as a <fingerprint/> element qualified by the 'urn:xmpp:jingle:apps:dtls:0' namespace, as shown below.

fingerprint ]]>

An example follows. Note that the whitespace would not appear in actual XML content.

02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:CD:54:F1:7A:03:A2:7D:F9:B0:7F:46:19:B2 ]]>

If the Jingle initiator wishes to use DTLS-SRTP, it includes the <fingerprint/> element in its session invitation.

02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:CD:54:F1:7A:03:A2:7D:F9:B0:7F:46:19:B2 ]]>

If the receiving party wishes to use DTLS, it also includes the <fingerprint/> element in its session-accept message.

BD:E8:2C:D3:BD:B6:98:50:45:7D:5B:36:89:53:31:15:52:25:88:82:06:95:88:A3:3D:A5:43:8D:5C:21:21:66 ]]>

Alternatively, if the receiving party wishes to expedite with ICE and DTLS negotiation without accepting the session, it MAY include the <fingerprint/> element when sending a transport-info message:

BD:E8:2C:D3:BD:B6:98:50:45:7D:5B:36:89:53:31:15:52:25:88:82:06:95:88:A3:3D:A5:43:8D:5C:21:21:66 ]]>

If an entity supports establishing a Secure Real-time Transport Protocol security context using the Datagram Transport Layer Security protocol, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "urn:xmpp:jingle:apps:dtls:0":

]]> ]]>

In order for an application to determine whether an entity supports this protocol, where possible it SHOULD use the dynamic, presence-based profile of service discovery defined in &xep0115;. However, if an application has not received entity capabilities information from an entity, it SHOULD use explicit service discovery instead.

Security considerations for DTLS-SRTP itself are provided in RFC 5763.

XMPP stanzas such as Jingle messages and service discovery exchanges are not encrypted or signed. As a result, it is possible for an attacker to intercept these stanzas and modify them, thus convincing one party that the other party does not support DTLS-SRTP and therefore denying the parties an opportunity to use DTLS-SRTP.

This document requires no interaction with &IANA;.

Thanks to Justin Uberti, Peter Saint-Andre and Lance Stout.

This specification defines the following XML namespace:

  • urn:xmpp:jingle:apps:dtls:0

The ®ISTRAR; includes the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.

&NSVER;
The protocol documented by this schema is defined in XEP-xxxx: http://www.xmpp.org/extensions/xep-xxxx.html the 'holdconn' value is not used and included only for completeness. ]]>