Re: [rtcweb] Stephen Farrell's Discuss on draft-ietf-rtcweb-stun-consent-freshness-15: (with DISCUSS and COMMENT)

Alissa Cooper <alissa@cooperw.in> Thu, 06 August 2015 13:08 UTC

Return-Path: <alissa@cooperw.in>
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 44A341B2EF5 for <rtcweb@ietfa.amsl.com>; Thu, 6 Aug 2015 06:08:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=unavailable
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 f5LyuoHpT7tM for <rtcweb@ietfa.amsl.com>; Thu, 6 Aug 2015 06:08:12 -0700 (PDT)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 23BA21B2EF2 for <rtcweb@ietf.org>; Thu, 6 Aug 2015 06:08:12 -0700 (PDT)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 8EA6C204ED for <rtcweb@ietf.org>; Thu, 6 Aug 2015 09:08:11 -0400 (EDT)
Received: from frontend2 ([10.202.2.161]) by compute5.internal (MEProxy); Thu, 06 Aug 2015 09:08:11 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=cooperw.in; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=dmeWo thRuduKe3Pd3N6T7Af7jsw=; b=OW4YGN02A3sUcpQfYpmkjVGvGzdrGuBYMS/xx 93nrkMZQSHjhLu9bvlVYkgTcMOXldUP6pTDGQjnWziCBRuE67TTOFArD+E3Yewua 3D0gIMNHBCIl5+Eet/ODkWJ0mfO2nfWijRwypU9Ijc3aTW4phPVJ80HKBlGG+Q1g y4diPE=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=dmeWothRuduKe3Pd3N6T7Af7jsw=; b=FFPci IQI3jlk4o9rle6jnBq8ryEjwgM4wePUIrVpURWKuchgGbR6m8QZQmUhEUU8SqdmC dHj+h+HYiFQssd0UPi8UYyuagzY3CDl4RovrjGUmTom4Qbl6Z/NSpCSswyqO56ri 8DCoWNqe6DrcbkyVPOwyMqoEQH9KSoFbDAIntU=
X-Sasl-enc: 6v7pnseBNVEzWSFbqBhb0fulLqJGzHunN6jpczI7XvwR 1438866490
Received: from sjc-alcoop-8814.cisco.com (unknown [128.107.241.169]) by mail.messagingengine.com (Postfix) with ESMTPA id AC170680141; Thu, 6 Aug 2015 09:08:08 -0400 (EDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_68B7BFDA-D38C-493C-AA40-373963E6B87D"
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Alissa Cooper <alissa@cooperw.in>
In-Reply-To: <55C24293.5000603@cs.tcd.ie>
Date: Thu, 06 Aug 2015 06:08:08 -0700
Message-Id: <0ACC6069-AB51-4D19-A329-327640B2CCC1@cooperw.in>
References: <20150805130607.20844.70680.idtracker@ietfa.amsl.com> <CABcZeBMWVU9a1_e_47qddA04WhXG55QYzFA=dTrYgi+DuLQhKA@mail.gmail.com> <55C24293.5000603@cs.tcd.ie>
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/WOwvXK6KGTWiO0C9tpcdsjiKTpw>
Cc: draft-ietf-rtcweb-stun-consent-freshness@ietf.org, rtcweb-chairs@ietf.org, draft-ietf-rtcweb-stun-consent-freshness.shepherd@ietf.org, "rtcweb@ietf.org" <rtcweb@ietf.org>, IESG <iesg@ietf.org>, draft-ietf-rtcweb-stun-consent-freshness.ad@ietf.org
Subject: Re: [rtcweb] Stephen Farrell's Discuss on draft-ietf-rtcweb-stun-consent-freshness-15: (with DISCUSS and COMMENT)
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: <https://mailarchive.ietf.org/arch/browse/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 Aug 2015 13:08:16 -0000

Picking up on one more of these ...

On Aug 5, 2015, at 10:06 AM, Stephen Farrell <stephen.farrell@cs.tcd.ie> wrote:

> 
> Hiya.
> 
> On 05/08/15 16:00, Eric Rescorla wrote:
>> On Wed, Aug 5, 2015 at 6:06 AM, Stephen Farrell <stephen.farrell@cs.tcd.ie>
>> wrote:
>> 
>>> Stephen Farrell has entered the following ballot position for
>>> draft-ietf-rtcweb-stun-consent-freshness-15: Discuss
>>> 
>>> When responding, please keep the subject line intact and reply to all
>>> email addresses included in the To and CC lines. (Feel free to cut this
>>> introductory paragraph, however.)
>>> 
>>> 
>>> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
>>> for more information about IESG DISCUSS and COMMENT positions.
>>> 
>>> 
>>> The document, along with other ballot positions, can be found here:
>>> https://datatracker.ietf.org/doc/draft-ietf-rtcweb-stun-consent-freshness/
>>> 
>>> 
>>> 
>>> ----------------------------------------------------------------------
>>> DISCUSS:
>>> ----------------------------------------------------------------------
>>> 
>>> 
>>> 
>>> Apologies that these discuss points are maybe asking
>>> fairly fundamental questions.  That could be that this
>>> is really the first of the new security things required
>>> by rtcweb to get to the IESG.  Or maybe I'm misreading
>>> stuff here, if so, sorry;-)
>>> 
>>> (1) Why call this "consent?" That term is (ab)used in
>>> many ways on the web, and adding another variation
>>> without a definition that distinguishes this from "click
>>> ok to my 200 page anti-privacy policy" or "remember that
>>> example.com is allowed use my camera/mic" seems like a
>>> terrible idea. I also don't see how this can ever be
>>> something to which a normal person can "consent" (i.e.
>>> consciously agree while fully understanding) so the term
>>> is IMO very misleading, and will I fear be used to
>>> mislead further.  (See also some of the comments below -
>>> I do not think we ought be as fast and loose with this
>>> aleady terribly badly used term.) To summarise: I'd love
>>> if you did s/consent/anything-else/g but if not, please
>>> define consent here in a way that clearly and
>>> unambiguously distinguishes this usage from other abuses
>>> of the term.
>>> 
>> 
>> You should probably propose a new term at this point.
> 
> Really? Happy to try (and fail:-) How'd "willing to take
> rtcweb traffic" work? I suspect it wouldn't though.

