Re: [OAUTH-WG] Last Call: <draft-ietf-oauth-jwsreq-11.txt> (The OAuth 2.0 Authorization Framework: JWT Secured Authorization Request (JAR)) to Proposed Standard

Denis <denis.ietf@free.fr> Fri, 03 February 2017 11:11 UTC

Return-Path: <denis.ietf@free.fr>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 67A91129588; Fri, 3 Feb 2017 03:11:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.617
X-Spam-Level:
X-Spam-Status: No, score=-2.617 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WhbqpzHiJtss; Fri, 3 Feb 2017 03:10:57 -0800 (PST)
Received: from smtp6-g21.free.fr (smtp6-g21.free.fr [212.27.42.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E1B8C129404; Fri, 3 Feb 2017 03:10:56 -0800 (PST)
Received: from [192.168.0.13] (unknown [88.182.125.39]) by smtp6-g21.free.fr (Postfix) with ESMTP id A97A57803D3; Fri, 3 Feb 2017 12:10:54 +0100 (CET)
Subject: Re: [OAUTH-WG] Last Call: <draft-ietf-oauth-jwsreq-11.txt> (The OAuth 2.0 Authorization Framework: JWT Secured Authorization Request (JAR)) to Proposed Standard
To: ietf@ietf.org, IETF-Announce <ietf-announce@ietf.org>
References: <148581788158.29828.4591033587037530374.idtracker@ietfa.amsl.com>
From: Denis <denis.ietf@free.fr>
Message-ID: <3a6b8cee-ff29-323e-9042-5df6e71a8d81@free.fr>
Date: Fri, 03 Feb 2017 12:10:57 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0
MIME-Version: 1.0
In-Reply-To: <148581788158.29828.4591033587037530374.idtracker@ietfa.amsl.com>
Content-Type: multipart/alternative; boundary="------------30BE242EF2C22EC06C360265"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/h0t3btS-1U9gi2fqCYDERNrraQE>
Cc: oauth-chairs@ietf.org, oauth@ietf.org, draft-ietf-oauth-jwsreq@ietf.org
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Feb 2017 11:11:00 -0000

*Comments on I-D Action: draft-ietf-oauth-jwsreq-11.txt*

Two editorial comments first :

1. Guidance is a mass noun, not a count noun, plural doesn't make sense. 
Please change "guidances" into "guidance" twice in Section 11.

2. In Section 12 : Please remove my name (Denis Pinkas) from this section.

Other comments:

3. Section 1.1 (from boiler plate) states: The key words "MUST", "MUST 
NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are 
to be interpreted as described in RFC 2119 [RFC2119].

There is not a single other occurrence of the word SHALL within this 
document. In such case, I wonder how this document can be normative.
There are however many (useful) "non-normative examples. A non-normative 
example does not replace requirements.

Section 4 states:

*A Request Object (Section 2.1) is used to provide authorization*

*request parameters for an OAuth 2.0 authorization request.It*

*contains OAuth 2.0 [RFC6749] authorization request parameters*

*including extension parameters**.*

**

RFC 6749 contains 75 pages, but does not contain a single occurrence of 
the wording "authorization request parameter" nor of "extension parameter".
There should be either references to one or more specific sections of 
this document or, even better, a list of the mandatory/recommended/possible
authorization request parameters as well as a list of 
mandatory/recommended/possible extension parameters should be included 
in this document.


A clear distinction should be made between the parameters used to 
authenticate the request and the other ones.

4. The introduction states on page 4:

      (a) (integrity protection) The request can be signed so that the 
integrity of the request can be checked;

This should be changed into:

      (a) (integrity protection) The request can be authenticated either 
using a digital signature or using encryption under a secret key
           so that the integrity of the request can be checked;

5. The introduction states on page 4:

(d) (collection minimization) The request can be *signed* by a third 
party attesting that the authorization request is compliant tocertain 
policy.

The request is not /signed/ by a third party.


However, later on, there is the following explanation:

In addition, it allows requests to be prepared by a third party so that 
a client application cannot request
    more permissions than previously agreed.

If it is the intent, the sentence should be rephrased as:

(d) (collection minimization) The request can be *verified* by a third 
party attesting that the authorization request is compliant tocertain 
policy.

6. Section 10.1. the text states:

*When sending the authorization request object through "request"*

*parameter, it MUST either be signed using JWS [RFC7515] or encrypted*

*using JWE [RFC7516] with then considered appropriate algorithm.*

The wording"with then considered appropriate algorithm"is too vague. 
This should be changed into:

*When sending the authorization request object through "request"*

*parameter, it MUST either be signed using JWS [RFC7515] or encrypted*

*using JWE [RFC7516] using a symmetric key algorithm.*

7. Section 10.2 states:

This means that the request object is going to be prepared fresh each

time an authorization request is madeand caching cannot be used.

What are the implications ? Is it required/recommended to use a nonce ? 
The text should be made clearer.

8. Section 10.3 states:

10.3.Request Source Authentication

The source of the Authorization Request MUST always be verified.

There are several ways to do it in this specification.

(a)Verifying the JWS Signature of the Request Object.

It seems that the case of using a JWE encrypted using a secret key 
algorithm has been forgotten here. Please add it.

9. Section 10.3 states at its very end:

An extension specification

should be created as a preventive measure to address potential

vulnerabilities that have not yet been identified.

Writing a document for vulnerabilities that have not yet been identified 
is speculative. It would rather be better
either to remove this sentence or to explain what is meant by it.

10. Section 11.1 states:

*11.1.Collection limitation*

**

*When the Client is being granted access to a protected resource*

*containing personal data, the Client SHOULD limit the collection of*

*personal data to that which is within the bounds of applicable law*

*and strictly necessary for the specified purpose(s).***

The /presentation/ of personal data should be limited whether or not the 
protected resource contains personal data.

It is proposed to change this text into:

*When the Client requests an access to a protected resource, the Client*

*SHOULD limit the presentation of personal data to that which is within *

*the bounds of applicable law and strictly necessary for the specified *

*purpose(s).***

11. Section 11.2.1 states:

11.2.1.Request Disclosure

This specification allows extension parameters.

It would be useful to name either all of them or some of them. RFC 6749 
is not crystal clear about this.


Denis Pinkas (DP Security Consulting SAS)

==============================================================




> The IESG has received a request from the Web Authorization Protocol WG
> (oauth) to consider the following document:
> - 'The OAuth 2.0 Authorization Framework: JWT Secured Authorization
>     Request (JAR)'
>    <draft-ietf-oauth-jwsreq-11.txt> as Proposed Standard
>
> The IESG plans to make a decision in the next few weeks, and solicits
> final comments on this action. Please send substantive comments to the
> ietf@ietf.org mailing lists by 2017-02-13. Exceptionally, comments may be
> sent to iesg@ietf.org instead. In either case, please retain the
> beginning of the Subject line to allow automated sorting.
>
> Abstract
>
>
>     The authorization request in OAuth 2.0 described in RFC 6749 utilizes
>     query parameter serialization, which means that Authorization Request
>     parameters are encoded in the URI of the request and sent through
>     user agents such as web browsers.  While it is easy to implement, it
>     means that (a) the communication through the user agents are not
>     integrity protected and thus the parameters can be tainted, and (b)
>     the source of the communication is not authenticated.  Because of
>     these weaknesses, several attacks to the protocol have now been put
>     forward.
>
>     This document introduces the ability to send request parameters in a
>     JSON Web Token (JWT) instead, which allows the request to be JWS
>     signed and/or JWE encrypted so that the integrity, source
>     authentication and confidentiality property of the Authorization
>     Request is attained.  The request can be sent by value or by
>     reference.
>
>
>
>
> The file can be obtained via
> https://datatracker.ietf.org/doc/draft-ietf-oauth-jwsreq/
>
> IESG discussion can be tracked via
> https://datatracker.ietf.org/doc/draft-ietf-oauth-jwsreq/ballot/
>
>
> No IPR declarations have been submitted directly on this I-D.
>
>
> The document contains these normative downward references.
> See RFC 3967 for additional information:
>      rfc6234: US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF) (Informational - IETF stream)
>      rfc6819: OAuth 2.0 Threat Model and Security Considerations (Informational - IETF stream)
>      rfc6973: Privacy Considerations for Internet Protocols (Informational - IAB stream)
> Note that some of these references may already be listed in the acceptable Downref Registry.
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth