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

Iñaki Baz Castillo <> Thu, 05 April 2012 15:54 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1217A21F86D0 for <>; Thu, 5 Apr 2012 08:54:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.592
X-Spam-Status: No, score=-2.592 tagged_above=-999 required=5 tests=[AWL=0.085, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id x1LYbh1ygudz for <>; Thu, 5 Apr 2012 08:54:39 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 1CCD621F8674 for <>; Thu, 5 Apr 2012 08:54:39 -0700 (PDT)
Received: by vcbfk13 with SMTP id fk13so756898vcb.31 for <>; Thu, 05 Apr 2012 08:54:38 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=vCR7phMyySLlAvNbrmaYRAhvbG29Pgb9mHTeOfKQ6/E=; b=maqgc4QXc319A6C3GSx8etcoO6nICWo7KIThjPtAtr+jejhRSGZixdjANDrfzFhyXA c/Ti0bewH/eUTJ7dYd1TcuVnzNaLc2Ymotl9QVyXDLPCkJibiFjHRn2JO95HcoBecQAJ 0xz+EYD1Pw76Je3BunDLs7kFQuzFONS6JS9ZTXHOuQifR+r2GMLBrRAiZRhuqEqjTiws A1o2WsENrJ6iH+1qXCAc5XVKLAQ96JZLmFJ+PVWojzYOUkLsURLw98/Gy5xpPclHJs2c bGtRSUEckJyye51ytAA92su2nHDWwPOPQq6kLsRPXERH732COqIQgcRSfd5fAKmTrkpN xczw==
Received: by with SMTP id a9mr1966362vdd.34.1333641278560; Thu, 05 Apr 2012 08:54:38 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Thu, 5 Apr 2012 08:54:18 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <>
From: =?UTF-8?Q?I=C3=B1aki_Baz_Castillo?= <>
Date: Thu, 5 Apr 2012 17:54:18 +0200
Message-ID: <>
To: Roman Shpount <>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQnQ0LXm3ojbppAj2ZwkGFnBJKG7tRrd1+uTfro57QOvFiIO1rjGnIWjOKpm7QXlpEht88Qw
Subject: Re: [rtcweb] WebRTC-SIP interop: and why SDES-SRTP is a need
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 05 Apr 2012 15:54:41 -0000

2012/4/5 Roman Shpount <>:
> On Thu, Apr 5, 2012 at 10:39 AM, Iñaki Baz Castillo <> wrote:

>> 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.

Too much lines if I draw such a custom protocol ;)

> 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.

Lot's of SIP providers force the media throught a RTP proxy, which
indeed is a protocol violation since such proxies do alter the SDP
which is not allowed (theorically). But such a RTP proxy is just a UDP
tunnel so it can be done at kernel space (and it is).

>> 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.

It's possible, sure. First packets are handled in user space, and
later go to kernel space with conntrack rules. It's real and there are
two RTP proxies doing that: MediaProxy and irtpProxy.

> 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.

If the "EKT update to SIP re-INVITE" is not required that's a good new
(at least). What I would HATE is having to deal with a signaling B2BUA
for interop with SIP.

>> 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.

I'm sure that DTLS does not solve *all* those problems.

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

I don't agree. At least ICE is specified for SIP and XMPP-Jingle. SIP
vendors are lazy since they rely of annoying SBC's that break
everything but gives them money, so they "don't need" ICE. But if
WebRTC becomes real then SIP vendors will read the ICE RFC and can
implement it.

The same is not true if a new DTLS-XXXX spec is born for WebRTC since
that would require a new standard also for SIP, XMPP and so.

> P.S. I have feeling that anything security related keeps being discussed
> here without converging anywhere.

Well, I'm learning a lot about SRTP, SDES and DTLS XD

> 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.

So you proposed allowing plain RTP and now just a new DTLS-XXXX-SRTP
is valid for you? :)

Well, ok, IMHO there is enough debate for now. Let's wait a bit :)

Iñaki Baz Castillo