Re: [OAUTH-WG] Comments on -18

Eran Hammer-Lahav <eran@hueniverse.com> Mon, 25 July 2011 07:55 UTC

Return-Path: <eran@hueniverse.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 83D3C21F8B14 for <oauth@ietfa.amsl.com>; Mon, 25 Jul 2011 00:55:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.551
X-Spam-Level:
X-Spam-Status: No, score=-2.551 tagged_above=-999 required=5 tests=[AWL=0.048, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hDlactvux3SN for <oauth@ietfa.amsl.com>; Mon, 25 Jul 2011 00:55:32 -0700 (PDT)
Received: from p3plex1out02.prod.phx3.secureserver.net (p3plex1out02.prod.phx3.secureserver.net [72.167.180.18]) by ietfa.amsl.com (Postfix) with SMTP id DDF9F21F8B12 for <oauth@ietf.org>; Mon, 25 Jul 2011 00:55:32 -0700 (PDT)
Received: (qmail 30686 invoked from network); 25 Jul 2011 07:55:31 -0000
Received: from unknown (HELO smtp.ex1.secureserver.net) (72.167.180.21) by p3plex1out02.prod.phx3.secureserver.net with SMTP; 25 Jul 2011 07:55:31 -0000
Received: from P3PW5EX1MB01.EX1.SECURESERVER.NET ([10.6.135.19]) by P3PW5EX1HT003.EX1.SECURESERVER.NET ([72.167.180.21]) with mapi; Mon, 25 Jul 2011 00:55:31 -0700
From: Eran Hammer-Lahav <eran@hueniverse.com>
To: Torsten Lodderstedt <torsten@lodderstedt.net>, OAuth WG <oauth@ietf.org>
Date: Mon, 25 Jul 2011 00:54:54 -0700
Thread-Topic: [OAUTH-WG] Comments on -18
Thread-Index: AcxHJuadpHaNoNAeRiKW+SFrlwWyvQDdeS5w
Message-ID: <90C41DD21FB7C64BB94121FBBC2E72345021F378BE@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <4E274D61.4020804@lodderstedt.net>
In-Reply-To: <4E274D61.4020804@lodderstedt.net>
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
Subject: Re: [OAUTH-WG] Comments on -18
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: Mon, 25 Jul 2011 07:55:33 -0000

> -----Original Message-----
> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf
> Of Torsten Lodderstedt
> Sent: Wednesday, July 20, 2011 2:49 PM
> To: OAuth WG
> Subject: [OAUTH-WG] Comments on -18
> 
> section 1.5
> 
> "(A)  The client requests an access token by authenticating with the
>          authorization server, and presenting an authorization grant."
> 
> This statement does not reflect that client authentication is not always
> required.
> 
> Proposal:
> 
> "The client requests an access token by presenting an authorization grant.
> The authorization server may require the client to authenticate as a pre-
> requisite."

The general design for fresh tokens does include authentication. Yes, the normative text allows you not to, but this is the general case and I like the simpler text for the introduction.

> section 4.1
> 
> "(D)  The client requests an access token from the authorization
>          server's token endpoint by including the authorization code
>          received in the previous step.  When making the request, the
>          client authenticates with the authorization server."
> 
> Same as above. Proposal:
> 
> ".... When making the request, the
>          client may be required to authenticate with the authorization server"

Same. Section 4.1.3 makes this clear.
 
> "(E)  The authorization server authenticates the client, validates the
>          authorization code, and ensures the redirection URI received
>          matches the URI used to redirect the client in step (C)."
> 
> Same as above.
> 
> Additionally, is the URI check also required if the client did not passed a
> redirect uri but relied on its pre-registered redirect_uri?

This is the overview. Section 4.1.3 provides the specific requirements.

> section 4.1.1
> 
> "state" parameter: Would it make sense to elaborate on the usage of this
> parameter and its importance for preventing CSRF attacks (incl. the
> nessessary entropy)? Alternatively, a reference to the security consideration
> section could be added.

I think we got this covered. I rather not start pointing to the security section from the sections above.

> section 4.1.3
> 
> "If the client type is private or was issued client credentials ..."
> Isn't the later the most important property of a "private" client? If so, "or was
> issued client credentials" is redundant.

All private clients must authenticate, but also public clients with issued credentials.

> section 4.4.3
> 
> "A refresh token SHOULD NOT be included." Why not "MUST NOT"?

This was debated a while back and the consensus was that there is no reason to restrict this to a MUST NOT. Someone might even had plans to issue refresh tokens using this flow.

> section 5.2
> 
> "The authorization server MAY return an HTTP 401
>                 (Unauthorized) status code to indicate which HTTP
>                 authentication schemes are supported."
> 
> Given the usage of HTTP authentication schemes is the way to authenticated
> client recommended by the spec, status code 401 should be the default
> status code for this kind of error. Usage of status code 400 should be the
> exception.
>
> "unauthorized_client"
> 
> So above - status code 403 seems to be a more appropriate default.

I think this is fine unchanged.

> section 10
> 
> "and furthermore that rotation of the client
>        authentication credentials is impractical."
> 
> What does this mean?

I'll take it out. I don't remember who suggested it (Brian?).

> Please update reference [I-D.lodderstedt-oauth-security] to [I-D.ietf-oauth-
> v2-threatmodel].

Done.

> section 10.2
> 
> last sentence: "... ensure the repeated request comes from an authentic
> client and not an
>     impersonator."
> 
> The authorization server must ensure that the request comes from the same
> client not just any authentic client. So I would propose to adjust the text as
> follows:
> 
> "... ensure the repeated request comes from the original client and not an
>     impersonator."

Ok.

> section 10.3
> 
> "Access token (as well as any type-specific attributes) MUST ..." does "type-
> specific" refer to access token type specific? If so, please add this
> information.

Ok.

> section 10.6
> 
> Please replace the first sentence with the following text:
> 
> "Such an attack leverages the authorization code ..."

That reads funny. How about 'An attacker can leverage...'

EHL