Re: [rtcweb] WebRTC-SIP interop: and why SDES-SRTP is a need

Roman Shpount <roman@telurix.com> Thu, 05 April 2012 15:40 UTC

Return-Path: <roman@telurix.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A20E221F8658 for <rtcweb@ietfa.amsl.com>; Thu, 5 Apr 2012 08:40:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.02
X-Spam-Level:
X-Spam-Status: No, score=-2.02 tagged_above=-999 required=5 tests=[AWL=-0.544, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_39=0.6, J_CHICKENPOX_44=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GEV8OcA9w4V4 for <rtcweb@ietfa.amsl.com>; Thu, 5 Apr 2012 08:40:30 -0700 (PDT)
Received: from mail-pb0-f44.google.com (mail-pb0-f44.google.com [209.85.160.44]) by ietfa.amsl.com (Postfix) with ESMTP id 8E45221F864F for <rtcweb@ietf.org>; Thu, 5 Apr 2012 08:40:30 -0700 (PDT)
Received: by pbbrq13 with SMTP id rq13so1599820pbb.31 for <rtcweb@ietf.org>; Thu, 05 Apr 2012 08:40:30 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=X2nlrgS3cT5b3R2c16b76cPiyIIN+LriuJlhvUwABc0=; b=cmNl+OdSIi7T8M7P1PsbIQ14JCid1Z7M72KvIGaeU/w/BHivscV1opWYzWgI3TT98g IvVfFiBmQNgRXewnMwwDaVxkt6XZQ0Zj5KIBPT6gUAXirUqkvnX0MQwVkLpP5Jnregdy N3TZ2IJSWAEtYa2wOP5fvTA7QW9lRDGyKttaIB5pQGTY7qgO15w85GMIRDhq0UppJaEQ 7OfRqpeo59byV0NEEUsouuyP7t7dJtLZczB3m0UGnjqJ4KKiPgLwAFAZc/xvHRojUUFX zMvnyX2PYrdf+jAGLWCMlKlsmr9f57+0dUzxcz3fm6jyWyShLKHe4Hn1acN6x0FeaxjE Bhpg==
Received: by 10.68.201.201 with SMTP id kc9mr8106592pbc.50.1333640430155; Thu, 05 Apr 2012 08:40:30 -0700 (PDT)
Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx.google.com with ESMTPS id s10sm3559649pbp.14.2012.04.05.08.40.28 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 05 Apr 2012 08:40:29 -0700 (PDT)
Received: by dady13 with SMTP id y13so2461034dad.27 for <rtcweb@ietf.org>; Thu, 05 Apr 2012 08:40:28 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.68.197.3 with SMTP id iq3mr8106844pbc.36.1333640428404; Thu, 05 Apr 2012 08:40:28 -0700 (PDT)
Received: by 10.68.6.67 with HTTP; Thu, 5 Apr 2012 08:40:28 -0700 (PDT)
In-Reply-To: <CALiegfngqJLRdNPsyBtVMouD_yh+3FiUNAWBuq3vb8BbbjgTqw@mail.gmail.com>
References: <CALiegfmz6tgm9WF3KWEK5qwaBGADKFyit=egB36zkjZXNKdeHw@mail.gmail.com> <CALiegfnA8_ntYd5f935P_E6vvMwjrzt+j6UhB9vjmo6h-RzfPA@mail.gmail.com> <CAD5OKxsxrDdsoV18KB1gZSsUBPno-k2zs4E2FTUaoUBdXfh5yA@mail.gmail.com> <CAE6kErhTOFP1qna-OKRmJzM=Rssc0UEXTyDgSyKmh2AM+PuviA@mail.gmail.com> <CAD5OKxuuC1q9uCnREqi_-i0unT=6Uza+oYsCWtanbSjmSi5_DQ@mail.gmail.com> <CALiegf=qo4uWjSBx6F5PmN_vqtbqYzQ9e5igqe_YJPKj0BHQvg@mail.gmail.com> <CAD5OKxu6n_yDAtsy9_pkcGyA8t15y3pY4sQoYmwoPnoL=8_=cA@mail.gmail.com> <CALiegfngqJLRdNPsyBtVMouD_yh+3FiUNAWBuq3vb8BbbjgTqw@mail.gmail.com>
Date: Thu, 05 Apr 2012 11:40:28 -0400
Message-ID: <CAD5OKxu+gAS2HGD9HNfSRUX-HMWjzmb6++tv0VWX5s0Ldzqz0Q@mail.gmail.com>
From: Roman Shpount <roman@telurix.com>
To: Iñaki Baz Castillo <ibc@aliax.net>
Content-Type: multipart/alternative; boundary="e89a8ff1c650fe3ffa04bcf05b1b"
X-Gm-Message-State: ALoCoQm1x/xpKMuodp6LCkg9AtBJEb1amv8QO3bDf1sQNpUa5LYh+JzU2PmLXjHb02JRePE8p0qK
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] WebRTC-SIP interop: and why SDES-SRTP is a need
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Apr 2012 15:40:31 -0000

On Thu, Apr 5, 2012 at 10:39 AM, Iñaki Baz Castillo <ibc@aliax.net> wrote:

