[tram] Oauth vs Origin [Was: Path Forward for STUN ORIGIN]

Justin Uberti <justin@uberti.name> Wed, 26 August 2015 23:09 UTC

Return-Path: <juberti@gmail.com>
X-Original-To: tram@ietfa.amsl.com
Delivered-To: tram@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E5B291B31FD for <tram@ietfa.amsl.com>; Wed, 26 Aug 2015 16:09:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
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 v1vtYpy7_TkB for <tram@ietfa.amsl.com>; Wed, 26 Aug 2015 16:08:59 -0700 (PDT)
Received: from mail-ig0-f175.google.com (mail-ig0-f175.google.com [209.85.213.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E51101B31FB for <tram@ietf.org>; Wed, 26 Aug 2015 16:08:58 -0700 (PDT)
Received: by igfj19 with SMTP id j19so24109749igf.1 for <tram@ietf.org>; Wed, 26 Aug 2015 16:08:58 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-type; bh=Gr/UYlK8dyklEg1MdRT7JKqxIjURDVwq9C1dzNQOPoc=; b=ffUitdnVJN1zSfeNFqhxvZlQCSig7uXx3zMzfT6QKexM0ZV4qxyE1mGXLZXkM5JnY4 0TBGmupBV2sWp30pbmU34UlnCPL6y7Bca9w9biM2j1yw7vIHsvNeUsYHJAMNw5CuuouR hbwZmDOC9N83CWJQz54W9mdjsrQ0JwkRrmRiqVtkX6HLtbnO3ccqD1zWpVloNk5c6sLG kpM7mMRMFj14/qAYfRpYectlQ2mtgYngwuqDok6FZqZYzYrxIXInoUo5ii7tAztddQZ7 ineGL2EIT35Hwk5dOj1Yhnit18GCFuPepfiJLmbt75Q8Lf7+B8a619KuYyGKE+pNd6Ox 0r1A==
X-Received: by 10.50.254.165 with SMTP id aj5mr13958751igd.25.1440630538243; Wed, 26 Aug 2015 16:08:58 -0700 (PDT)
MIME-Version: 1.0
References: <CAKhHsXGwB1vovKQYaGnoZ1MuzREbDA8cTp4sCePNc6=saKN5BA@mail.gmail.com> <CALe60zCuFR-refCESNBTYDSypB6QviwKC7=Swh2OnHuXRx5=TA@mail.gmail.com> <CAKhHsXFyK0VvyiVB+8XWuBhh2RpnLOa-DqnbjWiiuxxU8nF4TQ@mail.gmail.com>
In-Reply-To: <CAKhHsXFyK0VvyiVB+8XWuBhh2RpnLOa-DqnbjWiiuxxU8nF4TQ@mail.gmail.com>
From: Justin Uberti <justin@uberti.name>
Date: Wed, 26 Aug 2015 23:08:48 +0000
Message-ID: <CALe60zBsgTDUo0NRBDUVvjFTBw1Cf93i4fvN=NsYa4qJh0_6vA@mail.gmail.com>
To: Alan Johnston <alan.b.johnston@gmail.com>
Content-Type: multipart/alternative; boundary="001a1135f6a07c15dd051e3eefe1"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tram/4xXd3TiUib24Fx4zdEP7VYUfNRo>
X-Mailman-Approved-At: Tue, 01 Sep 2015 03:00:41 -0700
Cc: "tram@ietf.org" <tram@ietf.org>, "draft-ietf-tram-stun-origin@tools.ietf.org" <draft-ietf-tram-stun-origin@tools.ietf.org>
Subject: [tram] Oauth vs Origin [Was: Path Forward for STUN ORIGIN]
X-BeenThere: tram@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussing the creation of a Turn Revised And Modernized \(TRAM\) WG, which goal is to consolidate the various initiatives to update TURN and STUN." <tram.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tram>, <mailto:tram-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tram/>
List-Post: <mailto:tram@ietf.org>
List-Help: <mailto:tram-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tram>, <mailto:tram-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Aug 2015 23:09:02 -0000

splitting thread

On Wed, Aug 26, 2015 at 2:07 PM Alan Johnston <alan.b.johnston@gmail.com>
wrote:

> Justin,
>
> It is an important question for the WG on whether ORIGIN is a useful
> solution to the use cases.  Hopefully we'll get more feedback on this.
>
> Your comments seem mainly directed towards a solution for use case #2
> below (REALM selection for TURN authentication), right?  I'm not sure if
> use case #3 applies or not.  I don't think OAuth helps with #1 or #4 or #5.
>

I think OAuth can solve #1, #2, and #3. The app's interaction with the AS
can give the AS context, which can be encoded into the returned token. This
then allows the TURN server to have this context when receiving the token,
such that it can make informed decisions for #1/#2/#3.

>
> I know we have discussed it before, but I also don't think that everyone
> believes that OAuth means that ORIGIN is no longer needed. There have been
> suggestions that a multi-tenanted TURN server using OAuth might still use
> ORIGIN.
>

Since the origin can be determined by the AS, it's not clear why this would
also be needed at the TURN server. One might ask, why it is better to use
origin to the AS versus the TURN server? The upsides of origin over HTTP to
AS are that 1) it is encrypted and 2) it's easier to deal with the privacy
implications of origin in a single protocol rather than 2 protocols.

