Re: [OAUTH-WG] Issue: 'username' parameter proposal

Torsten Lodderstedt <torsten@lodderstedt.net> Tue, 20 April 2010 18:55 UTC

Return-Path: <torsten@lodderstedt.net>
X-Original-To: oauth@core3.amsl.com
Delivered-To: oauth@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2A8A33A6B94 for <oauth@core3.amsl.com>; Tue, 20 Apr 2010 11:55:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.02
X-Spam-Level:
X-Spam-Status: No, score=-2.02 tagged_above=-999 required=5 tests=[AWL=0.228, BAYES_00=-2.599, HELO_EQ_DE=0.35, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lkqyHbiIo-EL for <oauth@core3.amsl.com>; Tue, 20 Apr 2010 11:55:04 -0700 (PDT)
Received: from smtprelay02.ispgateway.de (smtprelay02.ispgateway.de [80.67.18.14]) by core3.amsl.com (Postfix) with ESMTP id 8B70F3A6B93 for <oauth@ietf.org>; Tue, 20 Apr 2010 11:54:48 -0700 (PDT)
Received: from p4fff22c1.dip.t-dialin.net ([79.255.34.193] helo=[127.0.0.1]) by smtprelay02.ispgateway.de with esmtpa (Exim 4.68) (envelope-from <torsten@lodderstedt.net>) id 1O4Iai-00024M-W6; Tue, 20 Apr 2010 20:54:37 +0200
Message-ID: <4BCDF86C.9080003@lodderstedt.net>
Date: Tue, 20 Apr 2010 20:54:36 +0200
From: Torsten Lodderstedt <torsten@lodderstedt.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: Eran Hammer-Lahav <eran@hueniverse.com>
References: <r2pc8689b661004190833tf46085bayb92b840acf080bb4@mail.gmail.com> <C7F1C6AC.327EE%eran@hueniverse.com> <u2jc8689b661004191006hc3c7fb3eid09feafd57d2fd8a@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E723438E5C7F163@P3PW5EX1MB01.EX1.SECURESERVER.NET> <o2wc8689b661004191716o69966d5di900c07737d3be568@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E723438E5C7F45A@P3PW5EX1MB01.EX1.SECURESERVER.NET> <z2xc334d54e1004200936s57f06dedt8e0e46df3480f8d4@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E723438E5C7F533@P3PW5EX1MB01.EX1.SECURESERVER.NET>
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E723438E5C7F533@P3PW5EX1MB01.EX1.SECURESERVER.NET>
Content-Type: multipart/alternative; boundary="------------000706080300050900020101"
X-Df-Sender: 141509
Cc: "jsmarr@stanfordalumni.org" <jsmarr@stanfordalumni.org>, OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Issue: 'username' parameter proposal
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/oauth>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Apr 2010 18:55:12 -0000

In my experiences, such a review takes much longer than a few minutes.

I think the whole specification should be subject to a comprehensive and 
in-depth security analysis (threat modeling, counter measures and so 
on). So why not adding this parameter and examine its implications in 
this context?

regards,
Torsten.

Am 20.04.2010 19:23, schrieb Eran Hammer-Lahav:
>
> I'm not aware of anyone arguing against this feature. The only issue 
> is a full security review before we add it to the spec. If one of the 
> security experts here can spend a few minutes to review this, we can 
> move forward and add it to the draft.
>
> EHL
>
> *From:* Joseph Smarr [mailto:jsmarr@gmail.com]
> *Sent:* Tuesday, April 20, 2010 9:36 AM
> *To:* Eran Hammer-Lahav
> *Cc:* Evan Gilbert; OAuth WG
> *Subject:* Re: [OAUTH-WG] Issue: 'username' parameter proposal
>
> Just to add some more context from experience, this "two users getting 
> mixed together" problem happens a lot in practice, esp. when you have 
> a mix of server-side and client-side auth. For instance, we saw this 
> in our Facebook Connect integration in Plaxo--normally the user 
> connects and Plaxo stores their session key in our databases, so when 
> the user returns and logs in as plaxo-user-123, we look it up and know 
> that he's also facebook-user-456. But some of Facebook Connect's UI 
> widgets just look at the browser cookies on facebook.com 
> <http://facebook.com>, where facebook-user-789 may be currently logged 
> in (happens all the time with shared computers at home). Thus we often 
> had pages that pulled some Facebook info server-side (as 
> facebook-user-456) and some client-side (as facebook-user-789) and it 
> was very confusing and potentially harmful (e.g. easy to accidentally 
> post a story to the wrong account). The solution would be for Plaxo to 
> be able to pass facebook-user-456 down to the JavaScript library, so 
> it wouldn't just "silently auth" as a different user--presumably, it 
> would just treat it as if no one was logged into facebook, if the 
> passed-in user is not logged in. I think this is what Evan is 
> proposing we enable for OAuth, especially if we want it to work 
> client-side with immediate-mode (which I think we do).
>
> Another related example of this problem we saw was with our 
> photo-uploader plug-in inside Picasa Desktop for sharing photos on 
> Plaxo. During the upload flow, it embeds a web browser, which lets you 
> log in as plaxo-user-123, but when it's done uploading, it opens a 
> default web browser, where you might be logged in as plaxo-user-456, 
> leading again to a confusing mix-up of identities. We solved this by 
> appending the session-info of the user from the embedded web browser 
> on the URL of the main browser that gets opened, so it can clobber the 
> session as needed and maintain continuity of session.
>
> Hope these experiences provide some useful and concrete context for 
> evaluating whether/how to support a username parameter in OAuth.
>
> Thanks, js
>
> On Tue, Apr 20, 2010 at 8:08 AM, Eran Hammer-Lahav 
> <eran@hueniverse.com <mailto:eran@hueniverse.com>> wrote:
>
> This attack is why the flow requires the client to present the 
> callback it used again when getting the token.
>
> EHL
>
> *From:* Evan Gilbert [mailto:uidude@google.com 
> <mailto:uidude@google.com>]
> *Sent:* Monday, April 19, 2010 5:17 PM
>
>
> *To:* Eran Hammer-Lahav
> *Cc:* OAuth WG
> *Subject:* Re: [OAUTH-WG] Issue: 'username' parameter proposal
>
> On Mon, Apr 19, 2010 at 10:58 AM, Eran Hammer-Lahav 
> <eran@hueniverse.com <mailto:eran@hueniverse.com>> wrote:
>
> Thanks. That makes sense.
>
> My concern is that the client will ask for a specific username but an 
> attacker will change that request before it hits the server. The 
> server then asks the (wrong) user to authenticate and returns a token. 
> The client has no way of knowing it got an access token for the wrong 
> user. Does requiring that the server returns the token with the 
> username solves this? Is this a real issue?
>
> This particular attack wasn't of concern to me, for a few of reasons:
>
> - The request is HTTPS, hard to modify the request before it hits the 
> server
>
> - There are probably other, more dangerous attacks if you can modify 
> request parameters (for example, you can modify the client_id and get 
> the user to authorize the wrong app)
>
>
> I'm willing to be convinced otherwise
>
>     I have no objections to this proposal but wanted to see some
>     discussion and support from others before adding it to the spec.
>
>     EHL
>
>     *From:* Evan Gilbert [mailto:uidude@google.com
>     <mailto:uidude@google.com>]
>     *Sent:* Monday, April 19, 2010 10:06 AM
>     *To:* Eran Hammer-Lahav
>     *Cc:* OAuth WG
>
>
>     *Subject:* Re: [OAUTH-WG] Issue: 'username' parameter proposal
>
>     User 1 is logged into Client site
>
>     User 2 is logged into IDP site
>
>     This can happen quite frequently, as client sites often have
>     long-lived cookies and may only be visited by one user on a shared
>     computer.
>
>     Right now client site has no way to ask for a token for User 1,
>     and end result will be that User 1 starts seeing User 2's data.
>
>     On Mon, Apr 19, 2010 at 8:37 AM, Eran Hammer-Lahav
>     <eran@hueniverse.com <mailto:eran@hueniverse.com>> wrote:
>
>     How can they both be logged in? I have never seen a case where two
>     users can be both logged into to the same service at the same time...
>
>     EHL
>
>
>
>
>     On 4/19/10 8:33 AM, "Evan Gilbert" <uidude@google.com
>     <http://uidude@google.com>> wrote:
>
>         More details on this enhancement.
>
>         Goal: Make sure you get an access token for the right user in
>         immediate mode.
>
>         Use case where we have problems if we don't have username
>         parameter:
>
>            1. Bob is logged into a web site as bob@IDP.com
>               <http://bob@IDP.com>.
>            2. Mary (his wife) is logged into IDP on the same computer
>               as mary@IDP.com <http://mary@IDP.com>
>            3. A request is made to get an access token via the
>               User-Agent flow in immediate mode (or with any redirect
>               without prompting the user)
>            4. -ob now has an access token for Mary and (posts
>               activities, schedules events, gets contacts) as Mary
>            5. Hilarity ensues
>
>
>         Secondary goal: Provide a hint for non-immediate mode
>
>         On Thu, Apr 15, 2010 at 11:55 AM, Eran Hammer-Lahav
>         <eran@hueniverse.com <http://eran@hueniverse.com>> wrote:
>
>         Evan Gilbert proposed a 'username' request parameter to allow
>         the client to
>         limit the end user to authenticate using the provided
>         authorization server
>         identifier. The proposal has not been discussed or supported
>         by others, and
>         has not received a security review.
>
>         Proposal: Obtain further discussion and support from others,
>         as well as a
>         security review of the proposal. Otherwise, do nothing.
>
>         EHL
>
>         _______________________________________________
>         OAuth mailing list
>         OAuth@ietf.org <http://OAuth@ietf.org>
>         https://www.ietf.org/mailman/listinfo/oauth
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org <mailto:OAuth@ietf.org>
> https://www.ietf.org/mailman/listinfo/oauth
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>