Please note: I am not claiming that OAuth is insecure in any way. It
is a secure protocol for the purposes of data access authorization,
for which it was designed. I am just expressing serious doubts that it
can be re-targeted for another purpose: authentication.

It is very rarely the case that a protocol designed to provide some
security property can be re-targeted for another purpose.

On Fri, Apr 17, 2009 at 7:54 AM, Breno <breno.demedei...@gmail.com> wrote:
> Example attack:
>
> Example.com accepts authentication from Example-Provider.com
>
> User A wants to login as any other user at Example.com to steal the
> data that those users have saved at Example.com.
>
> User A goes to Example.com and clicks on 'sign in using
> example-provider.com'; He receives a well-formed request but his
> browser has a proxy, so the request is cached instead and his browser
> does not follow the redirect.
>
> User A posts on some blog: You can now login to Example.com using
> Example-Provider.com: Click on this URL. The URL points to
> Example-Provider.com's authentication endpoint.
>
> User B clicks on the link and sees a page at Example-Provider.com
> asking him/her to authorize Example.com. EV SSL certificates match,
> everything looks just fine. User B authorizes. However, the page that
> loads at Example.com (after the redirect) is an error message. bummer.
>
> Later, User A crafts a response from Example-provider.com and visits
> Example.com. He is signed as User B.
>
> The attack is possible because _two_ things hold simultaneously.
>
> 1. The authentication protocol is not completely executed over a
> trusted channel between Example.com and Example-Provider.com: the
> browser channel exposes it to the user.
>
> 2. The authenticator does not issue a signature, so attackers can
> craft responses.
>
> Either (1) or (2) would be sufficient to secure the authentication,
> but both fail in OAuth.
>
> In OpenID authentication is secure because 2 holds. Even in stateless
> authentication there is a signature, and the verification of the
> signature occurs over a channel that satisfies property 1.
>
> I am pretty sure it is possible to prove that a protocol that does not
> satisfy 1 or 2 is always insecure. I left some details of the attack
> above left out, but I doubt there are significant technical hurdles to
> make it work.
>
> On Fri, Apr 17, 2009 at 7:39 AM, Eran Hammer-Lahav <e...@hueniverse.com> 
> wrote:
>>
>> And how is it any different from an OpenID request without association? The 
>> RP has to go over to the IDP and ask it if the signed request is valid (as 
>> opposed to if the token/secret pair is valid and authorized).
>>
>> EHL
>>
>
>
>
> --
> Breno de Medeiros
>



-- 
Breno de Medeiros

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"OAuth" group.
To post to this group, send email to oauth@googlegroups.com
To unsubscribe from this group, send email to oauth+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/oauth?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to