Re: [OAUTH-WG] New Version Notification for draft-ietf-oauth-par-02.txt

Neil Madden <neil.madden@forgerock.com> Sun, 26 July 2020 13:36 UTC

Return-Path: <neil.madden@forgerock.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 0CA423A0EB2 for <oauth@ietfa.amsl.com>; Sun, 26 Jul 2020 06:36:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=forgerock.com
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 U76phkmXlrLk for <oauth@ietfa.amsl.com>; Sun, 26 Jul 2020 06:36:28 -0700 (PDT)
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 334243A0EAE for <oauth@ietf.org>; Sun, 26 Jul 2020 06:36:27 -0700 (PDT)
Received: by mail-wm1-x32d.google.com with SMTP id t142so5832692wmt.4 for <oauth@ietf.org>; Sun, 26 Jul 2020 06:36:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=forgerock.com; s=google; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=wegK68rbPVt105cygsIBRMk51eNleyfmjByPwo4SvZQ=; b=HhQY/+NnaRO9sEuJ5QxLhdl5IEM/M0dL8SoBeafOXOD0E2RM/znCRuBwH2yyFOOH2m 4C3bHmQAuxQYrITQNKNaRb8X61Ro2L6aG2z6oCCHTOglUh7p83xkQvbXHBM+Wtxt1Fy9 j90AqzCUMbWTZeSy8LEup7B/GOU7iudr1SfXk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=wegK68rbPVt105cygsIBRMk51eNleyfmjByPwo4SvZQ=; b=jmNsnjGFGrbtVxY3/JQM/IfFqJ+RLVLE39FQbAF7kkjlPtuPmHxpY9lvvjD4Scocz0 vhLBHfd9zBaSAvgfC2SxMniZNN1ZQmPyduzFZVQWlGx4qsyIzt3Tv+z0Dupgo3f+T73r bWQQVZ7jfSpgHgqZXG6fL23cINuB36i+b6jkYiZbG7u4wxNs/mkUFfKSXzHqE8aYF8DE iomMzOcqkaP8aIqjYMb+QMxetfFVaj8VWF+pyEqlgS9wSMHsJSVpEKv57nyqW3M7yg5k ump0bu5AfmG9W1xiX8ip/mZlXXJRXyknxspKV46CLRT/LPFHJiAjcP8F7nm94QHwqZju XQaQ==
X-Gm-Message-State: AOAM530Dte5L9UeBstI5ocuOVxdD8zrg1y9nEjZ6gN8jo6MSryP0kOEe CuJs7ALZIy4zLjxekVSyFMTQ2A==
X-Google-Smtp-Source: ABdhPJyOYN4eA7WtVd3r8ICMFfPA28ZgFDWqAZqtXh5lnRyfgP1PQ6GserzG6RLlHsqJQm0zecu0KA==
X-Received: by 2002:a7b:c013:: with SMTP id c19mr16313806wmb.158.1595770585716; Sun, 26 Jul 2020 06:36:25 -0700 (PDT)
Received: from [10.0.0.6] (38.227.143.150.dyn.plus.net. [150.143.227.38]) by smtp.gmail.com with ESMTPSA id j24sm9456198wrb.49.2020.07.26.06.36.24 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jul 2020 06:36:25 -0700 (PDT)
From: Neil Madden <neil.madden@forgerock.com>
Message-Id: <478A55B8-E388-4D0A-B036-ED28FCAB6A46@forgerock.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_74BF87AB-9F04-49EA-9CBD-82D0C115ED95"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\))
Date: Sun, 26 Jul 2020 14:36:24 +0100
In-Reply-To: <CA+k3eCSqv98aMAd94ow-iFnFx_x_XE_Xjxn=P=EBwj2k=xux9Q@mail.gmail.com>
Cc: Vladimir Dzhuvinov <vladimir@connect2id.com>, oauth <oauth@ietf.org>
To: Brian Campbell <bcampbell@pingidentity.com>
References: <CA+k3eCRWSFGHPb9Yo1POR_YqZLELyhEuYuUsObcXMebxtnySBg@mail.gmail.com> <2ABDD1A0-0455-4CD7-94B9-121F7D61A287@forgerock.com> <CA+k3eCSqv98aMAd94ow-iFnFx_x_XE_Xjxn=P=EBwj2k=xux9Q@mail.gmail.com>
X-Mailer: Apple Mail (2.3608.80.23.2.2)
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/dWVj45MFjG3M2kZbl3pbiNwR6W0>
Subject: Re: [OAUTH-WG] New Version Notification for draft-ietf-oauth-par-02.txt
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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: Sun, 26 Jul 2020 13:36:32 -0000

Thanks Brian,

That sounds reasonable.

