On Tue, Jul 6, 2010 at 12:49 PM, Andrew Arnott <andrewarn...@gmail.com>wrote:

> If we can agree that it is useless from a security perspective (and I think
> we agree on that by now), 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 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.
>

I'm not sure I understand the concerns. The User Agent flow of course can't
send back a token to an arbitrary URL - regardless of whether there is user
interaction or not.

Callback URLs need to be validated - this can be via pre-registration to
associate a URL with a client_id or by the user approving the specific
callback URL. Any reasons why this isn't secure?


>
> (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 <wmi...@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-boun...@ietf.org [mailto:oauth-boun...@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 <andrewarn...@gmail.com>wrote:
>>
>>>  On Fri, Jul 2, 2010 at 9:12 PM, Eran Hammer-Lahav 
>>> <e...@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 mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to