> 2012/4/5 Roman Shpount <roman@telurix.com>:
> >
> > On Thu, Apr 5, 2012 at 5:04 AM, Iñaki Baz Castillo <ibc@aliax.net>
> wrote:
> >> ICE support can be implemented in a ICE-Lite RTP/SRTP proxy, see:
> >>
> >>  http://public.aliax.net/WebRTC/WebRTC_SIP_Interop_SDES-SRTP.png
> >
> >
> > This picture is not entirely correct -- ICE Lite proxy should be on both
> SIP
> > and Media path.
>
> Incorrect. The proxy would communicate with the ICE-Lite server(s)
> using some kind of proprietary protocol. This is already true in some
> SIP proxies (SER, Kamailio, OpenSer) and media-proxies (rtpproxy,
> mediaproxy, irtpproxy).
>
> Internal protocols do not matter. The "super B2BUA" can be using a custom
protocol between RTP forwarder and SIP processor. Does not change the fact
that from logical point of view it is on both SIP and media path. At
minimum you are missing a custom protocol connection between ICE-Lite
gateway and SIP proxy. So, your picture is still wrong.


> >> That is a *very* limited scope of what WebRTC can provide. An IT
> >> department should be able to deploy its own WebRTC infrastructure (a
> >> Web+WebSocket server) within its "local" network, so browsers
> >> accessing to such a local website share the network with SIP/XMPP
> >> phones/devices/softphones.
> >>
> >> Please don't imagine WebRTC and SIP interop as the communication
> >> between two islands ;)
> >
> >
> > I actually do imagine WebRTC/SIP interop as two islands. If we need to
> proxy
> > media and convert Web+WebSocket into SIP this is a definition of island
> > bridge for me.
>
> If you say that we need to "convert Web+WebSocket into SIP" then you
> are absolutely wrong, even more taking into account that
> "draft-ibc-sipcore-sip-websocket-01" (The WebSocket Protocol as a
> Transport for SIP) is being adopted by the IETF SIPCORE Working Group
> as a new SIP transport.
>
> The slide 8 in [2] shows a *pure* SIP proxy, and not a "WebSocket to
> SIP gateway". So ***NO*** island at signaling level, not at all.
>
>
> [1] http://tools.ietf.org/html/draft-ibc-sipcore-sip-websocket-01
> [2] http://sip-on-the-web.aliax.net/
>
> This assumes ICE support in SIP end points. If they do not support ICE you
still need a media proxy driven by SIP proxy. Not that different from
encryption.



> >> Not in the case SDES+SRTP is allowed in WebRTC (see Fabius's recent
> >> mails about SDES and DTLS).
> >>
> >
> > Once again, we still need a gateway to support ICE. If end point is
> adding
> > ICE to interop with WebRTC, why not add DTLS-SRTP at the same time.
>
> Building an ICE-Lite RTP/SRTP tunnel/proxy is "easy". After ICE
> "handhake" the server can relay UDP packets as kernel space (conntrack
> in Linux), but if you need to decrypt and encrypt you need to do that
> at user space, which is much worse and requires much more CPU.
>
> You can still get STUN messages after initial handshake, so you need to
monitor/filter media. Not sure this is possible with conntrack. If you are
doing media proxy with re-encryption in the user space you can probably get
about 10GB/sec worth of throughput with the modern dual Xeon E5 server.


> > P.S. I actually do not like DTLS-SRTP, since it does not have a large
> > installed base, comes with too many features, slows down call setup, will
> > requirecomplex interop and such.
>
> > I believe we should
> > design a new key exchange method, that can be mapped to SDES-SRTP via
> > signaling alone,
>
> And wouldn't that be a mechanism with "non a large installed base"?
>

I would prefer a simpler new protocol then a complex existing one with no
real user base. Something as simple as sending public key in the SDP and
sending session key in ICE handshake STUN message would be better the DTLS.
It is simple to implement, does not send keys over clear channel, and can
be mapped to SDES-SRTP using ICE-Lite proxy with no additional signaling
messages or doing re-encryption. This probably needs to be enhanced to
support public key algorithm/key length negotiation and replay protection,
but this should be trivial as well.


> > addresses SDES-SRTP issues (transmitting keys over clear
> > channel in signaling, replay of signaling)
>
> If HTTPS / WSS is used, there is no "clear channel". It would be easy
> to mandate *all* the browser communication using TLS for the case in
> which SDES-SRTP is used. That is a feasible and valid requirement
> IMHO.
>

HTTPS/WSS is used you provide better protection, but there are still issues
with cross-site scripting, web site security etc. You did prevent some of
the attacks, but you still nowhere near being secure. Once again, if we
have a key exchnage that can be mapped to SDES-SRTP, there is no need to
compromise.

> without introducing all the
> > problems related to DTLS-SRTP. Any number of methods using public key
> based
> > exchange over signaling and ICE should do the trick.
>
> So a complete new protocol. Bye any kind of interop (except if you
> have the magic super B2BUA).
>

I think idea of interop is gone for all practical purposes. We gave it up
when we made ICE a requirement.


> PS: Please consider reading Fabios's mails and reply to them. The
> discussion will be more interesting is such nice explanations are not
> ignored ;)
>
>
I've read it. Nice tutorial, but does not change anything I am saying here.

P.S. I have feeling that anything security related keeps being discussed
here without converging anywhere. My proposal (DTLS-SRTP by default,
SDES-SRTP from HTTPS sessions or RTP from HTTP session if enabled) got
ignored as well. This at least inline with current HTTP(S) security model.
______________
Roman Shpount