Re: [rtcweb] Preserving stream isolation when traversing the network

Jim Spring <jmspring@gmail.com> Thu, 06 March 2014 21:18 UTC

Return-Path: <jmspring@gmail.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F3D421A00CA for <rtcweb@ietfa.amsl.com>; Thu, 6 Mar 2014 13:18:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.4
X-Spam-Level:
X-Spam-Status: No, score=-1.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, J_CHICKENPOX_18=0.6, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0Mc89ZPPq7Gf for <rtcweb@ietfa.amsl.com>; Thu, 6 Mar 2014 13:18:11 -0800 (PST)
Received: from mail-we0-x232.google.com (mail-we0-x232.google.com [IPv6:2a00:1450:400c:c03::232]) by ietfa.amsl.com (Postfix) with ESMTP id DB4461A00A3 for <rtcweb@ietf.org>; Thu, 6 Mar 2014 13:18:10 -0800 (PST)
Received: by mail-we0-f178.google.com with SMTP id u56so3843422wes.37 for <rtcweb@ietf.org>; Thu, 06 Mar 2014 13:18:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=k/0EeqMU9lsEyjZYuZwrPIRdnWyvCuwxDxSuh2Kflg0=; b=efmQS3THwuqNFRQ7hy34zKvCzCU6liWYfXX8dHrGfdw8ZAzOKHy9MSfcaLswtsxIWw +f6n3RjR4wOTl0RO4yjRu5AjmJyNNK7sv1FJMATdM9lZnx1Tf7LpjpBYEZ9m8JvLIVsJ f+l1eMG2xR73RsyUipUnp8IPyTEHrhZqKwTFf/v/rUdGKbgsOQEREtCA71h+kCBKyiGA neDMMNQiqewBcDhjsr/72Jy5/HJsRjrfC3089cwBOUohACaGGuTTUMPBaAdrcIe1oBmh 1Lz1yHp4+QuPbAnqkuuks933cb+FASEVwV4PLfwXmaKJQdqXkAWO4lrNXg9WrkxY6QW7 7J9A==
X-Received: by 10.194.110.135 with SMTP id ia7mr13592228wjb.5.1394140685892; Thu, 06 Mar 2014 13:18:05 -0800 (PST)
Received: from ?IPv6:2001:67c:1232:108:a1c3:fb5a:5ecd:726d? ([2001:67c:1232:108:a1c3:fb5a:5ecd:726d]) by mx.google.com with ESMTPSA id xt1sm23027281wjb.17.2014.03.06.13.18.04 for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 06 Mar 2014 13:18:04 -0800 (PST)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
From: Jim Spring <jmspring@gmail.com>
In-Reply-To: <AE1A6B5FD507DC4FB3C5166F3A05A4844FABBEDF@TK5EX14MBXC296.redmond.corp.microsoft.com>
Date: Thu, 6 Mar 2014 21:18:04 +0000
Content-Transfer-Encoding: quoted-printable
Message-Id: <5EA398F7-F824-4D9B-B913-C0EFBED50E63@gmail.com>
References: <CABkgnnVZpOJU=2ip88jF=sa2a7K=jBhZA0zkovPo_vvTBwA-GQ@mail.gmail.com> <AE1A6B5FD507DC4FB3C5166F3A05A4844FABBEDF@TK5EX14MBXC296.redmond.corp.microsoft.com>
To: "Matthew Kaufman (SKYPE)" <matthew.kaufman@skype.net>
X-Mailer: Apple Mail (2.1874)
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/TAkyHjulHa7zhBxQIL73V_gLwro
X-Mailman-Approved-At: Fri, 07 Mar 2014 02:32:10 -0800
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Preserving stream isolation when traversing the network
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: Thu, 06 Mar 2014 21:18:13 -0000

My preference is for the former with the caveat of "asking the browser to relax the restriction" not involve ye olde generic popup asking the user for permission.  The former fits in better with the current behavior of audio/video tags.

