[OAUTH-WG] Comments on -18

Torsten Lodderstedt <torsten@lodderstedt.net> Wed, 20 July 2011 21:49 UTC

Return-Path: <torsten@lodderstedt.net>
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 903C221F8906 for <oauth@ietfa.amsl.com>; Wed, 20 Jul 2011 14:49:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.082
X-Spam-Level:
X-Spam-Status: No, score=-2.082 tagged_above=-999 required=5 tests=[AWL=0.167, BAYES_00=-2.599, HELO_EQ_DE=0.35]
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 0h6W6Y9sgZcc for <oauth@ietfa.amsl.com>; Wed, 20 Jul 2011 14:49:23 -0700 (PDT)
Received: from smtprelay04.ispgateway.de (smtprelay04.ispgateway.de [80.67.31.27]) by ietfa.amsl.com (Postfix) with ESMTP id C3B1021F88A0 for <oauth@ietf.org>; Wed, 20 Jul 2011 14:49:22 -0700 (PDT)
Received: from [79.253.8.100] (helo=[192.168.71.35]) by smtprelay04.ispgateway.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from <torsten@lodderstedt.net>) id 1Qjeds-0004uE-BW for oauth@ietf.org; Wed, 20 Jul 2011 23:49:20 +0200
Message-ID: <4E274D61.4020804@lodderstedt.net>
Date: Wed, 20 Jul 2011 23:49:21 +0200
From: Torsten Lodderstedt <torsten@lodderstedt.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11
MIME-Version: 1.0
To: OAuth WG <oauth@ietf.org>
Content-Type: text/plain; charset="ISO-8859-15"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Df-Sender: torsten@lodderstedt-online.de
Subject: [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: Wed, 20 Jul 2011 21:49:23 -0000

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."

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"

"(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?

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.

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.

section 4.4.3

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

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.

section 10

"and furthermore that rotation of the client
       authentication credentials is impractical."

What does this mean?

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

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."

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.

section 10.6

Please replace the first sentence with the following text:

"Such an attack leverages the authorization code ..."