Re: [OAUTH-WG] Call for Adoption: OAuth 2.0 Mix-Up Mitigation

Justin Richer <> Mon, 25 January 2016 23:53 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id A56341A88BC for <>; Mon, 25 Jan 2016 15:53:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id drSzHu2BxqsG for <>; Mon, 25 Jan 2016 15:53:38 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id C8A051A8833 for <>; Mon, 25 Jan 2016 15:53:37 -0800 (PST)
X-AuditID: 12074422-f79c46d000006aa7-28-56a6b580f45b
Received: from ( []) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 40.0A.27303.085B6A65; Mon, 25 Jan 2016 18:53:36 -0500 (EST)
Received: from ( []) by (8.13.8/8.9.2) with ESMTP id u0PNrZPd015224; Mon, 25 Jan 2016 18:53:36 -0500
Received: from [] ( []) (authenticated bits=0) (User authenticated as jricher@ATHENA.MIT.EDU) by (8.13.8/8.12.4) with ESMTP id u0PNrX5S022964 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 25 Jan 2016 18:53:34 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_3E91D8C8-4A06-4581-9925-6B6020F87B8E"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Justin Richer <>
In-Reply-To: <>
Date: Mon, 25 Jan 2016 18:53:33 -0500
Message-Id: <>
References: <> <> <> <> <> <> <> <> <> <> <> <>
To: George Fletcher <>
X-Mailer: Apple Mail (2.2104)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrHKsWRmVeSWpSXmKPExsUixG6nrtuwdVmYwZ4TOhZ3ulawW5x8+4rN YvXdv2wOzB73d69k91iy5CeTx+3bG1kCmKO4bFJSczLLUov07RK4MpYsbmAt2PKBsaLx2jrm BsaeFYxdjJwcEgImEqf+zoWyxSQu3FvP1sXIxSEksJhJ4uLF70wQzkZGiXf737FDOLeZJGav PgXUwsHBLJAg0Xw6GKSbV0BP4tWty6wgtrCAm8TKA5fZQGw2AVWJ6WtamEBsTgF1idP7n4LF WYDi328vYwaxmQU8JfY8u8AIMcdKYsKf01BXXGSRmP5gH1iRiICaRNPKNVCnykrs/v2IaQKj wCyEM2YhOWMW2FhtiWULXzND2AYSTztfYRHXl3jzbg7TAka2VYyyKblVurmJmTnFqcm6xcmJ eXmpRbqmermZJXqpKaWbGMGR4KK0g/HnQaVDjAIcjEo8vBsKloUJsSaWFVfmHmKU5GBSEuVN WAwU4kvKT6nMSCzOiC8qzUktPsQowcGsJMKbsAEox5uSWFmVWpQPk5LmYFES593VMTdMSCA9 sSQ1OzW1ILUIJivDwaEkwRu5BahRsCg1PbUiLTOnBCHNxMEJMpwHaHgISA1vcUFibnFmOkT+ FKMxx751d9Yycbya93AtkxBLXn5eqpQ47waQUgGQ0ozSPLhpoGSW8Paw6StGcaDnhHkDQKp4 gIkQbt4roFVMQKv+ai4GWVWSiJCSamDUb00MXMBSEbmrUyaEY9F9IYHkVVurjz84mf3rd++j Z6m3TWeLixTtsYnwKat8c4/vs+qitP7TuofnuaiELX3h/FGA7eLEw9E2stk256adSuVcdM7B 7Ji44NnrbKm8f9crFak6Ll102DPsv8W0v3Ubkhv03sp43L2Y5Ti9MIFjApdZN8dBzw1KLMUZ iYZazEXFiQCCzeKyQQMAAA==
Archived-At: <>
Cc: "<>" <>
Subject: Re: [OAUTH-WG] Call for Adoption: OAuth 2.0 Mix-Up Mitigation
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: OAUTH WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 25 Jan 2016 23:53:41 -0000


