Re: [OAUTH-WG] Benjamin Kaduk's No Objection on draft-ietf-oauth-resource-indicators-05: (with COMMENT)

Benjamin Kaduk <kaduk@mit.edu> Thu, 05 September 2019 17:53 UTC

Return-Path: <kaduk@mit.edu>
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 DD2BA1200D6; Thu, 5 Sep 2019 10:53:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level:
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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 MncAWKjN5kPO; Thu, 5 Sep 2019 10:53:27 -0700 (PDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (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 6FC35120048; Thu, 5 Sep 2019 10:53:27 -0700 (PDT)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x85HrLEi019517 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 5 Sep 2019 13:53:23 -0400
Date: Thu, 5 Sep 2019 12:53:20 -0500
From: Benjamin Kaduk <kaduk@mit.edu>
To: Brian Campbell <bcampbell@pingidentity.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-oauth-resource-indicators@ietf.org, oauth <oauth@ietf.org>, oauth-chairs@ietf.org
Message-ID: <20190905175320.GL78802@kduck.mit.edu>
References: <156763159047.22689.9306520600745069059.idtracker@ietfa.amsl.com> <CA+k3eCTu91h3X7BjJgjQ6QQU1oWXnRPM3X0EjRbi6ri=a5tSew@mail.gmail.com> <20190904235531.GE78802@kduck.mit.edu> <CA+k3eCQ0bShTn4cbzeP7hs-g+wbfP6JzUsA=xmtjyhaehmAL0Q@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CA+k3eCQ0bShTn4cbzeP7hs-g+wbfP6JzUsA=xmtjyhaehmAL0Q@mail.gmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/eSgv2VA-0rBEkHIy_8fM1A_qnhw>
Subject: Re: [OAUTH-WG] Benjamin Kaduk's No Objection on draft-ietf-oauth-resource-indicators-05: (with COMMENT)
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, 05 Sep 2019 17:53:30 -0000

On Wed, Sep 04, 2019 at 06:17:32PM -0600, Brian Campbell wrote:
> On Wed, Sep 4, 2019 at 5:55 PM Benjamin Kaduk <kaduk@mit.edu>; wrote:
> 
> > On Wed, Sep 04, 2019 at 05:19:27PM -0600, Brian Campbell wrote:
> > > Thanks Ben, for the review and non-objectional ballot.
> > >
> > > On Wed, Sep 4, 2019 at 3:13 PM Benjamin Kaduk via Datatracker <
> > > noreply@ietf.org>; wrote:
> > >
> > > > Benjamin Kaduk has entered the following ballot position for
> > > > draft-ietf-oauth-resource-indicators-05: No Objection
> > > >
> > > > Section 3
> > > >
> > > >    An access token that is audience restricted to a protected resource
> > > >    that obtains that token legitimately cannot be used to access
> > > >    resources on behalf of the resource owner at other protected
> > > >    resources.  The "resource" parameter enables a client to indicate
> > the
> > > >
> > > > nit: This sentence has a pretty strange construction.  I think the
> > > > intent is to say that that a token, legitimately presented to a
> > > > resource, cannot then be taken by that resource server and
> > > > illegitimately present it somewhere else for access to other resources.
> > > > But with the current wording we seem to be missing part of the part
> > > > where some entity obtains the token with intent for illegitimate
> > access.
> > > >
> > >
> > > Yes, despite the pretty strange construction, you have the correct
> > intent.
> > > I'll work on improving that sentence (borrowing heavily from your words
> > > there).
> > >
> > >
> > >
> > > >    Some servers may host user content or be multi-tenant.  In order to
> > > >    avoid attacks that might confuse a client into sending an access
> > > >    token to a resource that is user controlled or is owned by a
> > > >    different tenant, it is important to use a specific resource URI
> > > >    including a path component.  This will cause any access token issued
> > > >    for accessing the user controlled resource to have an invalid
> > > >    audience if replayed against the legitimate resource API.
> > > >
> > > > I'm not entirely sure what this is trying to say.  What is the
> > > > "legitimate resource API"?  Why would a token be issued for accessing a
> > > > user-controlled resource if that's something we're trying to avoid
> > > > having confused clients access?
> > > >
> > >
> > > Um... so on rereading that I might say that it's also "pretty strange".
> > >
> > > What it was trying to somehow say is similar to the previous nit about
> > > audience-restricted not being usable at the resource for whom the weren't
> > > intended. But saying so in the context of a multi-tenant environment.
> > > Basically it's trying to say that, in a multi-tenant environment, the
> > > resource URI and subsequent token audience need to have something that
> > > identifies the tenant so as to prevent the token from being used by one
> > > tenant to illegitimately access resources at a different tenant. I'll
> > work
> > > on trying to improve that text to better explain all that.
> >
> > Ah, yes, that's a very good point to make.  I'm happy to look at some draft
> > text if you want.
> >
> 
> Thanks, here's what I've got now for this and the previous item in sec 3.
> Suggestions welcome.
> 
> 3.  Security Considerations
> 
>    An audience-restricted access token, legitimately presented to a
>    resource, cannot then be taken by that resource to present it
>    elsewhere for illegitimate access to other resources.  The "resource"

I think "by that resource and presented elsewhere" probbaly has a more
parallel flow.

>    parameter enables a client to indicate the protected resources where
>    the requested access token will be used, which in turn enables the
>    authorization server to apply the appropriate audience restrictions
>    to the token.
> 
>    Some servers may host user content or be multi-tenant.  In order to
>    avoid attacks where one tenant uses an access token to illegitimately
>    access resources owned by a different tenant, it is important to use
>    a specific resource URI including any portion of the URI that
>    identifies the tenant, such as a path component.  This will allow
>    access tokens to be audience-restricted in a way that identifies the
>    tenant and prevent their use, due to an invalid audience, at
>    resources owned by a different tenant.

But other than the above nit, this all looks really good; thank you!

-Ben