Re: [OAUTH-WG] Security of user agent clients (WAS: End user authresponse code-and-token's scope parameter)
Marius Scurtescu <mscurtescu@google.com> Wed, 07 July 2010 05:23 UTC
Return-Path: <mscurtescu@google.com>
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 6ED4B3A687B for <oauth@core3.amsl.com>; Tue, 6 Jul 2010 22:23:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.977
X-Spam-Level:
X-Spam-Status: No, score=-101.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, USER_IN_WHITELIST=-100]
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 QXGdhDAdZqxu for <oauth@core3.amsl.com>; Tue, 6 Jul 2010 22:23:10 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by core3.amsl.com (Postfix) with ESMTP id E04743A6873 for <oauth@ietf.org>; Tue, 6 Jul 2010 22:22:14 -0700 (PDT)
Received: from wpaz17.hot.corp.google.com (wpaz17.hot.corp.google.com [172.24.198.81]) by smtp-out.google.com with ESMTP id o675MBki030805 for <oauth@ietf.org>; Tue, 6 Jul 2010 22:22:11 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1278480132; bh=cTAmUVwn92Z0Mue4AcUkfounS08=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type:Content-Transfer-Encoding; b=GRQboQhFvYiYHDRQmPoVBQAtUVIqCaE/BcRDKaT1UPtnfNjLPYHc1RSU1AcI8erKv MFqwKL5eN+J4bKo74mZXA==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:from:date:message-id: subject:to:cc:content-type:content-transfer-encoding:x-system-of-record; b=MbQmJ7YtCtAOWb0+FwXwg9Ld8PJ5Y5ww4ocVTC3MjENYqh8AVOwQVKEFirHfx3GQM 9hZ690ywPDiFyStZPQa0w==
Received: from gxk23 (gxk23.prod.google.com [10.202.11.23]) by wpaz17.hot.corp.google.com with ESMTP id o675MA8m031731 for <oauth@ietf.org>; Tue, 6 Jul 2010 22:22:10 -0700
Received: by gxk23 with SMTP id 23so4454157gxk.5 for <oauth@ietf.org>; Tue, 06 Jul 2010 22:22:10 -0700 (PDT)
Received: by 10.100.249.10 with SMTP id w10mr7283501anh.242.1278480129171; Tue, 06 Jul 2010 22:22:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.93.3 with HTTP; Tue, 6 Jul 2010 22:21:49 -0700 (PDT)
In-Reply-To: <AANLkTik5u25V8SFx-18LMO9WhFirm6Yra3HcDYBZ4gBF@mail.gmail.com>
References: <AANLkTik55pORyRWj9rBrV1e4cbPGHM7Zbb1_ySUwB-bH@mail.gmail.com> <AANLkTinhZ8cUlNzAtfJM2MVFkGod8zGb4GXQ8cLZ7qTS@mail.gmail.com> <AANLkTikWHWYKoXS_shws1mheYVtwSSPM4b2J6mMIE_H7@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E72343B3ED4C7C2@P3PW5EX1MB01.EX1.SECURESERVER.NET> <AANLkTin5-GbdgXlvrws5UC60Plfh_tcpsODyHIoWw1mi@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E72343B3ED4C818@P3PW5EX1MB01.EX1.SECURESERVER.NET> <AANLkTiky4opuiqF65cCZPyCdl46ReSt8wT9rDuufSPxB@mail.gmail.com> <AANLkTimlvQWeWzou4Q2flwjuK7i0InqFu099SrPFV60R@mail.gmail.com> <012AB2B223CB3F4BB846962876F47217059B6A0A@SNV-EXVS08.ds.corp.yahoo.com> <AANLkTik5u25V8SFx-18LMO9WhFirm6Yra3HcDYBZ4gBF@mail.gmail.com>
From: Marius Scurtescu <mscurtescu@google.com>
Date: Tue, 06 Jul 2010 22:21:49 -0700
Message-ID: <AANLkTilc3n9q7ZdY6WCGKEVettkcRyNXbJkuODZCGwrk@mail.gmail.com>
To: Andrew Arnott <andrewarnott@gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-System-Of-Record: true
Cc: oauth@ietf.org
Subject: Re: [OAUTH-WG] Security of user agent clients (WAS: End user authresponse code-and-token's scope parameter)
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: Wed, 07 Jul 2010 05:24:10 -0000
On Tue, Jul 6, 2010 at 12:49 PM, Andrew Arnott <andrewarnott@gmail.com> wrote: > If we can agree that it is useless from a security perspective (and I think > we agree on that by now), I don't think this is useless. As Evan mentioned, a JavaScript client could register and provide a redirect_uri (or redirect_uri pattern) and also a display name. In this case the ID is needed. > then an auth server must not ever issue an access > token to a user agent client without interacting with the user (no > "immediate" mode issuing of access tokens) so the user is aware that some > anonymous client on the web page is trying to access their data, since > there's no assurance whatsoever about which client that is, and whether the > user trusts it. If the user has to be involved every time an access token is issued then the whole flow becomes unusable. Access tokens typically expire in an hour or so, you cannot keep prompting the user that often. Marius > If anyone disagrees, please explain how you can justify it, in light of the > fact that leaving it as-is means once one client is authorized, the whole > world is authorized by just pretending to be that one client. It might as > well be a "make my data public" switch at the resource server to authorize a > client such that it gets an access token directly without a client secret. > (Not the muddy the waters, but again, I know client secrets don't add value > when the client is on an uncontrolled machine. Please don't let that > technical hurdle stop you from justifying the status quo in draft 9 of the > spec). > -- > Andrew Arnott > "I [may] not agree with what you have to say, but I'll defend to the death > your right to say it." - S. G. Tallentyre > > > On Mon, Jul 5, 2010 at 10:27 PM, William Mills <wmills@yahoo-inc.com> wrote: >> >> It's not verifiable, but it is as useful in this case as a "user agent" >> string. Not usefule formt he security perspective, but has some utility in >> application tracking. >> >> ________________________________ >> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf Of >> Andrew Arnott >> Sent: Saturday, July 03, 2010 12:16 PM >> To: Eran Hammer-Lahav >> Cc: OAuth WG (oauth@ietf.org) >> Subject: Re: [OAUTH-WG] Security of user agent clients (WAS: End user >> authresponse code-and-token's scope parameter) >> >> (this sounds sarcastic, but I'm no being sarcastic... it's a serious >> question/challenge)... >> Why not just remove the client_id parameter from the user-agent flow? >> It's absolutely meaningless to security. It's only perceivable benefit is >> that the auth server can possible display to the user the client being >> authorized or the list of previously authorized clients. But again, that's >> totally meaningless if not verified. >> -- >> Andrew Arnott >> "I [may] not agree with what you have to say, but I'll defend to the death >> your right to say it." - S. G. Tallentyre >> >> >> On Sat, Jul 3, 2010 at 12:12 PM, Andrew Arnott <andrewarnott@gmail.com> >> wrote: >>> >>> On Fri, Jul 2, 2010 at 9:12 PM, Eran Hammer-Lahav <eran@hueniverse.com> >>> wrote: >>>> >>>> You are putting too much weight on the value of redirection URI >>>> registration. Since the same problem exists between the user-agent script >>>> and the server-side component used in the user-agent profile, anyone can >>>> imitate that flow. In most cases, the redirection URI will simply include a >>>> script that will pass the parameter to the *parent* window which can be >>>> anything. If the server-based page is an active page, it still needs to >>>> communicate with the user-agent, which again, can pretend to be that. >>> >>> Good point. I wasn't imagining that far through it. Not to deny that >>> most redirection URLs may just return a straight script that passes it to >>> the parent window, but that seems pretty irresponsible to the host that's >>> doing it -- because of the enormous security hole it opens up. Some client >>> is trusted enough to authorize (by the user and auth server), receives an >>> access token it wasn't expecting, and then blindly forwards it onto whoever >>> wants it. Yikes. I sure hope these access tokens have very limited scope >>> (like, I'd prefer none myself). >>> I was about to describe how an active server could alleviate that by >>> signing the original request using the state parameter, but I realized I'm >>> solving a problem that the web server flow (or nowadays that the >>> authorization code mode as I guess it's called) already solves. So I guess >>> I just need to bite the bullet and accept that the user agent flow is >>> totally insecure for web clients, and thus very special care must be taken >>> to enable native clients without opening up the web client hole. >>> Sorry to sound so negative about it. Enabling this scenario seems really >>> important to me as well -- I just am against doing it when it can't be >>> secured in some way. Seriously... as is, once you authorize any client, >>> you've authorized them all, including clients not even running on your >>> computer. I guess this answers how I was visiting a site a few days ago and >>> was amazed that it knew who I was (via Facebook) and was displaying my name >>> and photo when I never logged into the site. I was shocked it knew who I >>> was. Enter living in Incognito mode from now on. > > > _______________________________________________ > OAuth mailing list > OAuth@ietf.org > https://www.ietf.org/mailman/listinfo/oauth > >
- [OAUTH-WG] Security of user agent clients (WAS: E… Andrew Arnott
- Re: [OAUTH-WG] Security of user agent clients (WA… Marius Scurtescu
- Re: [OAUTH-WG] Security of user agent clients (WA… Ian McKellar
- Re: [OAUTH-WG] Security of user agent clients (WA… Eran Hammer-Lahav
- Re: [OAUTH-WG] Security of user agent clients (WA… Andrew Arnott
- Re: [OAUTH-WG] Security of user agent clients (WA… Eran Hammer-Lahav
- Re: [OAUTH-WG] Security of user agent clients (WA… Torsten Lodderstedt
- Re: [OAUTH-WG] Security of user agent clients (WA… Ian McKellar
- Re: [OAUTH-WG] Security of user agent clients (WA… Luke Shepard
- Re: [OAUTH-WG] Security of user agent clients (WA… Andrew Arnott
- Re: [OAUTH-WG] Security of user agent clients (WA… Andrew Arnott
- Re: [OAUTH-WG] Security of user agent clients (WA… Eran Hammer-Lahav
- Re: [OAUTH-WG] Security of user agent clients (WA… Eran Hammer-Lahav
- Re: [OAUTH-WG] Security of user agent clients (WA… Andrew Arnott
- Re: [OAUTH-WG] Security of user agent clients (WA… William Mills
- Re: [OAUTH-WG] Security of user agent clients (WA… Andrew Arnott
- Re: [OAUTH-WG] Security of user agent clients (WA… Eran Hammer-Lahav
- Re: [OAUTH-WG] Security of user agent clients (WA… Evan Gilbert
- Re: [OAUTH-WG] Security of user agent clients (WA… Marius Scurtescu
- Re: [OAUTH-WG] Security of user agent clients (WA… Eran Hammer-Lahav
- Re: [OAUTH-WG] Security of user agent clients (WA… Michael D Adams
- Re: [OAUTH-WG] Security of user agent clients (WA… Eran Hammer-Lahav
- Re: [OAUTH-WG] Security of user agent clients (WA… Igor Faynberg
- Re: [OAUTH-WG] Security of user agent clients (WA… Michael D Adams
- Re: [OAUTH-WG] Security of user agent clients (WA… Lukas Rosenstock