I am sympathetic to the point about “consent” but I’m not sure there is a single better word that connotes a machine agreeing to something rather than a person doing so. I think “permission” would be an even worse choice in this case given that it has a very common usage in WebRTC/browser land related to exactly what you cite above, namely browser permissions to use camera, mic, etc. “Willingness” seems at least as human if not more so than “consent.”

There is already a definition of “consent” in the draft:

Consent:  The mechanism of obtaining permission from the remote
      endpoint to send non-ICE traffic to a remote transport address.
      Consent is obtained using ICE.

I would suggest adding one additional sentence to this:

“Note that this is an application-level consent; no human intervention is involved.”

Alissa

> 
> But I'm not clear if you're agreeing that that term
> is problematic or just asking me to suggest something in
> the hope I realise the futility of what I'm requesting?
> 
> 
>> 
>> 
>> (2) WebRTC does not require STUN or TURN servers for
>>> some calls, even if it does for many. Why is it ok to
>>> require such a server be present in all calls (which I
>>> think this means) espcially when that means exposing
>>> additional meta-data (calling parties in a case where
>>> the servers weren't needed and call duration in all
>>> cases) to those servers when that is not always
>>> necessary?
>>> 
>> 
>> I'm not sure what you mean by "OK" and "require". 
>> The physics of the
>> situation
>> is that if you want to do a call between two people not on the same network,
>> then you minimally need STUN. 
> 
> Sure. But if they're on the same n/w? Do we agree that
> in that case, there shouldn't be a need for a new STUN
> or TURN server in the call? And that if this draft meant
> such a server was needed even in that case, then that'd
> be an issue?
> 
>> If you want it to (almost) always work you
>> need TURN. This isn't a spec requirement but just a result of the network
>> topology. As far as I know, the specs don't require that the site supply
>> a STUN/TURN server and the implementations don't either, but I'm not
>> sure what else you're looking for.
> 
> So one non-inevitable consequence of the how this draft
> is written is that the STUN/TURN server gets to know the
> call duration. That could have been avoided I think if
> some other design had been chosen. Part of my question
> then is why exposing that additional meta-data to a server
> that most users won't know exists, and that is likely
> controlled by some entity the user has no clue is even
> involved in their calls, is acceptable.
> 
>>> (3) (end of p5) You have a MUST NOT here that is
>>> depenedent on current browser implementations. Why is
>>> that an IETF thing and not a W3C thing? But more
>>> interestingly, can one securely use this protocol
>>> without the kind of JS vs. browser sandboxing etc that's
>>> needed in the web? If the answer is "no" then don't you
>>> need to say that this protocol can only safely be used
>>> for such implementations? (In section 2, which almost
>>> but not quite says that.)
>>> 
>> 
>> This is just only relevant in this case. It doesn't apply to non-JS
>> implementations.
> 
> Not sure I'm following. Are you saying that this protocol
> would be safe even if there wasn't the split between JS
> and non-JS code running on the browser? If so, that's good.
> 
> Cheers,
> S.
> 
>> 
>> -Ekr
>> 
>> ----------------------------------------------------------------------
>>> COMMENT:
>>> ----------------------------------------------------------------------
>>> 
>>> 
>>> - abstract: why is only sending "media" mentioned here?
>>> What about data channels?  And the body of the document
>>> in fact says this all applies to any non-ICE data and
>>> not only media.
>>> 
>>> - intro: "initial consent to send by performing STUN" I
>>> do not find the word consent in either rfc5245 or 3489,
>>> but perhaps it is used somewhere else. Where?  And with
>>> what meaning?
>>> 
>>> - section 4, 2nd last para - I think the conclusion is
>>> bogus.  An implementation knows when the keying it's
>>> using can not involve >1 (nominally operating) party.
>>> 
>>> - 5.1, 3rd para: "Explicit consent to send is
>>> obtained..." is misleading. That is not a concept that
>>> an implementation of STUN will embody.
>>> 
>>> - 5.1, What is the "Note" about TCP for? Why is this
>>> needed?
>>> 
>>> 
>>> _______________________________________________
>>> rtcweb mailing list
>>> rtcweb@ietf.org
>>> https://www.ietf.org/mailman/listinfo/rtcweb
>>> 
>>