> On Jan 25, 2016, at 1:39 PM, George Fletcher <> wrote:
> So now, in addition to the dynamic client registration spec, the client would need to support OAuth2 Discovery.
> I guess my concern is that it feels like we are adding a lot of little things to try and mitigate these attacks in OAuth2 and it's confusing when they are needed and when they aren't.
> For me it would be simpler to say that OAuth2 with a single pre-configured AS is fine. If a client wants to support multiple Authorization Servers (a la dynamic client registration or some other method) then here are all the things that need to be done. Maybe this would be simpler as a profile of OAuth2 (in the vein of OpenID Connect) that adds the necessary requirements to mitigate these attacks.
> This way an OAuth2 developer knows which spec to follow based on their requirements and all the necessary steps would be in "one" place.
> Thanks,
> George
> On 1/25/16 1:22 PM, John Bradley wrote:
>> The presumption is that registration would need to add a issuer, as an identifier of the AS, and that would be optionally be used in discovery.
>> OAuth as is supports the single AS model.
>> To support multiple AS for a single client something needs to change.    Adding issuer and client_id to the response with optional discovery was seen as the least disruptive at the Germany meeting.
>>  The other way to do it is to return discovery info from the the authorization and token endpoints, however the request probably also need to be modified so that the AS knows what the resource is, otherwise 
>> other things will break.    
>> It is possible now to have one authorization endpoint provide code for per Tennent token endpoints.(No I don’t know of any one doing it).
>> Anything we add to tighten up the trust model will have impacts on what can be done with OAuth.  
>> John B.
>>> On Jan 25, 2016, at 3:10 PM, George Fletcher < <>> wrote:
>>> Comments inline
>>> On 1/25/16 12:32 PM, John Bradley wrote:
>>>> No, client id_are scoped by issuer.  
>>> This makes sense, but I'm not sure it's a current assumption by OAuth2 implementations :)
>>>> There is no need for AS to make the client_id globally unique.
>>>>  The client needs to not allow two AS to provide it with the same issuer client_id pair.
>>>> That would probably be imposable for many clients anyway. 
>>> I would rather say that the results of two client_ids being the same from two different issuers is undefined.
>>>> For Connect clients typically manage configurations using issuer as the primary key.  I doubt may would support even two client_id from the same issuer.
>>> If scoped by issuer this makes sense, though the concept of "issuer" as a comparable entity wasn't really talked about with OAuth2.
>>>> For OAuth what clients do is slightly less clear.  In general they don’t have more than one AS per API do might try and organize things by RS or AS.
>>> I agree that not many clients support dynamic client registration. However, I would say there a number that support multiple AS that are "fixed" within the code (including fixed endpoint URIs). So I would say that the associations would be fixed in code. There wouldn't necessarily be an association outside of the code which maps button A to AS1 and button B to AS2.
>>>> In principal a OAuth client might have two different AS each with a different client ID and that will be OK as long as the client_id in the request is the same as the one in the response.
>>>> So going to a new AS and getting back the same iss and client_id that you registered someplace else would be an error for the client.
>>>> I don’t think that is unreasonable.
>>> I agree that this is reasonable with the assumption that client_id's are scoped by "issuer". It's just likely that most clients in the field do not have this sort of explicit association. The OAuth2 Dynamic Client Registration spec does not define an "issuer" in the response. For the OAuth2 use cases, what is the proposed "issuer" equivalent URI that is being used to scope the client_id? 
>>>> John B.
>>>>> On Jan 25, 2016, at 12:30 PM, George Fletcher < <>> wrote:
>>>>> I'm still catching up... but to this point specifically...
>>>>> Doesn't this require that the same client_id NOT be used simultaneously at two (or more) Authorization Servers? If so, I don't believe that is a viable option. It's a little late in the game to be putting requirements on the AS as to how it generates it's client_id.
>>>>> Thanks,
>>>>> George
>>>>> On 1/25/16 9:11 AM, John Bradley wrote:
>>>>>> Returning the iss and client_id from the authorization endpoint per Mike’s draft allows the client to reject the authorization response and not leak the code.
>>> -- 
>>> Chief Architect                   
>>> Identity Services Engineering     Work: <>
>>> AOL Inc.                          AIM:  gffletch
>>> Mobile: +1-703-462-3494           Twitter: <>
>>> Office: +1-703-265-2544           Photos: <>
> -- 
> Chief Architect                   
> Identity Services Engineering     Work: <>
> AOL Inc.                          AIM:  gffletch
> Mobile: +1-703-462-3494           Twitter: <>
> Office: +1-703-265-2544           Photos: <>
> _______________________________________________
> OAuth mailing list