Re: [OAUTH-WG] Recap of two well known OAuth related attacks

Antonio Sanso <asanso@adobe.com> Fri, 17 May 2013 19:06 UTC

Return-Path: <asanso@adobe.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3E6521F9727 for <oauth@ietfa.amsl.com>; Fri, 17 May 2013 12:06:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.144
X-Spam-Level:
X-Spam-Status: No, score=-104.144 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FRT_ADOBE2=2.455, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bbuXImAhHfAs for <oauth@ietfa.amsl.com>; Fri, 17 May 2013 12:06:37 -0700 (PDT)
Received: from exprod6og112.obsmtp.com (exprod6og112.obsmtp.com [64.18.1.29]) by ietfa.amsl.com (Postfix) with ESMTP id 2316E21F92CB for <oauth@ietf.org>; Fri, 17 May 2013 12:06:34 -0700 (PDT)
Received: from outbound-smtp-1.corp.adobe.com ([192.150.11.134]) by exprod6ob112.postini.com ([64.18.5.12]) with SMTP ID DSNKUZZ/utRCcp0PxekkCe3KYXWOsZtiwcSU@postini.com; Fri, 17 May 2013 12:06:37 PDT
Received: from inner-relay-4.eur.adobe.com (inner-relay-4.adobe.com [193.104.215.14]) by outbound-smtp-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id r4HJ3HKs015773; Fri, 17 May 2013 12:03:18 -0700 (PDT)
Received: from nacas02.corp.adobe.com (nacas02.corp.adobe.com [10.8.189.100]) by inner-relay-4.eur.adobe.com (8.12.10/8.12.9) with ESMTP id r4HJ6CGa019113; Fri, 17 May 2013 12:06:30 -0700 (PDT)
Received: from eurcas01.eur.adobe.com (10.128.4.27) by nacas02.corp.adobe.com (10.8.189.100) with Microsoft SMTP Server (TLS) id 8.3.298.1; Fri, 17 May 2013 12:06:29 -0700
Received: from eurmbx01.eur.adobe.com ([10.128.4.32]) by eurcas01.eur.adobe.com ([10.128.4.27]) with mapi; Fri, 17 May 2013 20:06:27 +0100
From: Antonio Sanso <asanso@adobe.com>
To: John Bradley <ve7jtb@ve7jtb.com>
Date: Fri, 17 May 2013 20:06:16 +0100
Thread-Topic: [OAUTH-WG] Recap of two well known OAuth related attacks
Thread-Index: Ac5TMaGveFXDmV1tRVavf/Y1tbOrGg==
Message-ID: <4B7A9E06-D5F6-4F81-AAD4-1C8F33B5E564@adobe.com>
References: <DC65FEE5-9CA0-45CF-B44B-912F0474C4DB@adobe.com> <2AF08A9B-0E0A-42E1-9575-E582065D66D8@mitre.org> <59E470B10C4630419ED717AC79FCF9A96599A278@BY2PRD0411MB441.namprd04.prod.outlook.com> <B21D32C7-A3D5-4CD9-8FF5-DC6566D7E246@ve7jtb.com>
In-Reply-To: <B21D32C7-A3D5-4CD9-8FF5-DC6566D7E246@ve7jtb.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Recap of two well known OAuth related attacks
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Fri, 17 May 2013 19:06:42 -0000

Hi *,


I was wondering what you thing about the second "issue" described (the "Lassie come home").

I have encountered lately in one enterprise installation and I think is fairly easy to make it wrong as well.

Regards

Antonio

On May 17, 2013, at 5:46 PM, John Bradley wrote:

> The implicit flow is secure in Connect, but we added a number of things to make it so.
> 
> The reason to have it in OAuth 2 is for clients in the browser there are use cases for that and it allows the browser to receive and extract the token without passing it to a web server backend.
> Used as intended it is fine as the browser based JS App is receiving the the token directly over TLS so there is no substitution attack possible.   
> 
> The problem is when the client is not in the browser the browser itself is an attack surface, that an attacker can use to confuse a client.
> 
> If people want to do SSO based on OAuth they need to follow the example of Google, PayPal and others who are implementing Connect rather than rolling there own protocol on top of OAuth 2.
> 
> John B.
> 
> 
> On 2013-05-17, at 5:22 PM, Lewis Adam-CAL022 <Adam.Lewis@motorolasolutions.com> wrote:
> 
>> One wonders that - if in hindsight - the implicit flow was a mistake to include in the framework.  Yes it saves a single round trip for use cases where the tokens are exposed to the UA, but it's not clear that optimization is worth the security headaches that are going to be caused down the road (or are already going on for that matter) by people using it in scenarios where it should not be (because as stated, it is easier).  Probably would have been better to let the subset of cases that didn't need the extra step of the code just go ahead and implement it anyway, and ensure that the majority of native apps use cases would have been implemented with better security. 
>> 
>> adam
>> 
>> -----Original Message-----
>> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf Of Richer, Justin P.
>> Sent: Wednesday, May 15, 2013 3:22 PM
>> To: Antonio Sanso
>> Cc: "WG <oauth@ietf.org>"@il06exr01.mot.com
>> Subject: Re: [OAUTH-WG] Recap of two well known OAuth related attacks
>> 
>> The biggest problem with this attack is the passing of the access token to a backend server (and its subsequent passing of that token to someone else) and the assumption that the presentation of the access token means that the user is authenticated and present. It simply doesn't mean that, and this is a bad assumption that unfortunately many people make thanks to providers like Facebook using OAuth (or, mostly-OAuth since they're not actually RFC compliant) in the authentication protocol.
>> 
>> It's also a problem that so many people are using the implicit flow "because it's easy", missing the point of why it's there in the first place. The implicit flow is really only intended for cases where you can't hide secrets from the user agent, cases like an in-browser application. The flow diagrams that you have don't fit the implicit flow very well at all, since the access token is getting passed back to some other service. 
>> 
>> -- Justin
>> 
>> On May 13, 2013, at 11:14 AM, Antonio Sanso <asanso@adobe.com>
>> wrote:
>> 
>>> Hi *,
>>> 
>>> I wrote a blog post showing two well known OAuth related attacks. I paste here the link for your consideration:
>>> 
>>> http://intothesymmetry.blogspot.ch/2013/05/oauth-2-attacks-introducing-devil-wears.html
>>> 
>>> Any comment is more than appreciated.
>>> 
>>> Regards
>>> 
>>> Antonio
>>> _______________________________________________
>>> 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
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>