My main concern is that we don’t mislead people into the security properties provided by PAR. I’ve seen multiple cases where people assume that e.g. because they sent an OIDC request with a particular acr_values and got back a successful response that the user must have been successfully authenticated in the intended way. There are multiple ways that assumption can be violated; tampering with the request being just one of them. In those kinds of cases, the best thing is to strictly validate the response you get back (e.g., the “acr” claim in the ID token in this example), which you’d generally still want to do even with PAR.

Obviously PAR can catch some of these things much earlier in the flow, which is great, but I just wanted to be clear whether the PAR draft is saying that there are either (a) some attacks that PAR catches that otherwise aren’t mitigated, or (b) there are specific attacks against PAR (e.g., replay) that don’t apply to existing flows, or (c) some checks you can skip if you use PAR.

Cheers,

— Neil

> On 24 Jul 2020, at 22:13, Brian Campbell <bcampbell@pingidentity.com> wrote:
> 
> Hi Neil, 
> 
> Torsten added this issue https://github.com/oauthstuff/draft-oauth-par/issues/53 <https://github.com/oauthstuff/draft-oauth-par/issues/53> from your questions/comments, which touches on some things, and maybe he can provide more thoughts. But I'll make an attempt here too. 
> 
> In my mind, the one-time use suggestion on the request_uri came about less from the risks of replay and more from the fact that the contents of a particular auth request are unique to the one request. So it just kinda made sense to similarly limit the reference to the data in a request. A specific request can only be made once so it's suggested (though not required) that a request_uri that represents that request also be usable only once. 
> 
> I believe state and/or PKCE and/or nonce can prevent replay already but those take effect at different points in the whole dance and to catch replay of different artifacts. 
> 
> Agreed that it'd be good for the draft to have some more discussion about the risks of modification and disclosure of the request content. Torsten also agreed yesterday at a brief discussion during OSW so I'm hopeful he can add some good content to the draft :) Thinking about richer authorization requests that might have transaction data like payee account numbers or amounts or similar etc. gives some idea of requests where integrity and confidentiality would be good. And even more basic requests, preventing control or modification of something like code_challenge seems useful. 
> 
> 
> 
> 
> 
> On Thu, Jul 23, 2020 at 1:53 AM Neil Madden <neil.madden@forgerock.com <mailto:neil.madden@forgerock.com>> wrote:
> Can you expand on the risks of replay? It seems like if the request can be replayed an attacker can also block the original request and inject the URI into a different request - ie no replay. 
> 
> (Shouldn’t state and/or PKCE and/or nonce prevent replay already?)
> 
> In general the draft could do with some discussion of why an attacker being able to modify an authorization request is a risk. I might just be lacking enough coffee this morning to understand the risk here. 
> 
> — Neil
> 
>> On 22 Jul 2020, at 23:14, Brian Campbell <bcampbell=40pingidentity.com@dmarc.ietf.org <mailto:40pingidentity.com@dmarc.ietf.org>> wrote:
>> 
>> 
>> Thanks Vladimir, both comments should be easy to address in -03 (HTTPS/TLS required and SHOULD on short lifetime *and* single use). 
>> 
>> On Sun, Jul 19, 2020 at 12:55 PM Vladimir Dzhuvinov <vladimir@connect2id.com <mailto:vladimir@connect2id.com>> wrote:
>> Thanks for the update. With the "require PAR" AS and client metadata the spec is now "policy complete". I can't think of what else there is to add.
>> 
>> 
>> 
>> I have two comments about -02:
>> 
>> 
>> 
>> https://tools.ietf.org/html/draft-ietf-oauth-par-02#section-2 <https://tools.ietf.org/html/draft-ietf-oauth-par-02#section-2>
>> I didn't see a mention of https / TLS being required for the PAR endpoint. The reader could assume http is fine.
>> 
>> 
>> 
>> https://tools.ietf.org/html/draft-ietf-oauth-par-02#section-2.2 <https://tools.ietf.org/html/draft-ietf-oauth-par-02#section-2.2>
>> 
>>>    Since the request URI can be replayed, its lifetime SHOULD be short
>>>    and preferably limited to one-time use.
>> The SHOULD is ambiguous here - does it apply to the lifetime only, or to the lifetime and the single use.
>> 
>> 
>> 
>> Vladimir
>> 
>> 
>> 
>> On 10/07/2020 21:36, Brian Campbell wrote:
>>> WG,
>>> 
>>> A new -02 draft of "OAuth 2.0 Pushed Authorization Requests" has been published. A summary of the changes, taken from the document history, is included below for ease of reference.  
>>> 
>>>    -02
>>> 
>>>    *  Update Resource Indicators reference to the somewhat recently
>>>       published RFC 8707 <https://datatracker.ietf.org/doc/html/rfc8707>
>>> 
>>>    *  Added metadata in support of pushed authorization requests only
>>>       feature
>>> 
>>>    *  Update to comply with draft-ietf-oauth-jwsreq-21 <https://datatracker.ietf.org/doc/html/draft-ietf-oauth-jwsreq-21>, which requires
>>>       "client_id" in the authorization request in addition to the
>>>       "request_uri"
>>> 
>>>    *  Clarified timing of request validation
>>> 
>>>    *  Add some guidance/options on the request URI structure
>>> 
>>>    *  Add the key used in the request object example so that a reader
>>>       could validate or recreate the request object signature
>>> 
>>>    *  Update to draft-ietf-oauth-jwsreq-25 <https://datatracker.ietf.org/doc/html/draft-ietf-oauth-jwsreq-25> and added note regarding
>>>       "require_signed_request_object"
>>> 
>>> ---------- Forwarded message ---------
>>> From: <internet-drafts@ietf.org <mailto:internet-drafts@ietf.org>>
>>> Date: Fri, Jul 10, 2020 at 1:21 PM
>>> Subject: New Version Notification for draft-ietf-oauth-par-02.txt
>>> To: Filip Skokan <panva.ip@gmail.com <mailto:panva.ip@gmail.com>>, Torsten Lodderstedt <torsten@lodderstedt.net <mailto:torsten@lodderstedt.net>>, Brian Campbell <bcampbell@pingidentity.com <mailto:bcampbell@pingidentity.com>>, Dave Tonge <dave@tonge.org <mailto:dave@tonge.org>>, Nat Sakimura <nat@sakimura.org <mailto:nat@sakimura.org>>
>>> 
>>> 
>>> 
>>> A new version of I-D, draft-ietf-oauth-par-02.txt
>>> has been successfully submitted by Brian Campbell and posted to the
>>> IETF repository.
>>> 
>>> Name:           draft-ietf-oauth-par
>>> Revision:       02
>>> Title:          OAuth 2.0 Pushed Authorization Requests
>>> Document date:  2020-07-10
>>> Group:          oauth
>>> Pages:          18
>>> URL:            https://www.ietf.org/internet-drafts/draft-ietf-oauth-par-02.txt <https://www.ietf.org/internet-drafts/draft-ietf-oauth-par-02.txt>
>>> Status:         https://datatracker.ietf.org/doc/draft-ietf-oauth-par/ <https://datatracker.ietf.org/doc/draft-ietf-oauth-par/>
>>> Htmlized:       https://tools..ietf.org/html/draft-ietf-oauth-par-02 <https://tools.ietf...org/html/draft-ietf-oauth-par-02>
>>> Htmlized:       https://datatracker.ietf.org/doc/html/draft-ietf-oauth-par <https://datatracker..ietf.org/doc/html/draft-ietf-oauth-par>
>>> Diff:           https://www.ietf.org/rfcdiff?url2=draft-ietf-oauth-par-02 <https://www.ietf.org/rfcdiff?url2=draft-ietf-oauth-par-02>
>>> 
>>> Abstract:
>>>    This document defines the pushed authorization request endpoint,
>>>    which allows clients to push the payload of an OAuth 2..0
>>>    authorization request to the authorization server via a direct
>>>    request and provides them with a request URI that is used as
>>>    reference to the data in a subsequent authorization request.
>>> 
>>> 
>>> 
>>> 
>>> Please note that it may take a couple of minutes from the time of submission
>>> until the htmlized version and diff are available at tools.ietf.org <http://tools.ietf.org/>..
>>> 
>>> The IETF Secretariat
>>> 
>>> 
>>> 
>>> CONFIDENTIALITY NOTICE: This email may contain confidential and privileged material for the sole use of the intended recipient(s). Any review, use, distribution or disclosure by others is strictly prohibited..  If you have received this communication in error, please notify the sender immediately by e-mail and delete the message and any file attachments from your computer. Thank you. 
>>> 
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>>> https://www.ietf.org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
>> -- 
>> Vladimir Dzhuvinov
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>> https://www.ietf.org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
>> 
>> CONFIDENTIALITY NOTICE: This email may contain confidential and privileged material for the sole use of the intended recipient(s). Any review, use, distribution or disclosure by others is strictly prohibited..  If you have received this communication in error, please notify the sender immediately by e-mail and delete the message and any file attachments from your computer. Thank you._______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>> https://www.ietf.org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
> 
> CONFIDENTIALITY NOTICE: This email may contain confidential and privileged material for the sole use of the intended recipient(s). Any review, use, distribution or disclosure by others is strictly prohibited.  If you have received this communication in error, please notify the sender immediately by e-mail and delete the message and any file attachments from your computer. Thank you.