Re: [OAUTH-WG] Clarifying Bearer token usage OAuth 2.1 draft-ietf-oauth-v2-1-00
Dick Hardt <dick.hardt@gmail.com> Thu, 30 July 2020 19:21 UTC
Return-Path: <dick.hardt@gmail.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 0662A3A0B58 for <oauth@ietfa.amsl.com>; Thu, 30 Jul 2020 12:21:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.086
X-Spam-Level:
X-Spam-Status: No, score=-2.086 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, FREEMAIL_FROM=0.001, 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 (2048-bit key) header.d=gmail.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 UCmDDOZz_CYq for <oauth@ietfa.amsl.com>; Thu, 30 Jul 2020 12:21:37 -0700 (PDT)
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) (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 2AD323A0B4F for <oauth@ietf.org>; Thu, 30 Jul 2020 12:21:37 -0700 (PDT)
Received: by mail-lf1-x12f.google.com with SMTP id 140so15572838lfi.5 for <oauth@ietf.org>; Thu, 30 Jul 2020 12:21:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=d8P6/xv+//u0RvRj2sVNu8bXzQZF+jz3zNZf6BAhkQI=; b=oqqXG7q1iVtvzfXkYGsHc7YuUQnqcXjdAAkxkVm39pkEAos5b+nm1nWdgiyqGxTuFX TfSNFg7sN3/DWzLWSrICQXlgDm5Atx7sSAfH/kJOdehGfVJiVW+Hxzx6GtPbuoQt9wyA vs5tPskrzLEzVAv1rJtXOXns0OL1ahNqRekRrLaSnNTsk++RpXI/0HfvMOnpBtHW7sC4 URNc34GGrX14DSPBkd8ESJXhbgv7gTUydVyF0Z4WGrEOKnW4GXcjL78LCe9SrxFl0LlV S2VHndkeppz3TWfl7eIs4e0CSSZxHvVt1E7lD2c1xwNpTowysfC1P5fDMvMjYrqRiAOt fLzw==
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=d8P6/xv+//u0RvRj2sVNu8bXzQZF+jz3zNZf6BAhkQI=; b=IRy76HWXoxc6Zezq6AXRlK7g2YKNcFe0FASjbuPqnkiuAUMuvGftf0Gsz5RsMYHbO7 JBL5yzN/CK0B4Je5aew2ETCEXzM8tSzN9gaM4KXZIy8HVTFfWTz0Fgp4bft9l9QxZd+B p8gQaG5BDw8jpCz48R45PYdDL9QaGNZ5t25CwNA3jTiBn89T9Cph3hJhxbPJITqiRryd MOvp1AER3Y7pRR+3GjnaITNjxNUznFGK6pZ4Sm5Y8xMymrM8Q9QNSwhDcB1jJ4QcvU5u kUG5I90HlSovZbd3VS2UYY3OxYjeuRE254On9npMkI17YkmdQpRtqznBOIbUaS78Ayia 2Brg==
X-Gm-Message-State: AOAM53128R64a0ssjzBN8wfu1aUMHmDSNM5wBAVyz+k4CQ/U1JJ7/mSW WeA1nDmqBmLAbalvNUKEHZmx8KAJFQE1HyrX6lc=
X-Google-Smtp-Source: ABdhPJyL+OlgTFF1f3LAcnyxAqqfUFzG3RfXc5ls3DEKVzTe9ph1IuV7W8ZNsT6azrO7859MyjVRuoSktT6onvEmkgE=
X-Received: by 2002:a19:8044:: with SMTP id b65mr70881lfd.91.1596136895019; Thu, 30 Jul 2020 12:21:35 -0700 (PDT)
MIME-Version: 1.0
References: <CAJot-L0gx6-NSGmWsY_qx4sTiKNJ9NtExX-zZWM=+CjVn=5MPg@mail.gmail.com> <4E2EAEF4-A0E4-4560-86C3-083A19A0F440@manicode.com>
In-Reply-To: <4E2EAEF4-A0E4-4560-86C3-083A19A0F440@manicode.com>
From: Dick Hardt <dick.hardt@gmail.com>
Date: Thu, 30 Jul 2020 12:20:58 -0700
Message-ID: <CAD9ie-uUeX2fKxz=Cn0ea2vcec-rEsGvjTRsYJgCcVrqQf8H3A@mail.gmail.com>
To: Jim Manico <jim@manicode.com>
Cc: Warren Parad <wparad@rhosys.ch>, oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000a3fff405abad94d2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/dzbPUf845NV_AlsZ32BeICUgvJY>
Subject: Re: [OAUTH-WG] Clarifying Bearer token usage OAuth 2.1 draft-ietf-oauth-v2-1-00
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, 30 Jul 2020 19:21:41 -0000
One of the constraints of the OAuth 2.1 document that aligned the WG was it would have no new features. I'd recommend a separate document for the cookie bearer token feature. ᐧ On Thu, Jul 30, 2020 at 12:15 PM Jim Manico <jim@manicode.com> wrote: > Yea to cookie configuration suggestions! > > I suggest SameSite=LAX at least, which is actually the default behavior in > chrome if you do not set the samesite value. LAX will not break links that > originate from emails, STRICT will. > > Point being is that CSRF defense is easy. XSS defense is brutally hard in > apps with complex UI’s! > > -- > Jim Manico > @Manicode > > > On Jul 30, 2020, at 1:13 PM, Warren Parad <wparad@rhosys.ch> wrote: > > > >> Cookie storage of tokens does leave one open to CSRF attacks so it's >> certainly a trade-off. But CSRF is much easier to defense against that XSS >> and cookies are a better choice if the specific risk of having tokens >> stolen via XSS matters to your threat model. > > > I would assume if we included cookie language, it would explicitly specify *Secure; > HttpOnly; SameSite=Strict* as the recommendation, and then neither XSS > nor CSRF should be a problem (right?) > > > OAuth 2.1 isn't supposed to add new features that don't already exist, but >> this sounds like a good candidate to develop as an OAuth extension. > > > Is this really a *new feature* though? > > Okay, I'll submit that RFC 6749 does state the cookie wouldn't be created > by the AS. > >> 5.1. Successful Response >> <https://tools.ietf.org/html/rfc6749#section-5.1> >> <https://tools.ietf.org/html/rfc6749#section-5.1> The authorization >> server issues an access token and optional refresh >> <https://tools.ietf.org/html/rfc6749#section-5.1> token, and >> constructs the response by >> *adding the following parameters* >> <https://tools.ietf.org/html/rfc6749#section-5.1>* to the entity-body >> of the HTTP response* with a 200 (OK) status code: >> <https://tools.ietf.org/html/rfc6749#section-5.1> > > > However that wouldn't prevent a client using the password grant (I know I > said a bad word) or authorization code flow from creating the cookie to > contain that. Specifically > >> 7. Accessing Protected Resources >> The client accesses protected resources by presenting the access >> token to the resource server. The resource server MUST validate the >> access token and ensure that it has not expired and that its scope >> covers the requested resource. >> >> >> >> *The methods used by the resource server to validate the access token >> (as well as any error responses) are beyond the scope of this >> specification but generally involve an interaction or coordination >> between the resource server and the authorization server*. >> The method in which the client utilizes the access token to >> authenticate with the resource server depends on the type of access >> token issued by the authorization server. >> * Typically, it involves using the HTTP "Authorization" request header* >> field [RFC2617] with an >> authentication scheme defined by the specification of the access >> token type used, such as [RFC6750]. > > > So that's definitely some gray area. Although perhaps I'm missing a > relevant section. If we are going to go so far to detail a list of possible > RS bearer token possible locations (i.e. Header and Body), to what I assume > is to implicitly say *Don't use a query parameter*. It also suggests *Don't > use a cookie at all*, even with* SameSite=Strict*. Although maybe that is > the point. > > For my reference, what makes a *new feature* and what makes *an OAuth > extension?* > > Warren Parad > > Founder, CTO > Secure your user data and complete your authorization architecture. > Implement Authress <https://bit.ly/37SSO1p>. > > > On Thu, Jul 30, 2020 at 6:46 PM Aaron Parecki <aaron@parecki.com> wrote: > >> I haven't seen any OAuth drafts that talk about sending OAuth access >> tokens in HTTP cookies. OAuth 2.1 isn't supposed to add new features that >> don't already exist, but this sounds like a good candidate to develop as an >> OAuth extension. >> >> --- >> Aaron Parecki >> https://aaronparecki.com >> https://oauth2simplified.com >> >> On Thu, Jul 30, 2020 at 9:35 AM Jim Manico <jim@manicode.com >> <jim@manicode..com>> wrote: >> >>> In a browser, HTTPOnly cookies are the *only* location where an access >>> (or other) token can be stored in a way where it *cannot be stolen from >>> XSS*. >>> >>> It's a very strong place to store tokens from a security point of view. >>> >>> Cookie storage of tokens does leave one open to CSRF attacks so it's >>> certainly a trade-off. But CSRF is much easier to defense against that XSS >>> and cookies are a better choice if the specific risk of having tokens >>> stolen via XSS matters to your threat model. >>> >>> - Jim >>> On 7/30/20 11:43 AM, Warren Parad wrote: >>> >>> https://www.ietf.org/id/draft-ietf-oauth-v2-1-00.html#name-bearer-tokens >>> >>> It seems recently more and more common to pass the access_token to some >>> RS via a cookie, yet 7.2.1 says it defines two methods. I think we need >>> some RFC2119 >>> <https://www.ietf.org/id/draft-parecki-oauth-v2-1-03.html#RFC2119> keywords >>> here, to suggest that either SHOULD use one of these two, or MUST. And then >>> optionally state whether or not we recommend or reject the use of cookies >>> as a place for access tokens. It's also possible that the language threw me >>> off, because would an access token in a cookie be a bearer token, but no >>> matter, if I'm having this thought, then surely others have it as well, >>> right? >>> >>> <image.png> >>> >>> >>> Warren Parad >>> >>> Founder, CTO >>> Secure your user data and complete your authorization architecture. >>> Implement Authress <https://bit.ly/37SSO1p>. >>> >>> _______________________________________________ >>> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth >>> >>> -- >>> Jim Manico >>> Manicode Securityhttps://www.manicode.com >>> >>> _______________________________________________ >>> OAuth mailing list >>> OAuth@ietf.org >>> https://www.ietf.org/mailman/listinfo/oauth >>> >> _______________________________________________ > OAuth mailing list > OAuth@ietf.org > https://www.ietf.org/mailman/listinfo/oauth >
- [OAUTH-WG] Clarifying Bearer token usage OAuth 2.… Warren Parad
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Jim Manico
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Aaron Parecki
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Warren Parad
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Jim Manico
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Dick Hardt
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Dick Hardt
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Jim Manico
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Aaron Parecki
- Re: [OAUTH-WG] Clarifying Bearer token usage OAut… Jim Manico