-jim

On Mar 6, 2014, at 3:03 PM, Matthew Kaufman (SKYPE) <matthew.kaufman@skype.net> wrote:

> Would be good to think about whether the default should be isolated (with a special way for sites to ask the browser to relax the restriction) or not isolated (with a way to ask for isolation). The traditional way for "the web" is to do the latter, but I think by now we've seen why we might have wished otherwise.
> 
> Matthew Kaufman
> 
>> -----Original Message-----
>> From: rtcweb [mailto:rtcweb-bounces@ietf.org] On Behalf Of Martin
>> Thomson
>> Sent: Thursday, March 6, 2014 2:22 PM
>> To: rtcweb@ietf.org
>> Subject: [rtcweb] Preserving stream isolation when traversing the network
>> 
>> There was a bit of confusion yesterday regarding stream isolation.
>> Mostly the reasons for its existence.  This email is an attempt to explain the
>> rationale in more detail, as well as to explore some of the options.
>> 
>> # Problem Statement
>> 
>> This is the feature that we rely on for creating end-to-end protected and
>> authenticated calls.  We rely on the browser preventing applications from
>> accessing these streams so that they can't be modified, recorded, sent to or
>> through servers, rendered to canvas, pushed into web audio, etc...
>> 
>> The basic idea of isolation is already an important part of the web security
>> model.  Streams that come from sources other than WebRTC already require
>> protections of this sort.  For instance, <video> tags from different origins
>> can't be rendered to canvas, and web audio cannot take the output of
>> <audio> if it was cross origin (though CORS can be used to work around this
>> limitation).
>> 
>> The problem I outlined was that any isolation property is not preserved by
>> WebRTC.  This provides a trivial means of circumvention of isolated streams.
>> Sending media using WebRTC effectively strips away isolation.
>> 
>> # Solution Options
>> 
>> As I described in the working group session, I see two ways to solve this
>> problem.  One in-band in TLS, the other in signaling.
>> 
>> We seemed to have general agreement that a signal in (D)TLS would be best.
>> Signaling creates extra attack modes.  This more closely binds the isolation
>> guarantee to the security context.
>> 
>> To that end, I've submitted an extension draft to the TLS WG.  I recommend
>> that you read it and provide comments on its applicability to RTCWEB here,
>> and comments on the mechanism itself over in TLS.
>> 
>> http://datatracker.ietf.org/doc/draft-thomson-tls-acp/
>> 
>> There is another option I really just thought of, and that is to add an
>> authenticated parameter to RTP for this purpose.  Probably as an RTP header
>> extension.  This has different properties, mostly which apply to the scope
>> question.
>> 
>> # Scope
>> 
>> We agreed yesterday that identity assertions would be scoped to the session
>> level and that a=identity is session scoped.
>> 
>> I am going to propose that stream isolation is also scoped to the session.  This
>> implies that all streams from both peers MUST be either all isolated, or that
>> they are all accessible to the application.
>> 
>> There's an argument that you could scope this to a BUNDLE, but that seems
>> like unnecessary complication to me.  For instance, we don't have any API
>> artifacts at this level, upon which this property could be attached.
>> 
>> # Data Channels
>> 
>> The question as to whether data channels are affected by this isolation is an
>> interesting one.  Data channels are inherently NEVER isolated (though we
>> could work on that for some use cases, e.g., file sharing, I don't think that
>> we're ready for that today.)
>> 
>> I would like to say that data channels can't be created on a PeerConnection
>> that has isolated streams.  It's logically cleaner that way.  If we do ever decide
>> to do confidential file transfer (for example), it would also enable that
>> without new contortions.
>> 
>> I'm not going to get militant on this point though if someone has a plausible
>> reason to allow use of data channels in the same PC as isolated streams.
>> 
>> _______________________________________________
>> rtcweb mailing list
>> rtcweb@ietf.org
>> https://www.ietf.org/mailman/listinfo/rtcweb
> 
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb