Re: [MMUSIC] [AVT] Sockets in multicast DTLS-SRTP

"Dan Wing" <dwing@cisco.com> Fri, 07 May 2010 14:20 UTC

Return-Path: <dwing@cisco.com>
X-Original-To: mmusic@core3.amsl.com
Delivered-To: mmusic@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A09D63A6B43; Fri, 7 May 2010 07:20:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.83
X-Spam-Level:
X-Spam-Status: No, score=-9.83 tagged_above=-999 required=5 tests=[AWL=-0.431, BAYES_00=-2.599, J_CHICKENPOX_12=0.6, J_CHICKENPOX_15=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ERzWpB+qe2rg; Fri, 7 May 2010 07:20:54 -0700 (PDT)
Received: from sj-iport-2.cisco.com (sj-iport-2.cisco.com [171.71.176.71]) by core3.amsl.com (Postfix) with ESMTP id 83FBC3A6B33; Fri, 7 May 2010 07:20:51 -0700 (PDT)
Authentication-Results: sj-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-AV: E=Sophos;i="4.52,348,1270425600"; d="scan'208";a="254656737"
Received: from sj-core-1.cisco.com ([171.71.177.237]) by sj-iport-2.cisco.com with ESMTP; 07 May 2010 14:20:39 +0000
Received: from dwingwxp01 ([10.32.240.196]) by sj-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o47EKd76018750; Fri, 7 May 2010 14:20:39 GMT
From: Dan Wing <dwing@cisco.com>
To: 'Romain Biehlmann' <romain.biehlmann@gmail.com>
References: <9a06dcf1003230527q39fc7f9bye2ca616599e95cac@mail.gmail.com> <00f101cacad0$9d93fc10$1143150a@cisco.com> <9a06dcf1003240120g29db1b1bxb0f0a3e719336720@mail.gmail.com> <009201caed66$6fef95e0$38a66b80@cisco.com> <q2p9a06dcf1005070135k7d2d133el8516cb8689761c50@mail.gmail.com>
Date: Fri, 07 May 2010 07:20:38 -0700
Message-ID: <01fe01caedf0$77eaa200$38a66b80@cisco.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 11
Thread-Index: AcrtwEdZlUu3ciBjTYefQyZsPRIIbAAL80cQ
In-Reply-To: <q2p9a06dcf1005070135k7d2d133el8516cb8689761c50@mail.gmail.com>
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350
Cc: 'Flemming Andreasen' <fandreas@cisco.com>, avt@ietf.org, mmusic@ietf.org
Subject: Re: [MMUSIC] [AVT] Sockets in multicast DTLS-SRTP
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmusic>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 07 May 2010 14:20:56 -0000

> -----Original Message-----
> From: Romain Biehlmann [mailto:romain.biehlmann@gmail.com] 
> Sent: Friday, May 07, 2010 1:35 AM
> To: Dan Wing
> Cc: avt@ietf.org; Flemming Andreasen; mmusic@ietf.org
> Subject: Re: [AVT] Sockets in multicast DTLS-SRTP
> 
> Hi Dan,
> 
> Thank you for your answer: the first solution could solve the problem.

Great; that keeps things simplier.

> I now wonder about KTR: do you consider (a) as a replacement for (b)?
> 
> (a)
> a=dtls-srtp-ktr
> a=dtls-srtp IP4 192.168.0.1 12345
> 
> (b)
> a=dtls-srtp-ktr
> a=dtls-srtp-ktr-server:12345 IN IP4 192.168.0.1

Only difference appears to be a choice of syntax.  I was intending to follow
the same syntax of ICE (I can't follow m=/c= syntax, as they put the IP
address and port on different lines).

-d


> Romain
> 
> 
> 
> On Thu, May 6, 2010 at 11:52 PM, Dan Wing <dwing@cisco.com> wrote:
> > Romain,
> >
> > (added MMUSIC, as this is mostly about SDP in this post.)
> >
> > I talked with Flemming about this and there isn't an 
> existing SDP mechanism we
> > could easily extend to allow unicast keying of a multicast 
> session.  The
> > problem isn't just with multicast; there are some unicast 
> scenarios, such as
> > really large unicast groups, where having the 'speaker' or 
> 'mixer' do the
> > keying doesn't scale very well (and doing DTLS in a 
> separate device can
> > improve things).
> >
> > So, we would need to define a new SDP attribute that 
> indicates the DTLS-SRTP
> > peer for keying, something like this (which shows a 
> DTLS-SRTP-encrypted
> > multicast audio session),
> >
> >        v=0
> >        o=- 25678 753849 IN IP4 192.0.2.1
> >        s=
> >        t=0 0
> >        m=audio 41000 UDP/TLS/RTP/SAVP 98
> >        c=IN IP4 233.252.0.2/255
> >        a=dtls-srtp IP4 192.0.2.2 556677             <<<<<<<
> >        a=dtls-srtp IP6 2001:db8:abcd::1234 556677   <<<<<<<
> >
> > The Answerer would choose IPv6 or IPv4, and initiate a 
> DTLS-SRTP handshake
> > with that address.  However, this won't work well if the 
> DTLS-SRTP 'server' is
> > behind a NAT, and almost begs for ICE to support that 
> situation.  There seem
> > to be two approaches:  (1) avoid the problem or (2) include 
> support for ICE.
> >
> > (1) In this approach, we dictate that the DTLS-SRTP 
> server's IP address(es)
> > must be accessible to the Answerer.  This means the 
> DTLS-SRTP server has to
> > use a publicly-routed IP address.
> >
> > (2) In this approach, we use ICE, inside a=dtls-srtp 
> attribute lines, which
> > would look something like this:
> >
> >        v=0
> >        o=- 25678 753849 IN IP4 192.0.2.1
> >        s=
> >        t=0 0
> >        m=audio 41000 UDP/TLS/RTP/SAVP 98
> >        c=IN IP4 233.252.0.2/255
> >        a=dtls-srtp ice-pwd asd88fgpdd777uzjYhagZg
> >        a=dtls-srtp ice-ufrag:8hhY
> >        a=dtls-srtp candidate:1 1 UDP 2130706431 10.0.1.1 
> 8998 typ host
> >        a=dtls-srtp candidate:2 1 UDP 1694498815 192.0.2.3 
> 45664 typ srflx
> > raddr
> >   10.0.1.1 rport 8998
> >
> >
> > Would approach (1) meet your needs?
> >
> > -d
> >
> >
> >
> >> -----Original Message-----
> >> From: Dan Wing [mailto:dwing@cisco.com]
> >> Sent: Friday, March 26, 2010 11:31 AM
> >> To: 'Romain Biehlmann'
> >> Cc: 'avt@ietf.org'; 'Flemming Andreasen'
> >> Subject: RE: [AVT] Sockets in multicast DTLS-SRTP
> >>
> >> Thanks for explaining the issue.  I believe we don't yet know
> >> how to have SDP associate a unicast session (for DTLS-SRTP)
> >> with a multicast session (for receiving the SRTP-encrypted
> >> stream).  I expect there is an answer in MMUSIC's SDP
> >> Capability Negotiation and/or what is being done to mix
> >> unicast and multicast in draft-ietf-avt-rapid-acquisition-for-rtp,
> >> or somewhere.
> >>
> >> Flemming Andreasen (CC'd) will take a look at this over the
> >> next week (he is editor of SDP Capability Negotiation and
> >> co-author of EKT).  But at this point I believe it will
> >> require additional standards work to mix unicast/multicast.
> >>
> >> -d
> >>
> >>
> >> > -----Original Message-----
> >> > From: Romain Biehlmann [mailto:romain.biehlmann@gmail.com]
> >> > Sent: Wednesday, March 24, 2010 1:20 AM
> >> > To: Dan Wing
> >> > Cc: avt@ietf.org
> >> > Subject: Re: [AVT] Sockets in multicast DTLS-SRTP
> >> >
> >> > Hi,
> >> >
> >> > And thank you for your fast answer!
> >> >
> >> > I actually already planned on using KTR, which uses EKT,
> >> but got stuck
> >> > by this socket problem.
> >> >
> >> > I don't get how the data should be multiplexed in the case of a
> >> > multicast session since two sockets will be opened on 
> the clients'
> >> > side (as shown on the drawing below)... Or am I completely wrong?
> >> >
> >> > ----------
> >> > | server |---- SRTP multicast session -------------------
> >> > ----------                                              |
> >> >   | | |                                  ------------   |
> >> >   | | |--- DTLS KTR unicast session 1 ---| client 1 |---|
> >> >   | |                                    ------------   |
> >> >   | |                                    ------------   |
> >> >   | |----- DTLS KTR unicast session 2 ---| client 2 |---|
> >> >   |                                      ------------   |
> >> >   |                                      ------------   |
> >> >   |------- DTLS KTR unicast session 3 ---| client 3 |---|
> >> >                                          ------------
> >> >
> >> > Thank you very much for the time you take to read me.
> >> >
> >> > Romain
> >> >
> >> >
> >> >
> >> > 2010/3/23 Dan Wing <dwing@cisco.com>:
> >> > >> -----Original Message-----
> >> > >> From: avt-bounces@ietf.org [mailto:avt-bounces@ietf.org] On
> >> > >> Behalf Of Romain Biehlmann
> >> > >> Sent: Tuesday, March 23, 2010 5:27 AM
> >> > >> To: avt@ietf.org
> >> > >> Subject: [AVT] Sockets in multicast DTLS-SRTP
> >> > >>
> >> > >> Hi all,
> >> > >>
> >> > >> I hope my question is not too dumb, and not too
> >> > >> implementation-oriented; if so, please accept my apologies
> >> > and ignore
> >> > >> it.
> >> > >>
> >> > >> In 
> http://tools.ietf.org/html/draft-ietf-avt-dtls-srtp-07 chapter
> >> > >> 5.1.1, we can read the following:
> >> > >> "When a user of DTLS wishes to send an RTP packet in 
> SRTP mode it
> >> > >> delivers it to the DTLS implementation as an ordinary
> >> > application data
> >> > >> write (e.g., SSL_write())."
> >> > >>
> >> > >> From that, I understand that in the case of a unicast
> >> session, only
> >> > >> one socket is needed for the transmission of STUN, 
> SRTP and DTLS
> >> > >> datagrams.
> >> > >
> >> > > Right, and demultiplexed as shown in
> >> > >
> >> 
> http://tools.ietf.org/html/draft-ietf-avt-dtls-srtp-07#section-5.1.2
> >> > >
> >> > >> I am not sure, though, to get how it should work in the
> >> > case of a (one
> >> > >> to many) multicast session.
> >> > >
> >> > > Use DTLS-SRTP with EKT.  EKT allows telling each of 
> the receivers
> >> > > the same key.  The sender then sends the same multicast packet
> >> > > (or if using unicast, the sender sends the same 
> packet, unicast,
> >> > > to each NNN receivers).
> >> > >
> >> > > EKT is http://tools.ietf.org/html/draft-ietf-avt-srtp-ekt-00
> >> > >
> >> > > -d
> >> > >
> >> > >> Isn't the server supposed to send SRTP datagrams to a 
> broadcast
> >> > >> address, whereas DTLS data must be sent directly to (unicast)
> >> > >> designated clients? Is the sentence in the draft only
> >> applicable to
> >> > >> unicast?
> >> > >>
> >> > >> I thank you in advance for your valuable insight.
> >> > >>
> >> > >> Romain
> >> > >> _______________________________________________
> >> > >> Audio/Video Transport Working Group
> >> > >> avt@ietf.org
> >> > >> https://www.ietf.org/mailman/listinfo/avt
> >> > >
> >> > >
> >> >
> >>
> >
> >