>
> And using domain-specific USERNAME attributes sounds a bit like the
> problem that Martin mentioned of simply working around the approach.
>
>
Yes - that's what I was trying to say as well.


> - Alan -
>
> On Tue, Aug 25, 2015 at 3:50 PM, Justin Uberti <justin@uberti.name> wrote:
>
>> Overall, I think most/all of the goals that ORIGIN is trying to
>> accomplish would be better handled by STUN OAuth (
>> https://datatracker.ietf.org/doc/draft-ietf-tram-turn-third-party-authz/)
>>
>> Generally, it's not clear that ORIGIN is a great solution for any of the
>> use cases listed.
>> 1) is easily accomplished via oauth, without any of the restrictions
>> present here
>> 2) can be dealt with using other means (e.g. oauth, or supplying domain
>> info in USERNAME)
>> 3) is fairly weak control, and can be done better through oauth, or
>> domained USERNAMEs
>>
>> Of course, as noted by others, use of domained USERNAMEs creates a
>> quasi-ORIGIN value within the USERNAME attribute, which makes OAuth more
>> attractive.
>>
>> On Tue, Aug 25, 2015 at 12:57 PM Alan Johnston <alan.b.johnston@gmail.com>
>> wrote:
>>
>>> All,
>>>
>>> Based on feedback during IETF-93 in Prague, the authors of
>>> draft-ietf-stun-origin are looking for feedback on a possible path forward
>>> to solve the privacy/meta data issues and clear the DISCUSSes (see
>>> https://datatracker.ietf.org/doc/draft-ietf-tram-stun-origin/ballot/).
>>> There are two areas of feedback: Use Cases and Proposed Solution.
>>>
>>> Use Cases
>>> ========
>>>
>>> First, we want to be sure that we are considering all the use cases for
>>> STUN ORIGIN.  In the draft, three are described:
>>>
>>> 1.  Logging of usage of STUN/TURN server. An operator of a STUN or TURN
>>> server would learn the Origin of the web, SIP, and XMPP users.
>>>
>>> 2.  REALM selection for multi-tenanted TURN server. This avoids having
>>> to run multiple instances on different ports or IP addresses when more than
>>> one REALM is in use.
>>>
>>> 3.  Service determination after authentication.  Bandwidth or QoS policy
>>> can be applied, after authentication, based on the Origin.
>>>
>>> Also, the following use cases have also been discussed but are not in
>>> the draft
>>>
>>> 4.  Authorization at border TURN server after authentication.  An
>>> enterprise border TURN server can apply policy and allow usage for certain
>>> Origins (whitelist) or block usage of others (blacklist).
>>>
>>> 5. draft-jennings-behave-rtcweb-firewall-01 discusses how a firewall
>>> with STUN server could use ORIGIN in authorization decisions.
>>>
>>> Are there any other use cases we should consider?
>>>
>>> Possible Solution
>>> =============
>>>
>>> The solution that was discussed in Prague that seems to be the best
>>> tradeoff between privacy and functionality is to only include ORIGIN
>>> information in a STUN or TURN request if the domain of the Origin matches
>>> the domain of the STUN or TURN server in the STUN or TURN URI.  Since web
>>> and STUN and TURN run on different ports, and often will resolve to
>>> different IP addresses, a full host comparison is not possible.  This
>>> proposal is not perfect: it does not provide perfect privacy for subdomains
>>> (e.g. sub1.example.com and sub2.example.com will match with this rule,
>>> even if they are separate entities.  Of course, subdomain users could
>>> always register a new domain and point DNS records to their sub hoster.)
>>>
>>> In comparing this solution against the use cases above:
>>>
>>> 1. Allows logging of your own users on your own TURN server (or one that
>>> you setup DNS SRV records to point towards).  Other users of your STUN or
>>> TURN server will not be identified by an Origin, but you will at least know
>>> if others are using your server.
>>>
>>> 2. Works for REALM selection as long as you use your own TURN server (or
>>> one that you setup DNS SRV records to point towards).
>>>
>>> 3. Again, works for service determination as long as you use your own
>>> TURN server (or one that you setup DNS SRV records to point towards).
>>> Having service-specific TURN credentials is another solution that doesn't
>>> rely on ORIGIN.
>>>
>>> 4. & 5. Does not seem provide a good solution for these use cases.
>>>
>>> Does this analysis make sense?
>>>
>>> Feedback most welcome so we can move forward with this draft.
>>>
>>> - Alan -
>>>
>>>
>>>
>