This commit is contained in:
Peter Saint-Andre 2013-11-14 11:41:39 -07:00
parent c15a0cb35c
commit 1a7984742a
1 changed files with 45 additions and 19 deletions

View File

@ -18,6 +18,7 @@
<spec>XMPP Core</spec>
<spec>XEP-0166</spec>
<spec>XEP-0167</spec>
<spec>RFC 4145</spec>
<spec>RFC 4572</spec>
<spec>RFC 5763</spec>
</dependencies>
@ -31,6 +32,18 @@
-->
<discuss>jingle</discuss>
&fippo;
<revision>
<version>0.2</version>
<date>2013-10-22</date>
<initials>ph</initials>
<remark>
<ul>
<li>Changed namespace to urn:xmpp:jingle:apps:dtls:0.</li>
<li>Removed &quot;required&quot; attribute based on implementation feedback.</li>
<li>Added setup attribute to map SDP setup attribute.</li>
</ul>
</remark>
</revision>
<revision>
<version>0.1</version>
<date>2013-04-16</date>
@ -62,18 +75,23 @@ a=fingerprint:hash-func fingerprint
<code>
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
</code>
<p>This SDP attribute can be translated into Jingle as a &lt;fingerprint/&gt; element qualified by the 'urn:xmpp:tmp:jingle:apps:dtls:0' namespace, as shown below.</p>
<p>Additionally, the SDP setup attribute defined in &rfc4145; must be mapped, whose usage for DTLS-SRTP is defined in <cite>RFC 5763</cite>.</p>
<code>
a=setup:role
</code>
<p>These SDP attributes can be translated into Jingle as a &lt;fingerprint/&gt; element qualified by the 'urn:xmpp:jingle:apps:dtls:0' namespace, as shown below.</p>
<code><![CDATA[
<fingerprint xmlns='urn:xmpp:tmp:jingle:apps:dtls:0' hash='hash-func'>fingerprint</fingerprint>
<fingerprint xmlns='urn:xmpp:jingle:apps:dtls:0' hash='hash-func' setup='role'>
fingerprint
</fingerprint>
]]></code>
<p>An example follows.</p>
<code><![CDATA[
<fingerprint mlns='urn:xmpp:tmp:jingle:apps:dtls:0' hash='sha-256'>
<fingerprint mlns='urn:xmpp:jingle:apps:dtls:0' hash='sha-256' setup='actpass'>
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
</fingerprint>
]]></code>
<p>Note: since DTLS can be used to protect non-RTP sessions like SCTP including the fingerprint in the &lt;encryption/&gt; element defined in &xep0167; was deemed inappropriate. Also, the &lt;encryption/&gt; element defined there only applies to the encryption of the RTP data part, whereas DTLS (and DTLS-SRTP) protects the whole message.</p>
<p>If the Jingle initiator wishes to use DTLS-SRTP, it includes the &lt;fingerprint/&gt; element in its session invitation. If the initiator requires the use of DTLS, the &lt;fingerprint/&gt; element MUST include a 'required' attribute whose logical value is TRUE and whose lexical value is "true" or "1" &BOOLEANNOTE;, where this attribute defaults to a logical value of FALSE (i.e., a lexical value of "false" or "0").</p>
<p>If the Jingle initiator wishes to use DTLS-SRTP, it includes the &lt;fingerprint/&gt; element in its session invitation.</p>
<example caption="Initiator sends session invitation with DTLS fingerprint"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='uz61v4m4'
@ -94,9 +112,9 @@ a=fingerprint:sha-256 02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:C
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:1'
pwd='asd88fgpdd777uzjYhagZg'
ufrag='8hhy'>
<fingerprint xmlns='urn:xmpp:tmp:jingle:apps:dtls:0' hash='sha-256' required='true'>
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
</fingerprint>
<fingerprint xmlns='urn:xmpp:jingle:apps:dtls:0' hash='sha-256' setup='actpass'>
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
</fingerprint>
<candidate component='1'
foundation='1'
generation='0'
@ -143,9 +161,9 @@ a=fingerprint:sha-256 02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:C
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:1'
pwd='YH75Fviy6338Vbrhrlp8Yh'
ufrag='9uB6'>
<fingerprint xmlns='urn:xmpp:tmp:jingle:apps:dtls:0' hash='sha-256' required='1'>
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
</fingerprint>
<fingerprint xmlns='urn:xmpp:jingle:apps:dtls:0' hash='sha-256' setup='active'>
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
</fingerprint>
<candidate component='1'
foundation='1'
generation='0'
@ -176,9 +194,9 @@ a=fingerprint:sha-256 02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:C
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:1'
pwd='YH75Fviy6338Vbrhrlp8Yh'
ufrag='9uB6'>
<fingerprint xmlns='urn:xmpp:tmp:jingle:apps:dtls:0' hash='sha-256' required='1'>
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
</fingerprint>
<fingerprint xmlns='urn:xmpp:jingle:apps:dtls:0' hash='sha-256' setup='active'>
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
</fingerprint>
<candidate component='1'
foundation='1'
generation='0'
@ -230,7 +248,7 @@ a=fingerprint:sha-256 02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:C
</section1>
<section1 topic='Acknowledgements' anchor='acks'>
<p>Thanks to Justin Uberti.</p>
<p>Thanks to Justin Uberti and Lance Stout.</p>
</section1>
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
@ -252,8 +270,8 @@ a=fingerprint:sha-256 02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:C
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='urn:xmpp:tmp:jingle:apps:dtls:0'
xmlns='urn:xmpp:tmp:jingle:apps:dtls:0'
targetNamespace='urn:xmpp:jingle:apps:dtls:0'
xmlns='urn:xmpp:jingle:apps:dtls:0'
elementFormDefault='qualified'>
<xs:annotation>
@ -268,12 +286,20 @@ a=fingerprint:sha-256 02:1A:CC:54:27:AB:EB:9C:53:3F:3E:4B:65:2E:7D:46:3F:54:42:C
<xs:simpleContent>
<xs:extension base='xs:string'>
<xs:attribute name='hash' type='xs:string' use='required'/>
<xs:attribute name='required' type='xs:boolean' default='false'/>
<xs:attribute name='setup' use='required'/>
<xs:simpleType>
<xs:restriction base='xs:NCName'>
<xs:enumeration value='active'/>
<xs:enumeration value='passive'/>
<xs:enumeration value='actpass'/>
<xs:enumeration value='holdconn'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
]]></code>
</section1>