Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit

n-sakimura <n-sakimura@nri.co.jp> Tue, 27 November 2018 08:10 UTC

Return-Path: <n-sakimura@nri.co.jp>
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 4518E130E14 for <oauth@ietfa.amsl.com>; Tue, 27 Nov 2018 00:10:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.7
X-Spam-Level:
X-Spam-Status: No, score=-1.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=nri365.onmicrosoft.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 RP4Y2fS0GcUr for <oauth@ietfa.amsl.com>; Tue, 27 Nov 2018 00:10:14 -0800 (PST)
Received: from nrifs01.index.or.jp (nrigw01.index.or.jp [133.250.250.1]) by ietfa.amsl.com (Postfix) with ESMTP id 88B35128CB7 for <oauth@ietf.org>; Tue, 27 Nov 2018 00:10:13 -0800 (PST)
Received: from nrimmfm052.index.or.jp (unknown [172.19.246.144]) by nrifs01.index.or.jp (Postfix) with ESMTP id 625DB77EE6; Tue, 27 Nov 2018 17:10:12 +0900 (JST)
Received: from index.or.jp (unknown [172.19.246.151]) by nrimmfm052.index.or.jp (Postfix) with ESMTP id 14D794E0046; Tue, 27 Nov 2018 17:10:12 +0900 (JST)
Received: from nriea05.index.or.jp (localhost.localdomain [127.0.0.1]) by pps.mf051 (8.15.0.59/8.15.0.59) with SMTP id wAR8ACx2012394; Tue, 27 Nov 2018 17:10:12 +0900
Received: from nrims00a.nri.co.jp ([192.50.135.11]) by nriea05.index.or.jp with ESMTP id wAR8ABJW012393; Tue, 27 Nov 2018 17:10:11 +0900
Received: from nrims00a.nri.co.jp (localhost.localdomain [127.0.0.1]) by nrims00a.nri.co.jp (Switch-3.3.4/Switch-3.3.4) with ESMTP id wAR8ABsS017481; Tue, 27 Nov 2018 17:10:11 +0900
Received: (from mailnull@localhost) by nrims00a.nri.co.jp (Switch-3.3.4/Switch-3.3.0/Submit) id wAR8AB60017479; Tue, 27 Nov 2018 17:10:11 +0900
X-Authentication-Warning: nrims00a.nri.co.jp: mailnull set sender to n-sakimura@nri.co.jp using -f
Received: from nrizmf15.index.or.jp ([172.100.25.24]) by nrims00a.nri.co.jp (Switch-3.3.4/Switch-3.3.4) with ESMTP id wAR8ABHv017475; Tue, 27 Nov 2018 17:10:11 +0900
Received: from CUEXE01PA.cu.nri.co.jp (192.51.23.31) by CUEXM04PA.cu.nri.co.jp (172.159.253.24) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Nov 2018 17:10:10 +0900
Received: from JPN01-TY1-obe.outbound.protection.outlook.com (23.103.139.180) by ex.nri.co.jp (192.51.23.33) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Nov 2018 17:10:10 +0900
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nri365.onmicrosoft.com; s=selector1-cu-nri-co-jp; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E0FGuC8cvo/sq2T13aVyxx5jBVd7lMBkW9eDZ+O9Acs=; b=yQHfVFGcL31uv+dHX6kWmUcxKztQfWLu9eW9Lgy12GxjWBeE+dzg2O+Q6B8d/b3rFhVqim6VVXT0DnwFt/3IukiRE6kFF9COyol7j1LWqjOjUKjTbimoJMvXhkRgpSr0e2xHhfyWj80bTTGgZ8Svuyi2KHxDEhTXSmf16mBoA9k=
Received: from OSBPR01MB2869.jpnprd01.prod.outlook.com (52.134.253.15) by OSBPR01MB1573.jpnprd01.prod.outlook.com (52.134.226.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.21; Tue, 27 Nov 2018 08:10:09 +0000
Received: from OSBPR01MB2869.jpnprd01.prod.outlook.com ([fe80::d1ae:ff36:e681:ce6c]) by OSBPR01MB2869.jpnprd01.prod.outlook.com ([fe80::d1ae:ff36:e681:ce6c%4]) with mapi id 15.20.1294.045; Tue, 27 Nov 2018 08:10:09 +0000
From: n-sakimura <n-sakimura@nri.co.jp>
To: John Bradley <ve7jtb@ve7jtb.com>, Rifaat Shekh-Yusef <rifaat.ietf@gmail.com>
CC: IETF oauth WG <oauth@ietf.org>
Thread-Topic: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit
Thread-Index: AdR/8wsdlCSgLoNZTem+1MxrAorhbwAYRRbAABPdaIAAES+SAAAK3nrAAAF3OoAAAbNqgAAVmmqAAAmlbIAAICS4gACl6t6AAAvL3oAAAb2yAAAAp/CAAAKUH4AAAhtsgABJqsog
Date: Tue, 27 Nov 2018 08:10:08 +0000
Message-ID: <OSBPR01MB2869CF11BB05CC93E092044AF9D00@OSBPR01MB2869.jpnprd01.prod.outlook.com>
References: <VI1PR0801MB211266BA6F6E06FFB3081425FAD80@VI1PR0801MB2112.eurprd08.prod.outlook.com> <BL0PR00MB029244CACC634E2D2E923B77F5D80@BL0PR00MB0292.namprd00.prod.outlook.com> <61A6D327-D4EE-4954-B57F-4FF42BB22E7E@lodderstedt.net> <90e0cb05-5245-1a67-4eca-16996e7db2fc@ve7jtb.com> <DM5PR00MB02937F639067DC15DC9D80D4F5D90@DM5PR00MB0293.namprd00.prod.outlook.com> <3485431a-74fc-408e-5360-c87c4bafc1fa@aol.com> <CAANoGhKNnQ-o-bBT+kL71d=pjAC_C6qS-2a5TCgE8CnzL1f6cA@mail.gmail.com> <ADF0AB95-6B6A-4535-B22D-29E69B216CE7@lodderstedt.net> <21a00a22-0524-07de-ac0e-77d597e5a9a1@aol.com> <DDC7F811-9F95-48B4-AC80-C92C638B7690@lodderstedt.net> <CA+iA6uhGnuYFboB+afq2W46OO5mHcLCby7zLkDA2bxy-9=CZBg@mail.gmail.com> <0263F10B-0CDA-4CE4-A5B0-06221C1673B8@lodderstedt.net> <CAGL6ep+LpiMmRv6EUs6WWdL90sZ=AQwxRaFXJFbp=755G=yU8w@mail.gmail.com> <465F5F67-E2FB-4A6B-B7AD-D1402FE7AD60@lodderstedt.net> <CAGL6epJX5aq3t9-c2rO9NjYjQCM7QxecM6fVH4gcNtHUdXmGAQ@mail.gmail.com> <CAANoGhK2d21G7jwBS-+vd9_szB90dgB79S4goM2e0pTufkZWwg@mail.gmail.com>
In-Reply-To: <CAANoGhK2d21G7jwBS-+vd9_szB90dgB79S4goM2e0pTufkZWwg@mail.gmail.com>
Accept-Language: ja-JP, en-US
Content-Language: ja-JP
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailadviser: 20170719
authentication-results: spf=none (sender IP is ) smtp.mailfrom=n-sakimura@cu.nri.co.jp;
x-originating-ip: [37.71.28.34]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; OSBPR01MB1573; 6:HdW/hAd7Hk816Kd7QPoiq3cN5rzlMBmGWSm75fE17q77FjlS3uVwEyG+NskeQKU/oB6JQLCx4CId/iYs/D+aDtmqoutBEoV2z0BSxZwt1pJO4kIzXPcIr0sS/F2gl22kuMEi0dqjisiLehgRecBePpprz8KzaOf6wCrgowRivv+skBMEtVsRvB5INgagaofXxAdnpf2fp/32ZFXj2Y0+aC3imvYhrJQ6S+taKLtFCLxogkQJWZPXcGxLJDuSDHiCB2U64Hh0CscvzvbK87tN+GHf/dISBerySjBtPXO2DVtJePNB26g1KRR9FmT8YSWva6SKcoAYJf7CWM3ijkdEJcaRYFBBsmfe93SYiAKXdCK66/Tu+HOzfJghuaQDlCb3qhFRB5v4cevRiZMO5LY3WkJBXvLF6B8pJ4ZRVhNBOjO71P+mguCGck4BjXYtctRA38GKHixYfUzuFLBikBTx/w==; 5:VUlbCkMCGuWo7d+ogRc5ivZmFBBPaiPIX/kma8A/kqAZlhJhvBffNAjDYUBJyu+cw8uam5xe6PCCviscYLSTsZErpB2ZgYNEUWloUPw4pHLrrKrOHoRW95wwEwso2L96dXA30nJIxxELg5Wm8wKfKdv8+YKCZsHmYn3zoqaSKuM=; 7:d2x1swWjVE6ucc1qKINuJ83vyQoC5qpnRJS0X8r4tiInCKMwqz7GPeBOdjPEqs83ZHSnyZWa7+nyTD4cVNE1GVefC/w5+n60cQ+Gyn2VGsdgo3OBrWfimJTaSeEgWyyCHEUD+q4BAmMxDYNT2m0yuA==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 2fef886a-ab5e-4ddb-45be-08d6543fbf6c
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:OSBPR01MB1573;
x-ms-traffictypediagnostic: OSBPR01MB1573:
x-microsoft-antispam-prvs: <OSBPR01MB15731AF74F3E10762413FBACF9D00@OSBPR01MB1573.jpnprd01.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(192374486261705)(158342451672863)(85827821059158)(166708455590820)(111885846020525)(148322886591682)(47647156867600)(149059832740258)(31418570063057)(21532816269658);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(3231443)(944501410)(52105112)(10201501046)(148016)(149066)(150057)(6041310)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(2016111802025)(6043046)(201708071742011)(7699051)(76991095); SRVR:OSBPR01MB1573; BCL:0; PCL:0; RULEID:; SRVR:OSBPR01MB1573;
x-forefront-prvs: 086943A159
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(39840400004)(346002)(376002)(136003)(366004)(51444003)(53754006)(40434004)(199004)(189003)(8676002)(71200400001)(256004)(97736004)(476003)(86362001)(74482002)(966005)(486006)(14454004)(102836004)(74316002)(105586002)(2906002)(110136005)(81156014)(39060400002)(229853002)(53546011)(14444005)(53386004)(71190400001)(6306002)(66066001)(9686003)(6436002)(66574009)(76176011)(316002)(26005)(106356001)(55016002)(7110500001)(15650500001)(5024004)(2420400007)(6116002)(4326008)(33656002)(6246003)(93886005)(186003)(790700001)(5660300001)(21615005)(7736002)(561944003)(11346002)(54896002)(606006)(4744004)(99286004)(25786009)(3846002)(53936002)(7696005)(236005)(508600001)(446003)(68736007)(6506007)(81166006)(8936002); DIR:OUT; SFP:1102; SCL:1; SRVR:OSBPR01MB1573; H:OSBPR01MB2869.jpnprd01.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:0; MX:1;
received-spf: None (protection.outlook.com: cu.nri.co.jp does not designate permitted sender hosts)
x-microsoft-antispam-message-info: ckuDc6YsUn3rTRoKM+MyIb1Okn8nSR+mf6v6d0fApo4ETbYyDGO5FEjqEAs0pB6qNw8UeRibFzcdBS0THXFHPHL36JlapEPMkKWhFoSUr1sf5oUwKRDxBtCJ+ItPMJYqrOCyMQaLQFT9QfT95Nx057Wy8L5aThsvCBaLEED2WBULY9i7RHjf8QGp2sBrB9NPwOfy+L7H7vJ4oxegLeS/DSX+wSZHlXUm9xDJMFKdxeSh/YyK3viTtOGGiW7+aehkUc0L6VHU/EQjF7fbwEmEIxRh4IM+cAoSCIvvF2WtSBR5OEzYf0gwZhh5cTSW6nvXcC3Xrh11l49wwTk+YU56o/ex3y9BkbjmaXMAWFzkjVo=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_OSBPR01MB2869CF11BB05CC93E092044AF9D00OSBPR01MB2869jpnp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 2fef886a-ab5e-4ddb-45be-08d6543fbf6c
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2018 08:10:08.9299 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: e3e360d9-7e7f-48d5-ac33-3c5de61f0a75
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSBPR01MB1573
X-OrganizationHeadersPreserved: OSBPR01MB1573.jpnprd01.prod.outlook.com
X-CrossPremisesHeadersPromoted: CUEXE01PA.cu.nri.co.jp
X-CrossPremisesHeadersFiltered: CUEXE01PA.cu.nri.co.jp
X-OriginatorOrg: cu.nri.co.jp
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/PQiJAq1mTLhEUzrlt6W0guErWGQ>
Subject: Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit
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: Tue, 27 Nov 2018 08:10:18 -0000

I am not sure about it. There are no confidential implicit grant client that uses bearer token is correct, but if the token is sender constrained, it can act as a confidential client.

Think of the case where an OP that is unreacheable directly from the client but only indirectly through the browser, e.g., Self-Issued OP and AS that are behind the corporate firewall. Then, such OP/AS can return a sender constrained token to the full confidential client that can use its keys to authenticate against the resource server when using the sender constrained access token. I categorize it as a confidential client.

So, IMHO, Rifaat’s point is correct.

Nat

From: OAuth <oauth-bounces@ietf.org> On Behalf Of John Bradley
Sent: Monday, November 26, 2018 5:56 AM
To: Rifaat Shekh-Yusef <rifaat.ietf@gmail.com>
Cc: IETF oauth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit

There is no such thing as a implicit confidential client.

Implicit clients are not authenticated, so are not confidential.

You could have a hybrid client using the "code token" response type that is confidential for the code flow but i don't think anyone would consider the token returned from the authorization endpoint as confidential.

That should have been hybrid rather than confidential I suspect.  Perhaps a errata could be looked at.

John B.

On Sun, Nov 25, 2018, 4:55 PM Rifaat Shekh-Yusef <rifaat.ietf@gmail.com<mailto:rifaat.ietf@gmail.com> wrote:
RFC6749, Section 3.1.2.2, implies that Implicit is not limited to public clients:

3.1.2.2<https://tools.ietf.org/html/rfc6749#section-3.1.2.2>.  Registration Requirements

   The authorization server MUST require the following clients to

   register their redirection endpoint:

   o  Public clients.

   o  Confidential clients utilizing the implicit grant type...


I do not know if anybody is using Implicit with Confidential clients, but just in case, you might want to make it clear that your recommendations are specifically for public clients.

Regards,
 Rifaat




On Sun, Nov 25, 2018 at 1:41 PM Torsten Lodderstedt <torsten@lodderstedt.net<mailto:torsten@lodderstedt.net>> wrote:
Hi Rifaat,

this is a recommendation to anyone using implicit now. Implicit can only be used with public clients, so one could interpret it that way. I could also envision a SPA to use a backend, which in turn is a confidential client. There were some posts about this topic on the list recently.

Does this answer your question?

kind regards,
Torsten.

> Am 25.11.2018 um 19:22 schrieb Rifaat Shekh-Yusef <rifaat.ietf@gmail.com<mailto:rifaat.ietf@gmail.com>>:
>
> Hi Torsten,
>
> I am assuming that these recommendations are mainly for Public Clients, not Confidential Clients; is that correct?
>
> Regards,
>  Rifaat
>
>
> On Sun, Nov 25, 2018 at 12:33 PM Torsten Lodderstedt <torsten@lodderstedt.net<mailto:torsten@lodderstedt.net>> wrote:
> Hi all,
>
> I would like to state again what the proposal of the authors of the Security BCP is:
>
> Here is the respective text from the draft:
>
> ——
>
> 2.1.2.  Implicit Grant
>
>    The implicit grant (response type "token") and other response types
>    causing the authorization server to issue access tokens in the
>    authorization response are vulnerable to access token leakage and
>    access token replay as described in Section 3.1, Section 3.2, Section 3.3, and Section 3.6.
>
>    Moreover, no viable mechanism exists to cryptographically bind access
>    tokens issued in the authorization response to a certain client as it
>    is recommended in Section 2.2.  This makes replay detection for such
>    access tokens at resource servers impossible.
>
>    In order to avoid these issues, Clients SHOULD NOT use the implicit
>    grant or any other response type causing the authorization server to
>    issue an access token in the authorization response.
>
>    Clients SHOULD instead use the response type "code" (aka
>    authorization code grant type) as specified in Section 2.1.1 or any
>    other response type that causes the authorization server to issue
>    access tokens in the token response.  This allows the authorization
>    server to detect replay attempts and generally reduces the attack
>    surface since access tokens are not exposed in URLs.  It also allows
>    the authorization server to sender-constrain the issued tokens.
> ——
>
> In my observation, discouraging implicit seems to be the less controversial issue.
>
> „or any other response type causing the authorization server to issue an access token in the authorization response.“ in the 3rd paragraph caused discussions because it suggests to discourage developers from using ANY response type issuing access tokens in the authorization response. This includes OIDC’s response types „token id_token“, „code token“ & „code token id_token“, where at least  „token id_token“ is used in the wild to implement SPAs.
>
> Why did we come up with this proposal given at least „token id_token“ & „code token id_token“ protect against injection?
>
> Two reasons:
>
> 1) „token id_token“ does not support sender constrained tokens. Also use of refresh tokens to frequently issue new live-time and privilege restricted access tokens is not supported. „code token id_token“ seems more complex than just „code“+pkce for achieving the same goal.
>
> 2) Protection against token leakage is rather thin and fragile. There is just a single line of defense (CSP, open redirection prevention, browser history manipulation) implemented by the client.
>
> Daniel and I collected some more information and argument at https://github.com/tlodderstedt/oauth2_spa/blob/master/README.md that you might like to give a read.
>
> My conclusion after 2 weeks of intensive discussions with SPA developers (mostly on twitter): code+pkce is the more secure, simpler, and more versatile approach to (also) implement SPAs. I prefer to approach developers with a clean and robust message instead of a lengthy description of what needs to go right in order to secure a SPA using OAuth. That’s why I think code+pkce should be the recommendation of our working group.
>
> So please vote in favor of our proposal. I think that’s a huge improvement for OAuth.
>
> kind regards,
> Torsten.
>
>
> > Am 25.11.2018 um 12:55 schrieb Hans Zandbelt <hans.zandbelt@zmartzone.eu<mailto:hans.zandbelt@zmartzone.eu>>:
> >
> > I strongly support the recommendation of using code instead of implicit. I do so based on my own experience in the field [1] and stick to that also after reading the comments and (what I would call) workarounds on this thread.
> >
> > Hans.
> >
> > [1] https://hanszandbelt.wordpress.com/2017/02/24/openid-connect-for-single-page-applications/
> >
> > On Thu, Nov 22, 2018 at 5:45 AM Torsten Lodderstedt <torsten@lodderstedt.net<mailto:torsten@lodderstedt.net>> wrote:
> > that’s certainly true, but that might by a web server with static content only.
> >
> > If the server is a real backend, there is even less reasons to use a implicit or hybrid. No even a performance gain in comparison to code.
> >
> > Am 21..11.2018 um 14:24 schrieb George Fletcher <gffletch@aol.com<mailto:gffletch@aol.com>>:
> >
> >> An SPA has a backend because it has to be loaded from somewhere :)
> >>
> >> On 11/21/18 3:47 AM, Torsten Lodderstedt wrote:
> >>> We had a discussion about this topic on Twitter https://twitter.com/Apl3b/status/1064854507606208513
> >>>
> >>>
> >>> Outcome is POST requires a backend to receive the request so it’s not a viable solution for SPAs.
> >>>
> >>>
> >>>> Am 20.11.2018 um 23:29 schrieb John Bradley <ve7jtb@ve7jtb.com<mailto:ve7jtb@ve7jtb.com>>
> >>>> :
> >>>>
> >>>> Post response works OK for server based clients.  I don't think POST works for single page applications.
> >>>>
> >>>> Basically that would be something more like postmessage between two JS apps.
> >>>>
> >>>> Postmessage also has security issues passing a access token and leaking.
> >>>>
> >>>> Perhaps someone more familiar with SPA can comment on POST.
> >>>>
> >>>> John B.
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Nov 20, 2018, 6:40 PM George Fletcher <
> >>>> gffletch@aol.com<mailto:gffletch@aol.com>
> >>>>  wrote:
> >>>> Hi Mike,
> >>>>
> >>>> The Form Post Response Mode keeps the access_token out of the URL, but it doesn't prevent the token from traversing through the browser. So a man-in-the-browser attack may be able to intercept the values. It should help with leakage in logs.
> >>>>
> >>>> Thanks,
> >>>> George
> >>>>
> >>>> On 11/20/18 4:00 PM, Mike Jones wrote:
> >>>>
> >>>>> Next question – doesn’t using the Form Post Response Mode https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html
> >>>>>  mitigate the threats you’re describing below John?  If so, I believe the Security Topics draft should say this.
> >>>>>
> >>>>>
> >>>>>
> >>>>> I believe we owe it to readers to present the complete picture, which is why I believe that describing profiles using ID Tokens and the Form Post Response Mode are in scope.
> >>>>>
> >>>>>
> >>>>>
> >>>>>                                                        -- Mike
> >>>>>
> >>>>>
> >>>>>
> >>>>> From: OAuth
> >>>>> <oauth-bounces@ietf.org<mailto:oauth-bounces@ietf.org>>
> >>>>>  On Behalf Of John Bradley
> >>>>> Sent: Tuesday, November 20, 2018 7:47 AM
> >>>>> To:
> >>>>> oauth@ietf.org<mailto:oauth@ietf.org>
> >>>>>
> >>>>> Subject: Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit
> >>>>>
> >>>>>
> >>>>>
> >>>>> Yes the at_hash protects the client from accepting an injected AT.
> >>>>>
> >>>>> Unfortunately it doesn't do anything to protect against leakage in logs or redirects.
> >>>>>
> >>>>> So without the AT using some sort of POP mechanism it is hard to say sending it in a redirect is a good security practice.
> >>>>>
> >>>>> John B.
> >>>>>
> >>>>> On 11/20/2018 4:35 AM, Torsten Lodderstedt wrote:
> >>>>>
> >>>>> Hi Mike,
> >>>>>
> >>>>> I agree that OIDC hybrid flows offer additional security over the OAuth implicit grant and are used in the wild. On my slides and in the initial version of the new section, we had included the hybrid OIDC flows because of their known token injection countermeasures.
> >>>>>
> >>>>> I nevertheless feel very uncomfortable to recommend those flows and any flow issuing access tokens in the front channel. In the course of the detailed review of the new text we realized two issues:
> >>>>>
> >>>>> 1) Since the access token is exposed in the URL, such flows possess a significantly higher risk to leak the access token (e.g. through browser history, open redirection and even referrer headers) than the code grant.
> >>>>> 2) There is no viable way to sender constrain access tokens issued in the front channel. Given the WG decided to recommend use of sender constraint tokens (
> >>>>> https://tools.ietf.org/html/draft-ietf-oauth-security-topics-09#section-2...2
> >>>>> ), it seems contradictory to recommend response types not supporting such an approach.
> >>>>>
> >>>>> kind regards,
> >>>>> Torsten.
> >>>>>
> >>>>> Am 19.11.2018 um 23:13 schrieb Mike Jones
> >>>>> <Michael.Jones=40microsoft.com@dmarc.ietf.org<mailto:40microsoft...com@dmarc.ietf.org>>
> >>>>> :
> >>>>>
> >>>>> This description of the situation is an oversimplification..  OpenID Connect secures the implicit flow against token injection attacks by including the at_hash (access token hash) in the ID Token, enabling the client to validate that the access token was created by the issuer in the ID Token (which is also the OAuth Issuer, as described in RFC 8414).  (Note that this mitigation was described in draft-ietf-oauth-mix-up-mitigation.)
> >>>>>
> >>>>> Given the prevalence of this known-good solution for securing the implicit flow, I would request that the draft be updated to describe this mitigation.  At the same time, I’m fine with the draft recommending the code flow over the implicit flow when this mitigation is not used.
> >>>>>
> >>>>>                                                                 Thank you,
> >>>>>                                                                 -- Mike
> >>>>>
> >>>>> From: OAuth
> >>>>> <oauth-bounces@ietf.org<mailto:oauth-bounces@ietf.org>>
> >>>>>  On Behalf Of Hannes Tschofenig
> >>>>> Sent: Monday, November 19, 2018 2:34 AM
> >>>>> To: oauth
> >>>>> <oauth@ietf.org<mailto:oauth@ietf.org>>
> >>>>>
> >>>>> Subject: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit
> >>>>>
> >>>>> Hi all,
> >>>>>
> >>>>> The authors of the OAuth Security Topics draft came to the conclusion that it is not possible to adequately secure the implicit flow against token injection since potential solutions like token binding or JARM are in an early stage of adoption. For this reason, and since CORS allows browser-based apps to send requests to the token endpoint, Torsten suggested to use the authorization code instead of the implicit grant in call cases in his presentation (seehttps://
> >>>>> datatracker.ietf.org/meeting/103/materials/slides-103-oauth-sessb-draft-ietf-oauth-security-topics-01<http://datatracker.ietf.org/meeting/103/materials/slides-103-oauth-sessb-draft-ietf-oauth-security-topics-01>
> >>>>> ).
> >>>>>
> >>>>> A hum in the room at IETF#103 concluded strong support for his recommendations. We would like to confirm the discussion on the list.
> >>>>>
> >>>>> Please provide a response by December 3rd.
> >>>>>
> >>>>> Ciao
> >>>>> Hannes & Rifaat
> >>>>>
> >>>>> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> >>>>> _______________________________________________
> >>>>> OAuth mailing list
> >>>>>
> >>>>> OAuth@ietf.org<mailto:OAuth@ietf.org>
> >>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> OAuth mailing list
> >>>>>
> >>>>> OAuth@ietf.org<mailto:OAuth@ietf.org>
> >>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> OAuth mailing list
> >>>>>
> >>>>>
> >>>>> OAuth@ietf.org<mailto:OAuth@ietf.org>
> >>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>> _______________________________________________
> >>>> OAuth mailing list
> >>>>
> >>>> OAuth@ietf.org<mailto:OAuth@ietf.org>
> >>>> https://www.ietf.org/mailman/listinfo/oauth
> >>
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org<mailto:OAuth@ietf.org>
> > https://www.ietf.org/mailman/listinfo/oauth
> >
> >
> > --
> > hans.zandbelt@zmartzone.eu<mailto:hans.zandbelt@zmartzone.eu>
> > ZmartZone IAM - www.zmartzone.eu<http://www.zmartzone.eu>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org<mailto:OAuth@ietf.org>
> https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org<mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth