Re: [OAUTH-WG] PAR and client metadata

Brian Campbell <bcampbell@pingidentity.com> Thu, 16 April 2020 15:39 UTC

Return-Path: <bcampbell@pingidentity.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 2F1AD3A0CB3 for <oauth@ietfa.amsl.com>; Thu, 16 Apr 2020 08:39:57 -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 (2048-bit key) header.d=pingidentity.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 6pOIkFCCZUXP for <oauth@ietfa.amsl.com>; Thu, 16 Apr 2020 08:39:54 -0700 (PDT)
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) (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 678C03A0CB2 for <oauth@ietf.org>; Thu, 16 Apr 2020 08:39:54 -0700 (PDT)
Received: by mail-lf1-x132.google.com with SMTP id f8so5892904lfe.12 for <oauth@ietf.org>; Thu, 16 Apr 2020 08:39:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pingidentity.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LdsPdkT9toHabqqnuNxge7xsa++fK4Dg6JgJW74X0zc=; b=KkagIaWuqwOksjlpBx2p6fqGVQ+cgW+6gBFlssS27jXLN70Sn1hy2Sp/qFiBMDkPhG ws3fZ+JgilANjyth0Zm2a7uWRmzh5W0+MwzpNeh8ONw7SPtF5KiI1gjq44pe+pDhsq+S a1Z5dPUuUe1U+FGP9kn4rncYPwhTfU4o0SNynQIaCYxvyszCYP6X/EYtPjrwhV8Rzvqv ll8slUsLFzGbWnc9a9S0wCZ9UvkDEOiDCCPqTNHjtFNw0lEy4nF3TYy4Q1g67K0IGFY5 21zg30a6TavEClvdYpsSSWqKf0QnFeDWZEbjANQz4tlOtBBhRBYg2oqLBSFa6guEovC1 2ZrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LdsPdkT9toHabqqnuNxge7xsa++fK4Dg6JgJW74X0zc=; b=jKTezq+cUscBSoZHu+8nibs4EnnT9z5bryuj1g+VUyHdmSoqndp7caZ9IOrFKmAAit AyUnngUoxZUO3dlvoa0PTEC2EoAKEFGL72yg2KWm8nsFAZO7SlYj49xayMrbd9fpcBoK sKDjau4Tt/QTsG5iWVc4KHOvyWd4oAySRf3N171jLmkuIvIbkFvzbYgM8OhTNAUW/o0A clFcGnAajNJntUnyaI7jIIr5p10lkTfHEAdhQNytpT9gqlpQcmPZ6KUH45lNM4gt/rTg 9zO12upnbP4Qy2Bn4aEOrA8QzlAfXWCVQBlNNI2NywvTwoI6mBN3z6Vp9UG9TJpDOgwX Ujfw==
X-Gm-Message-State: AGi0PuZzKh6T7pJGI1E3haLohqzpWOXu4s6fyuJctW13fll4l6/gSTtp L8iilH43mdXmqN246+KvofSbo1cbt/NnqgkgmspZ7ypBhwEmnWaxXoLLn4W0a2V9nmaAJ0SaBUh BSp+ardLGHLgYVw==
X-Google-Smtp-Source: APiQypJ63aV/n1f4WkOuixxyQ/vt6Fa5T7z3l13aAdhpDsxXBde1ZQOjSksbft2VlB7klHu5lP36oC0Z3jW1qK37mns=
X-Received: by 2002:ac2:46e5:: with SMTP id q5mr6540980lfo.11.1587051592399; Thu, 16 Apr 2020 08:39:52 -0700 (PDT)
MIME-Version: 1.0
References: <760B73F1-F31C-4474-8871-28EEBCF45D44@amazon.com>
In-Reply-To: <760B73F1-F31C-4474-8871-28EEBCF45D44@amazon.com>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Thu, 16 Apr 2020 09:39:26 -0600
Message-ID: <CA+k3eCQK-1VZBAXCE+QHLNC44dzpVOMjBvZG183v4zq0Po0cyg@mail.gmail.com>
To: "Richard Backman, Annabelle" <richanna=40amazon.com@dmarc.ietf.org>
Cc: Vladimir Dzhuvinov <vladimir@connect2id.com>, oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000067ec3305a36a3eb4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/BbvgDNPlxAgHYWD0rFGJfUqtMXU>
Subject: Re: [OAUTH-WG] PAR and client metadata
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: Thu, 16 Apr 2020 15:39:57 -0000

On Wed, Apr 15, 2020 at 1:44 PM Richard Backman, Annabelle <richanna=
40amazon.com@dmarc.ietf.org> wrote:

> As I think through this, I’m struggling to identify the threats this
> actually helps mitigate.
>
> A client metadata parameter implies that the value may be different for
> different clients, and that any given client won’t already know via other
> means whether or not it needs to use PAR. That means we’re only talking
> about dynamic clients since statically registered clients already have some
> proprietary out-of-band registration mechanism (e.g., a developer console).
>

As I tried to articulate in the original email and Filip also mentioned in
a different fork of this email thread, defining metadata can be beneficial
even when it's not used dynamically at runtime. So we're not only talking
about dynamic clients.



>
> A client metadata parameter also implies that the AS allows some clients
> to make non-PAR requests (otherwise it would be an AS metadata parameter).
>

A per client setting seems necessary for existing ASs to roll out PAR
support over time or just generally in support of diverse client
capabilities and requirements.



> If that’s the case then presumably a malicious party could register their
> own client that doesn’t use PAR.
>
> So it seems to me that the only scenario that this parameter would protect
> against is a malicious party impersonating a dynamically registered client
> that uses PAR. That wouldn’t apply to Mix-Up, since in that attack the
> attacker uses its own client.
>

This client metadata parameter is meant to be something that would prevent
a malicious actor from controlling the content of the authz request
parameters, which could be done by crafting the link and tricking a user
into following it. I mentioned mix-up as an example because the first
variant of it desribed at
https://tools.ietf.org/html/draft-ietf-oauth-security-topics-15#section-4.4.1
does something along those lines.



>
> If a client can do PAR, then it can do authorization code grant and PKCE,
> so we’re further limited to scenarios where the attacker does not need to
> be able to redeem the authorization code themselves. What threats fall into
> this category?
>
> —
> Annabelle Backman (she/her)
> AWS Identity
>
> On Apr 14, 2020, at 2:44 PM, Brian Campbell <bcampbell=
> 40pingidentity.com@dmarc.ietf.org> wrote:
>
> 
>
> *CAUTION*: This email originated from outside of the organization. Do not
> click links or open attachments unless you can confirm the sender and know
> the content is safe.
>
> I was hoping to get to a rough consensus in support of the idea before
> coming up with a name that everyone will hate :)
>
> In the meantime, however, name suggestions are of course welcome.
>
>
> On Tue, Apr 14, 2020 at 2:22 PM Vladimir Dzhuvinov <
> vladimir@connect2id.com> wrote:
>
>> I'm all for that.
>>
>> I suppose you have already thought of a suitable name? :)
>>
>> Vladimir
>> On 14/04/2020 23:08, Brian Campbell wrote:
>>
>> Using PAR can facilitate improved security by giving clients a
>> (relatively) simple means for sending a confidential, integrity protected,
>> and (for confidential clients anyway) authenticated authorization request.
>>
>> It seems like some of that improved security could be undermined by a
>> malicious actor somehow getting a user to navigate to a URL of a regular
>> old parameterized authorization request. One variation of the Mix-Up Attack
>> does this
>> https://tools.ietf.org/html/draft-ietf-oauth-security-topics-15#section-4.4.1
>> <https://tools.ietf.org/html/draft-ietf-oauth-security-topics-15#section-4.4..1>
>> for example and email, social media, online forums, etc., are other ways a
>> user might be tricked into following a maliciously crafted link.
>>
>> Following from that it seems logical that an authorization server might
>> want to restrict some clients from sending a regular parameterized
>> authorization request and instead require use of the PAR endpoint to
>> initiate an authorization request. Something like this could, of course, be
>> implemented as custom policy or configuration in any AS. But I'm thinking
>> it might be common enough to warrant adding a client metadata parameter to
>> the PAR draft specifically for it. The metadata (and registered extensions)
>> defined by Dynamic Client Registration [RFC7591] has come to imply a
>> general data model and expected associated behaviors for clients that is
>> useful for authorization server implementations, even when the Dynamic
>> Client Registration Protocol isn't directly in play. This particular
>> situation seems like a good potential candidate for a new such client
>> metadata parameter that would indicate that the given client can only use a
>> request_uri value obtained from the PAR endpoint to initiate an
>> authorization request. And that a regular old fashioned authorization
>> request from the given client would result in an error.
>>
>> Do the folks of this fine WG think something like this would be a
>> worthwhile addition to the PAR draft?
>>
>>
>>
>>
>>
>> *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 listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>>
>>
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> 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
> 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._