Re: [GNAP] Consensus Call on Continuation Request

Warren Parad <wparad@rhosys.ch> Mon, 14 December 2020 20:41 UTC

Return-Path: <wparad@rhosys.ch>
X-Original-To: txauth@ietfa.amsl.com
Delivered-To: txauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D53653A1CB3 for <txauth@ietfa.amsl.com>; Mon, 14 Dec 2020 12:41:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.187
X-Spam-Level:
X-Spam-Status: No, score=-0.187 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=rhosys.ch
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 VrkTGVC5krf7 for <txauth@ietfa.amsl.com>; Mon, 14 Dec 2020 12:41:51 -0800 (PST)
Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) (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 001CF3A1C8B for <txauth@ietf.org>; Mon, 14 Dec 2020 12:41:50 -0800 (PST)
Received: by mail-il1-x135.google.com with SMTP id q1so17124218ilt.6 for <txauth@ietf.org>; Mon, 14 Dec 2020 12:41:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rhosys.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cpTWy7YcPIyxOTts/tByF+j9sQvW8Gp8mmUExhLf3Kc=; b=Xj1X105Kf29S8CU2j9kEmvZ+ZCR05Qo+p/FfDWj1zs4pWQN7F3vYRy4y41NIsyfnVB QBNjsKMhRJsfE8Q54U7KwDbWHarb+pwBT9Cmq9zvhotp5yVWKIx/lbIeB2VJdPotVTrS 9UZItOTkiSwnys2OK5OJrN4P/pD/gTTgqdt3A=
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=cpTWy7YcPIyxOTts/tByF+j9sQvW8Gp8mmUExhLf3Kc=; b=XuvUv3hTOPYfH/sJPjnkXhOAnJYNcoJd+dHq+6/JEtiYakvViUbjkHvqwN7STm4eqF iUMCagniGbWglehGdSMgz0aidxPCzxK+nKCNbVqzY3ngSCZdnnsdaWateDYxW/D1iuW9 XsG3xGSe9Pj9J2OyRGHNHFStP/SgsfM/9sXnw5lVJfQtTrYYKkE8tJ9GkGPo/2bqt3xT gFb2ynOyJZ1aYvlyGB6UPyGl+orp9oSgrjxxx6jK0/goinagNI1X9DGngFrvUV591Z12 uyM/WF+ewUMtMGzYwjBrrgyF3GfBs08Abq++RrxyeD3G9xQCEvVwR+hxmSp8ooXtLGm5 4uaw==
X-Gm-Message-State: AOAM530yq0S3spl/pHyDZ3+50TPrit8C5eJFRjOA1QiJyLPSnsB86Q7J LaSUl4YN+myi93ZKhz9SHTrPprwjQPBLT17grpI1
X-Google-Smtp-Source: ABdhPJzK2cbB26jmf/Xp4OGjC+dc9g74LXMeOSXSdx7dig8+pEGxMo97wt1lCRN8ARKtp+3hQ309M29LEa92gz6osCo=
X-Received: by 2002:a05:6e02:154c:: with SMTP id j12mr28017484ilu.33.1607978510031; Mon, 14 Dec 2020 12:41:50 -0800 (PST)
MIME-Version: 1.0
References: <94973397-0354-4B02-9EC8-EF972A7F1867@mit.edu> <CAD9ie-v-j=PBGjLmiWT+z1Whimfmqo=+Pqw1DVFmXZO-bm7=4w@mail.gmail.com> <8E2FF25A-4BE1-4EA1-A0FE-CB5194DEAC52@mit.edu> <CAD9ie-spy7fX-9+5cXzyrau62sX=wViqdpMYzmFBfz-Qbi63ZQ@mail.gmail.com> <CAK5Vu_DW=8V8qNH-MnjjrUsnganpdwKxCCE1ZTJmENGYEvFoew@mail.gmail.com> <CAD9ie-vWgOVqcXiTTLfBBLx2AKDw_ry0A06CuL2DpKFmjYQ8YQ@mail.gmail.com> <CAK5Vu_DqO+iZHWaov94PXTfD5tKdN9R4w08o8Dd4RxFD3UGxOA@mail.gmail.com> <CAD9ie-ud4i51dF-PEY4r+QpAu2fYNob==R7Ek69rwU6cjy-zBQ@mail.gmail.com> <CAM8feuRBvjx_2nBNy95dDtc6v8A1ebKGKfNE4SwkcFA0-7SYCw@mail.gmail.com> <CAD9ie-tEpVFfgB8KT3XK=G98wOTcVZxpXXRezCKbVuAP4hZoXQ@mail.gmail.com> <CAM8feuR9x7eMzWtTLeWHNEtjkFUk39kMw3ArFXp5rcFmXCw6BQ@mail.gmail.com> <CAD9ie-tMjNvewwof7W8Nof7D9FXuTEdwV3wTywyhB6gTurktmQ@mail.gmail.com> <CAGBSGjqer-kEz0=vbqu-=qsNg8gGRaWaxPjYd1q2eMeboF+yYg@mail.gmail.com> <CAJot-L0WAn2EqYO=mCVoq4Qm5TPTO7FNjtohriOn8tZHsNCJHQ@mail.gmail.com> <9CDE8448-B4CD-4DC5-842D-3C58C5A322ED@mit.edu>
In-Reply-To: <9CDE8448-B4CD-4DC5-842D-3C58C5A322ED@mit.edu>
From: Warren Parad <wparad@rhosys.ch>
Date: Mon, 14 Dec 2020 21:41:38 +0100
Message-ID: <CAJot-L17nHE2kaENOKBQG+v9g7WyErvZK4gtS9RSZh5uT4wcDA@mail.gmail.com>
To: Justin Richer <jricher@mit.edu>
Cc: Aaron Parecki <aaron@parecki.com>, Dick Hardt <dick.hardt@gmail.com>, Fabien Imbault <fabien.imbault@gmail.com>, txauth gnap <txauth@ietf.org>, Steve Moore <srmoore@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000e5b84a05b672abeb"
Archived-At: <https://mailarchive.ietf.org/arch/msg/txauth/EqenfyKarimq8qiCZZkzxLaZuIo>
Subject: Re: [GNAP] Consensus Call on Continuation Request
X-BeenThere: txauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: GNAP <txauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/txauth>, <mailto:txauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/txauth/>
List-Post: <mailto:txauth@ietf.org>
List-Help: <mailto:txauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/txauth>, <mailto:txauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Dec 2020 20:41:54 -0000

So then I would say the question becomes, why force AS to create "access
tokens" (or whatever we want to call them) if they don't see the benefit of
doing so. I.e. right now the Warren AS (and the Dick AS) both think we
would not be generating "access tokens". If the spec requires it, I would
probably just hard code the same value in every request because my AS
doesn't see the value in requiring it when I'm in control of the URI.

If I understand the discussion correctly, we are trying to prevent AS from
exposing the uri containing the "access token", because doing so would
hypothetically create an attack surface for the AS. If that's the case,
then I would say, forcing the token to be in auth header only provides a
negligible amount of surface decrease and thus the extra complexity is not
well offset by the security improvement. So for me rather than arguing if
there is any benefit at all, I'll make a stronger argument:
*If there is a benefit to using the access token, it surely can't be a
meaningful amount in such a way that it's important from the GNAP protocol
standpoint to provide this mechanism for improvement.*

Warren Parad

Founder, CTO
Secure your user data and complete your authorization architecture.
Implement Authress <https://bit.ly/37SSO1p>.


On Mon, Dec 14, 2020 at 9:29 PM Justin Richer <jricher@mit.edu> wrote:

> Warren,
>
> (as editor):
>
> Your proposal below is not dissimilar to what’s in the current spec text:
> the URI is required, and the access token is optional. If the access token
> is included, the client has to include it in its request. The feedback from
> the working group during the IETF109 meeting, and leading up to it, was
> nearly universally that this optionality was not helpful, especially to
> client developers. The editors’ PR being discussed here removes that
> optionality by making both fields required with only one method of
> presentation, and therefore a single code path for the client.
>
>  — Justin
>
> On Dec 14, 2020, at 3:11 PM, Warren Parad <wparad@rhosys.ch> wrote:
>
> Here's a terrible alternative:
>
> It would seem to me that one compromise could be making the object
> extensible by authorization servers (and their corresponding SDK). In a
> similar way that JWTs are extensible, we could require explicitly the URI
> in the spec, and an optional object to be defined by the AS.
>
> --------
>
> One source of the problem could be that the language for taking the
> response object and converting it back into a request one is not well
> defined.
> Instead if we allowed an optional headers object to be returned:
> {
>     uri: "https://as/grant/{grantId}",
>     headers: {
>         'Authorization': 'Bearer ${accessToken}
>     }
> }
>
> Thereby explicitly telling the client what they need to return back. It
> avoids the problem of "what to name these things" and also ensures that the
> data is exactly what the server expects. Additionally it sidesteps the
> naming issue, where to include tokens, and whether to include them at all.
>
> Otherwise it sucks to be in a situation where the benefits/detriments
> aren't clear to everyone, and potentially we can choose a path forward
> where both approaches could be used without requiring other clients to jump
> over arbritrary hurdles suchs as custom implementations.
>
> Warren Parad
> Founder, CTO
> Secure your user data and complete your authorization architecture.
> Implement Authress <https://bit.ly/37SSO1p>.
>
>
> On Mon, Dec 14, 2020 at 8:46 PM Aaron Parecki <aaron@parecki.com> wrote:
>
>> Thanks for the clear description. However saying "has no security
>> concerns" is a bold claim. Can you clarify how you will ensure that there
>> are no security concerns with this method?
>>
>> My main worry with this is people will start to get "creative" with the
>> values of the things in this URL. We've seen this over and over, everything
>> from using plaintext data in JWT access tokens in OAuth (now the access
>> token contents are visible to clients), to putting data in the OAuth
>> "state" parameter (easy to exploit unless it's signed/encrypted), and I'm
>> sure someone somewhere is putting things in the authorization code that
>> they shouldn't.
>>
>> Aaron
>>
>>
>> On Mon, Dec 14, 2020 at 11:39 AM Dick Hardt <dick.hardt@gmail.com> wrote:
>>
>>>
>>> I am proposing a URI that is straight forward, and has no
>>> security concerns.
>>>
>>> For example, the URI could be:
>>>
>>> <as uri>/grant/<unique grant id>
>>>
>>> eg: https://example.com/as/grant/a3ce6053-ca48-4c04-af46-c2384ec8b89f
>>>
>>> The routing code in the AS then is:
>>>
>>> router.post(      '/', grant.create);
>>> router.get(        '/grant/:grant', grant.read);
>>> router.post(      '/grant/:grant', grant.update);
>>> router.delete(   '/grant/:grant', grant.delete);
>>> router.options( '/grant/:grant', grant.options);
>>>
>>>
>>> Where there is a "grant" module to manage for working with grant
>>> requests.
>>>
>>> /Dick
>>>
>>> ps: your previous email, and this one, are making the discussion
>>> personal. Happy to discuss privately.
>>>
>>> ᐧ
>>> --
>>> TXAuth mailing list
>>> TXAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/txauth
>>>
>> --
>> TXAuth mailing list
>> TXAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/txauth
>
>
>