I can put something together.   

It is mostly a warning about the token substitution attack that any implicit 
flow is vulnerable to if used for authentication of the presenter.
Otherwise known as why audience restriction is a good thing.

John B.

On 2012-06-18, at 8:20 PM, Dick Hardt wrote:

> John
> 
> Do you have suggested text per your suggestion below?
> 
> -- Dick
> 
> On Jun 18, 2012, at 2:04 PM, John Bradley wrote:
> 
>> I blogged about this in the hypothetical several months ago. 
>> http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html
>> 
>> Nov Matake and others built some tests and found quite a number of 
>> deployments vulnerable. 
>> http://www.thread-safe.com/2012/02/more-on-oauth-implicit-flow-application.html
>> 
>> The bottom line is that OAuth has no explicit audience restriction for 
>> tokens,  hence accepting any token outside of the code flow is subject to 
>> attack.
>> 
>> In general it is not a issue for authorization,  it is however a big issue 
>> then there is a presumption that the presenter of a token that grants a 
>> client access to resource x is the "resource owner" of resource x, when it 
>> is possible that the presenter is any client who has ever had a access token 
>> for resource x.
>> 
>> We might want to include the why it is insecure in the security 
>> consideration,  otherwise people reading the below will likely ignore the 
>> advice as it seems on the surface a touch extreme.
>> 
>> There are certainly OAuth flows that allow you to do authentication safely,  
>> just not all of them without additional precautions.
>> 
>> That is why openID Connect has a audience restricted id_token similar to 
>> Facebook's signed request to allow the implicit flows to be safely used for 
>> authentication.
>> 
>> John B.
>> 
>> 
>> 
>> 
>> On 2012-06-18, at 4:19 PM, Shuo Chen (MSR) wrote:
>> 
>>> Hi OAuth group,
>>>  
>>> This is regarding the recent discussion about an implementation issue of 
>>> some cloud services using OAuth for authentication.
>>> Derek Atkins and Dick Hardt suggested the possibility to discuss with the 
>>> group a paragraph to add to the security considerations section.
>>>  
>>> Derek’s suggestion:
>>> ====   ===  ===  ===
>>> >> Perhaps you could boil it down to a paragraph
>>> >> or two for addition to the security considerations section that 
>>> >> basically says
>>> >> "beware of implementing it *this* way because it leads to *that* attack 
>>> >> vector", etc.
>>> ====   ===  ===  ===
>>>  
>>>  
>>> Here is out suggested text:
>>> ====   ===  ===  ===
>>> It has been observed that in multiple occasions that the server-side
>>> authentication logic takes an access token from the client, then
>>> queries the user's profile data from the IdP in order to
>>> "authenticate" the user. This implementation must be forbidden. It
>>> will allow an untrusted app running on a victim’s client device to
>>> work with an attacker’s device to sign into the victim’s account on the 
>>> server side.
>>> ====   ===  ===  ===
>>>  
>>>  
>>> Thank you.
>>> -Shuo
>>> p.s. below is the email thread giving a better context of the discussion.
>>>  
>>>  
>>> > -----Original Message-----
>>> > From: Derek Atkins [mailto:de...@ihtfp.com]
>>> > Sent: Monday, June 18, 2012 11:25 AM
>>> > To: Shuo Chen (MSR)
>>> > Cc: Hannes Tschofenig; rui wang; Stephen Farrell; Yuchen Zhou; Derek
>>> > Atkins; Dick Hardt
>>> > Subject: Re: [OAUTH-WG] web sso study...
>>> > 
>>> > Hi,
>>> > 
>>> > "Shuo Chen (MSR)" <shuoc...@microsoft.com> writes:
>>> > 
>>> >> Hi Hannes, Derek and Stephen,
>>> >> 
>>> >> Thank you for your replies.
>>> >> 
>>> >>> First, let me ask whether it is OK if I share your post with the
>>> >>> OAuth WG
>>> >> 
>>> >> Yes, please feel free to share it.
>>> >> 
>>> >>> Second, could you describe the attack in more details to me?
>>> >> 
>>> >> Let's consider the mobile+cloud scenario for concreteness (although
>>> >> some other scenarios are also applicable). The attack steps are the
>>> >> following: suppose Alice's tablet runs a Windows 8 Metro app written
>>> >> by attacker Bob. This app is able to request and obtain an access
>>> >> token from the IdP (associated with Alice). The app can then send the
>>> >> access token to Bob's own tablet. Note that there is no security
>>> >> problem up to this point. However the real problem is that some cloud
>>> >> services use the access token to query the user's profile data from
>>> >> the IdP in order to "authenticate" the user. In this case, Bob's
>>> >> tablet will be able to sign into the cloud service as Alice. We have
>>> >> confirmed that the cloud services for Soluto Metro App, Givit Metro
>>> >> App and EuroCup2012 Metro App make this mistake. These are apps in
>>> >> the official Windows 8 App Store. We actually sampled only a small 
>>> >> portion of the available apps, but believe this is a vulnerability 
>>> >> pattern.
>>> >> 
>>> >> We don’t think there is anything wrong in the OAuth spec. It is
>>> >> developers who didn’t comprehensively understand the usage of the
>>> >> access token. In the meanwhile, this vulnerability pattern is not 
>>> >> explicitly excluded by the spec.
>>> >> More importantly, it has been seen in the wild.
>>> >> 
>>> >>> [from Derek's email] Perhaps you could boil it down to a paragraph
>>> >>> or two for
>>> >> addition to the security considerations section that basically says
>>> >> "beware of implementing it *this* way because it leads to *that* attack 
>>> >> vector", etc.
>>> >> 
>>> >> This is a great idea. I think that although it is difficult to
>>> >> anticipate in general all kinds of incomprehensive understandings of
>>> >> average developers, it is very worthwhile to take any common existing
>>> >> vulnerability pattern as a precious feedback to improve the
>>> >> specification text. In this case, since we have already seen this
>>> >> vulnerability pattern on multiple services in the wild, certainly we
>>> >> should be explicit about it in the security considerations section.
>>> >> 
>>> >> Our suggested text:
>>> >> 
>>> >> It has been observed that in multiple occasions that the server-side
>>> >> authentication logic takes an access token from the client, then
>>> >> queries the user's profile data from the IdP in order to
>>> >> "authenticate" the user. This implementation must be forbidden. It
>>> >> will allow an untrusted app running on a victim’s client device to
>>> >> work with an attacker’s device to sign into the victim’s account on the 
>>> >> server side.
>>> >> 
>>> >> Any questions or suggestions?
>>> > 
>>> > Could you please send this to the oauth@ietf.org mailing list?
>>> > 
>>> >> Thanks a lot.
>>> >> 
>>> >> -Shuo
>>> > 
>>> > -derek
>>> > 
>>> >> -----Original Message-----
>>> >> From: Hannes Tschofenig [mailto:hannes.tschofe...@gmx.net]
>>> >> Sent: Friday, June 15, 2012 11:36 AM
>>> >> To: rui wang
>>> >> Cc: Hannes Tschofenig; Stephen Farrell; Shuo Chen (MSR); Yuchen Zhou;
>>> >> Derek Atkins
>>> >> Subject: Re: [OAUTH-WG] web sso study...
>>> >> 
>>> >> Hi Rui,
>>> >> 
>>> >> let me independently respond (in addition to the previous responses
>>> >> you had already gotten).
>>> >> 
>>> >> First, let me ask whether it is OK if I share your post with the
>>> >> OAuth WG since it is more detailed than the one you distributed on the 
>>> >> list mid April.
>>> >> 
>>> >> Second, could you describe the attack in more details to me? What I
>>> >> would like to better understand whether this the raised issue is a
>>> >> problem with one of our specifications, with a specific
>>> >> implementation of the IETF OAuth specifications, a problem with other
>>> >> OAuth related work (Facebook, as you know, implements far more than
>>> >> just the IETF OAuth specifications), a violation of the IETF OAuth
>>> >> specification in the way how the Websites use OAuth, whether this is
>>> >> a configuration related aspect, or an aspect we already documented in 
>>> >> the threats document.
>>> >> 
>>> >> The reason why I am so specific is to know where to put text to
>>> >> address this issue or whether this is even an issue beyond the IETF
>>> >> OAuth working group and needs to be tackled somewhere else.
>>> >> 
>>> >> Ciao
>>> >> 
>>> >> Hannes
>>> >>
>>> _______________________________________________
>>> 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
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to