Re: [rtcweb] Summary of ICE discussion

Hadriel Kaplan <> Tue, 04 October 2011 16:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C35E321F8D8A for <>; Tue, 4 Oct 2011 09:21:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.215
X-Spam-Status: No, score=-2.215 tagged_above=-999 required=5 tests=[AWL=-0.216, BAYES_00=-2.599, J_CHICKENPOX_47=0.6]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id MSqGm-2z8EZg for <>; Tue, 4 Oct 2011 09:21:08 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 230E921F8D86 for <>; Tue, 4 Oct 2011 09:21:08 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id; Tue, 4 Oct 2011 12:24:12 -0400
Received: from ([]) by ([]) with mapi id 14.01.0270.001; Tue, 4 Oct 2011 12:24:13 -0400
From: Hadriel Kaplan <>
To: Randell Jesup <>
Thread-Topic: [rtcweb] Summary of ICE discussion
Thread-Index: AQHMgrIMhMqMbPzAz0WUIBBDdBYXVQ==
Date: Tue, 4 Oct 2011 16:24:11 +0000
Message-ID: <>
References: <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: text/plain; charset="us-ascii"
Content-ID: <>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: AAAAAQAAAWE=
Cc: "<>" <>
Subject: Re: [rtcweb] Summary of ICE discussion
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: Tue, 04 Oct 2011 16:21:08 -0000

On Oct 4, 2011, at 11:05 AM, Randell Jesup wrote:

> One observation about the security/attack-vector side of this:  Any objection that includes "if an attacker is in a MITM position they could trick the rtcweb client into sending media" is an invalid objection.  A MITM attacker could inject or re-route any amount of traffic they wanted already if they're in the media path.  I'll also note that an attacker could be in MITM on the signalling side or DNS, but not MITM on the media/ICE routing; those are valid cases to consider.  And DNS poisoning doesn't require MITM.

Excellent - I was hoping someone else would feel that way about a MITM on the media/ICE path.  I'm not sure that's universally agreed on, though: it was the main reason for requiring the hash on the STUN connectivity checks, afaict.

The hard part about this all, frankly, is that we're not allowed to trust the JavaScript.  Since the JavaScript can learn so much, we're stuck with the Browser generating something that the JS can't learn but that the media peer will learn in the media plane only.  The transaction-id of the STUN connectivity check essentially provides that proof that the STUN answer comes from a real media peer willing to participate.  Unfortunately RTP has no such proof, and RTCP has one but I think people have said it's not strong enough? (I can't find where someone said that, but it could be)

Regardless, fundamentally it seems to me W3C and Browser manufacturers have a problem if they can't ever trust JavaScript: plugins and native apps will always be able to do things JS can't do if W3C can't agree on a way for the user+browser to safely say "yes, this really is JS I trust, with the same level of trust/policies I give to plugins/apps".  I don't mean this for all web-page JS downloads of RTCWeb, but rather for specific sites that I would have a long-term relationship with.  For example if I am a Facebook user and Facebook wants to run JS on my browser, I'd be willing to give them control similar to downloading a Facebook app, even if it requires me to follow the same process of consent that downloading an application does.  What about the Mozilla signed scripts model?

For general RTCWeb JS downloads I think requiring ICE and all is fine and good, and frankly I expect most RTCWeb applications to fall in that model and not care about legacy SIP or the PSTN.  But for some RTCWeb cases it will communicate with legacy SIP/PSTN and those are the types of applications that I think would have a longer-term relationship with the user, for which requiring a more stringent JS trust model seems worthwhile to me.