[rtcweb] Isolating data channels (Re: Asking TLS for help with media isolation)

Harald Alvestrand <harald@alvestrand.no> Mon, 07 April 2014 08:03 UTC

Return-Path: <harald@alvestrand.no>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com []) by ietfa.amsl.com (Postfix) with ESMTP id 654D31A069E for <rtcweb@ietfa.amsl.com>; Mon, 7 Apr 2014 01:03:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.011
X-Spam-Status: No, score=-0.011 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id TTAClhpBHj_c for <rtcweb@ietfa.amsl.com>; Mon, 7 Apr 2014 01:03:04 -0700 (PDT)
Received: from mork.alvestrand.no (mork.alvestrand.no []) by ietfa.amsl.com (Postfix) with ESMTP id 6D4C31A06A0 for <rtcweb@ietf.org>; Mon, 7 Apr 2014 01:03:03 -0700 (PDT)
Received: from localhost (localhost []) by mork.alvestrand.no (Postfix) with ESMTP id 08C7C7C50A4 for <rtcweb@ietf.org>; Mon, 7 Apr 2014 10:02:57 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at alvestrand.no
Received: from mork.alvestrand.no ([]) by localhost (mork.alvestrand.no []) (amavisd-new, port 10024) with ESMTP id BTBQdrRtoEqV for <rtcweb@ietf.org>; Mon, 7 Apr 2014 10:02:56 +0200 (CEST)
Received: from hta-hippo.lul.corp.google.com (unknown [IPv6:2620:0:1043:1:7646:a0ff:fe90:e2bb]) by mork.alvestrand.no (Postfix) with ESMTPSA id 49C3F7C50A1 for <rtcweb@ietf.org>; Mon, 7 Apr 2014 10:02:56 +0200 (CEST)
Message-ID: <53425BAF.4070105@alvestrand.no>
Date: Mon, 07 Apr 2014 10:02:55 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <CABkgnnWWuU63Vd=gw+wrh2ADgVYtQzhoRzRE1sv5azJE=MhWDg@mail.gmail.com> <533F191D.8050109@alum.mit.edu> <CABkgnnVht5EmJ7a2LDh50ivjUdoTpJ8GannQKReBSJbVGQGmgA@mail.gmail.com>
In-Reply-To: <CABkgnnVht5EmJ7a2LDh50ivjUdoTpJ8GannQKReBSJbVGQGmgA@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/yDCTFOriQlgz0W4eKgv_UKLIRBc
Subject: [rtcweb] Isolating data channels (Re: Asking TLS for help with media isolation)
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
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: Mon, 07 Apr 2014 08:03:09 -0000

On 04/04/2014 10:50 PM, Martin Thomson wrote:
> Since you raise data channels, I'll note that we have no way to use 
> data channels in an isolated fashion. Thus, I conclude that if we 
> intend to make this property consistent, we should not be using data 
> channels in the same RTCPeerConnection as media streams. Of course, 
> I'm open to taking the pragmatists approach too, unless we think that 
> there is a use case for - say, file transfer - where it makes sense 
> for data to be isolated in the same way I'm proposing that media be. 

Focusing on the "should we ever isolate data channels" question:

If we ever define a protocol carried *over* data channels that is 
interpreted in the browser, not in the Javascript, and exposes a 
different API to Javascript than the datachannel API, this might make sense.

In that case, I think we should investigate whether it's possible to 
make use of the "protocol" field (put some reserved values into it 
saying "for protocols that look like *this*, Javascript can't set 
them?), it's the logical place to say "this is datachannels, but with 
some extra rules".

Wild suggestion: if you want per-track isolation properties, open up a 
data channel with a protocol called '*WebRTCIsolationInfo' and use it to 
send information about the isolation status of each track, thereby also 
providing a working example for the rule 'all data channels that have 
protocols starting with "*" are for browser internal usage'.....