Re: [OAUTH-WG] OAuth 2.1 - require PKCE?

Mike Jones <Michael.Jones@microsoft.com> Wed, 06 May 2020 20:39 UTC

Return-Path: <Michael.Jones@microsoft.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 99C203A0B0C for <oauth@ietfa.amsl.com>; Wed, 6 May 2020 13:39:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 jVcr7V02h0C2 for <oauth@ietfa.amsl.com>; Wed, 6 May 2020 13:39:23 -0700 (PDT)
Received: from NAM06-DM3-obe.outbound.protection.outlook.com (mail-eopbgr640123.outbound.protection.outlook.com [40.107.64.123]) (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 A6D073A0B0E for <oauth@ietf.org>; Wed, 6 May 2020 13:39:22 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OEGwVLEjaQ/HvnLKam4mrsoVZgKuv+ZkQU3/DfKyQV3VXTbmiI0NruBetPRUQFgepABg+sGA22T9rxIeD4KPAZZ0LGd9Fs4xKMecyDhFwC1rI6PyJ/PpWFbfzg67oT/KLf2LoMc8cNJCxgPDDK1/ROI8Y804PNsWJAVHePlrQDv0DMNKXq5A+AHly+xd7gwd8Pk5wtdknt2qeQxWQpgb35/8N5V/5gIRNY2AoSCuJFmi2e2/poD248zcDuz/gdRVewEDcPwR6GeMFuwtsZVZcpWHnq1pmXfMb2HNLZcLPs4druaKJyXZF0FI58/RsFwf0yqP3DEvYaMa219U5DFDPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8bNSmi5iF43kffgqXQh7zi4wOeqxkF3/QykFh3UeNhw=; b=jg4V9YSoThWhWOf9wOJm06sleioqWDOHVoONRmI83VJaENjnavPJcVzh37B5wdymRDuffQS/2xnYIMU0ThiCw3tDdxaOlQyOrq7hQrxsWwVl5kBa5xfyLPQ5qY7VEKuHitWJ5k3k/JUdNctHBAucgx0y6BuwIpihwJS7iUAg9UrsGRC6Isy06cFWG6lSjjQ+jCDffZ8Ofhw6+HLYj9t2nRiigqSs9/BGAsBdfSvDVweOkl1fZmP0QCu4LHOTd0dgq49Bq8zBFfxrSg4kw//BgvAGzCW3MlZCRSNjAgenTdT0F5xnAR+NzKcsfQUqTQ8tTkpn39faLHdTWaygq22RsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8bNSmi5iF43kffgqXQh7zi4wOeqxkF3/QykFh3UeNhw=; b=Yh7w9nSzh1MIwZ5UweZ1p0n1QC6wog5PBmSikP+g9mRlXQvk67o55w7NdgcGd7qPSPfRt4rg/QggSi7UTyit3THbSm2IeptfRd30iwkXMPU6NfUQrETTsfNdDQA2pMpoEg0pPw6QQrtu8EEBUNnhgwWVnOrUnANYh6+YWJcT53k=
Received: from CH2PR00MB0679.namprd00.prod.outlook.com (2603:10b6:610:af::7) by CH2PR00MB0841.namprd00.prod.outlook.com (2603:10b6:610:6f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3012.0; Wed, 6 May 2020 20:39:20 +0000
Received: from CH2PR00MB0679.namprd00.prod.outlook.com ([fe80::c8f1:c1e0:dcd6:53b8]) by CH2PR00MB0679.namprd00.prod.outlook.com ([fe80::c8f1:c1e0:dcd6:53b8%9]) with mapi id 15.20.3015.000; Wed, 6 May 2020 20:39:20 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Phillip Hunt <phil.hunt@independentid.com>
CC: Aaron Parecki <aaron@parecki.com>, Steinar Noem <steinar@udelt.no>, "oauth@ietf.org" <oauth@ietf.org>
Thread-Topic: [OAUTH-WG] OAuth 2.1 - require PKCE?
Thread-Index: AdYj5mo5/cX2OW7CQoCZ/yIhAVjibg==
Date: Wed, 6 May 2020 20:39:20 +0000
Message-ID: <CH2PR00MB067920C5AE38FBC1A47E3CE1F5A40@CH2PR00MB0679.namprd00.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=5d029ee2-9f74-4f68-af22-0000f3f2c840; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2020-05-06T20:36:56Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: independentid.com; dkim=none (message not signed) header.d=none;independentid.com; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [50.47.87.252]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 34bf98a5-830a-45d0-6ad8-08d7f1fd8dea
x-ms-traffictypediagnostic: CH2PR00MB0841:
x-microsoft-antispam-prvs: <CH2PR00MB084162653EF48548E20A1EAEF5A40@CH2PR00MB0841.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 03950F25EC
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: fnWqKxveQw2Fn9DMDIJ0nVwcLORtZhcNbgs2VsnMIiZfjSyI6RtfIiOneu/XGrqwdakYxe9wdGUtoxTn1n7pMzkTbFAzLsgfQr2XsMMiRTKIqx2bd5jNBfWkxdSQVIEAaQmf/PRMDXQ3Y2O3Zz1ecb1WlXls/A6q5nTaq4adVFdAjYnTJClntz0Zrch1KSuo/WEpM+/ZaO5eobzAuEH9P2nNreFlG8gYIzNZ+RS4B2TOkVVLWixJVAolq9uSZ4E0df3EIKCUJcpcvbZhJb2vDtiio0l8+nk7JFWN1EDwoSEuOe+Kj/vV6eR8dLYG8t8R8zMhzrGlJuIgj1PV7i0DsbbUhdOonXrzVaWOW7OzNnRnqZb6ks2t4NdB+bZLwlte/bcAIUMyCfBG0tM1WVngcn/ulpwKspl7NpaRHvu71Y0UeOmY2tm8x8rgrSuTDTDLKYnLuXWRNdDRPsfFXwokfBuG1bGR57BiII3Hj6qKCf7almiymAJfE6OkMngZOre7YYA8+7g5WqzGC1CPPtBqKA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR00MB0679.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(136003)(366004)(346002)(376002)(39860400002)(33430700001)(26005)(7696005)(186003)(55016002)(64756008)(82960400001)(82950400001)(66446008)(10290500003)(76116006)(966005)(66574014)(9686003)(66476007)(4326008)(6506007)(8990500004)(66946007)(478600001)(2906002)(33440700001)(53546011)(66556008)(5660300002)(6916009)(8676002)(316002)(8936002)(54906003)(166002)(71200400001)(33656002)(52536014)(86362001)(99710200001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: PEUHgZNwI9fWcUPpbmsC6szEMaJUz8V/ocAv1FcS0a4pes+TC0SHOwgISlxgMsoazMJzaeRNpPLy5ykGa7pChavI2kARDBG+BJAtctk4DhNysaoHWCApQ5Nf7o00o/unvXD5mpIDi8Lq5j3Hc+YojjtfT+lCv3o5PRnN8kPcvUZVEKO279LYAez1Li2jOIn6WCXLfOU4aVcJj/nOxffJwGwwRgGDgjBslM5xLXmN1seoJax6m/hHRaP1fAr/PzP4OGNnJ+pTbxoXcu8Ng80l4pUtje8z43nVeZVw9qqCcO9Fg6KqMe+ViIJ4nCmIh7Fy2teb8d16A68kH3GFRME9DHbf0LNBxY+2buwL6YM2vvd+LCbERLYagvApmqpNKbezryyKmQJDelhDNJ+K09zViCIbQLUQsgwhUrt1QZ3PO0u0Umnp7y73UXlD8btfglrXGq+6vPlX9BGKoCo9SUDqDZj3M6Zf9YZ6CX9sk0C95GvNJZjYQ+Irl1hnukt9k8KVFgA/C2DAp1fDvf1AIxGmSU/VdMfUTfOCIHrSmmskyiqYJia60N4PlvSKu3woNBxXeVB2g1YMAdeIeC5YH/VTl9WdarUMmdBjRxjUKqRFZFUMULbgxZtMutlMw32KmLYTbOhKrxhtaMBP+hhxS1gCaSiCBBSGZuofPnr06TcxMePSGSFOzpQIvQyNKLkSVmv3LB6KP1rYYKQmJBstJOPSMfXcM/5p/wXkdIvIBuapWMr9qfzImlaPuX1uzpV2iOaRvVhhcsS5lebhKluax9vd4q8dbEGIF+Z+IzHuiXA91rU=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_CH2PR00MB067920C5AE38FBC1A47E3CE1F5A40CH2PR00MB0679namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CH2PR00MB0679.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 34bf98a5-830a-45d0-6ad8-08d7f1fd8dea
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2020 20:39:20.5199 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: HcZ6ezQ/MM8oTTsFo9gMH9r1S0G5bL1k3r50eXpLajK9tVYSmxpVAcBaU67R6qkCkA7tubk6vzPgkHDHcbtVug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR00MB0841
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/hGnw4NUReMBmpnX6DmX02zm4JBE>
Subject: Re: [OAUTH-WG] OAuth 2.1 - require PKCE?
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: Wed, 06 May 2020 20:39:26 -0000

It could, but that would require an explicit decision by the OpenID Connect working group to make existing RPs incompatible with new OPs, breaking interoperability.  That’s not a decision we should make lightly or without a compelling reason to do so.

                                                       -- Mike

From: Phillip Hunt <phil.hunt@independentid.com>
Sent: Wednesday, May 6, 2020 1:16 PM
To: Mike Jones <Michael.Jones@microsoft.com>
Cc: Aaron Parecki <aaron@parecki.com>om>; Steinar Noem <steinar@udelt.no>no>; oauth@ietf.org
Subject: Re: [OAUTH-WG] OAuth 2.1 - require PKCE?

Why couldn’t OIDC evolve as a spec to conform and match FAPI and 2.1?
Phil


On May 6, 2020, at 12:34 PM, Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>> wrote:

Yes, FAPI requires PKCE, which is great.  Many of its requirements come from OpenID Connect but some of them are intentionally incompatible – such as requiring that Basic authentication not be supported, whereas Connect requires that it be supported.  It’s a different ecosystem with different requirements.

Don’t get me wrong, I support PKCE where it makes sense, such as when you’re doing bare OAuth without OpenID Connect.  But trying to impose an unnecessary requirement on a working and secure ecosystem will just create grief for us and our customers and lessen our credibility as stewards of the OAuth ecosystem.

                                                       -- Mike

From: Aaron Parecki <aaron@parecki.com<mailto:aaron@parecki.com>>
Sent: Wednesday, May 6, 2020 12:29 PM
To: Steinar Noem <steinar@udelt.no<mailto:steinar@udelt.no>>
Cc: Phillip Hunt <phil.hunt@independentid.com<mailto:phil.hunt@independentid.com>>; Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>>; oauth@ietf.org<mailto:oauth@ietf.org>
Subject: Re: [OAUTH-WG] OAuth 2.1 - require PKCE?

I should add that even some OpenID Connect profiles require PKCE, such as FAPI:

https://openid.net/specs/openid-financial-api-part-1.html#authorization-server

So the precedent for requiring PKCE already exists within some OpenID Connect profiles.

On Wed, May 6, 2020 at 12:23 PM Aaron Parecki <aaron@parecki.com<mailto:aaron@parecki.com>> wrote:
Yes, and also, many of those providers very likely already support PKCE already. Skimming through that list of certified OPs, I recognize many names there from providers that I know support PKCE.

On Wed, May 6, 2020 at 12:18 PM Steinar Noem <steinar@udelt.no<mailto:steinar@udelt.no>> wrote:
So, wouldn't a MUST just mean that we would have some OPs that are 2.1 compliant and some that aren't?

ons. 6. mai 2020 kl. 21:12 skrev Phillip Hunt <phil.hunt@independentid.com<mailto:phil.hunt@independentid.com>>:
Mike,

The point of 2.1 is to raise the security bar..

Yes it adds new MUST requirements.

But what about OIDC would break other than required implementation of PKCE to support 2.1?

Eg Would additional signaling be required to facilitate interoperability and migration between versions? Would that be an oauth issue or an OIDC one?

Phil



On May 6, 2020, at 11:56 AM, Aaron Parecki <aaron@parecki.com<mailto:aaron@parecki.com>> wrote:

> In particular, authorization servers shouldn’t be required to support PKCE when they already support the OpenID Connect nonce.

The Security BCP already requires that ASs support PKCE: https://tools.ietf.org/html/draft-ietf-oauth-security-topics-15#section-2.1.1 Are you suggesting that the Security BCP change that requirement as well? If so, that's a discussion that needs to be had ASAP. If not, then that's an implicit statement that it's okay for OpenID Connect implementations to not be best-practice OAuth implementations. And if that's the case, then I also think it's acceptable that they are not complete OAuth 2.1 implementations either.






On Wed, May 6, 2020 at 11:21 AM Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org<mailto:40microsoft.com@dmarc.ietf.org>> wrote:
The disadvantage of requiring PKCE for OpenID Connect implementations is that you’re trying to add a normative requirement that’s not required of OpenID Connect deployments today, which would bifurcate the ecosystem.  There are hundreds of implementations (including the 141 certified ones at https://openid.net/certification/), none of which have ever been required to support PKCE.  Therefore, most don’t.

Per feedback already provided, I believe that OAuth 2.1 should align with the guidance already in the draft Security BCP, requiring EITHER the use of PKCE or the OpenID Connect nonce.  Trying to retroactively impose unnecessary requirements on existing deployments is unlikely to succeed and will significantly reduce the relevance of the OAuth 2.1 effort.

In particular, authorization servers shouldn’t be required to support PKCE when they already support the OpenID Connect nonce.  And clients shouldn’t reject responses from servers that don’t support PKCE when they do contain the OpenID Connect nonce.  Doing so would unnecessarily break things and create confusion in the marketplace.

                                                          -- Mike

From: OAuth <oauth-bounces@ietf.org<mailto:oauth-bounces@ietf.org>> On Behalf Of Dick Hardt
Sent: Wednesday, May 6, 2020 10:48 AM
To: oauth@ietf.org<mailto:oauth@ietf.org>
Subject: [OAUTH-WG] OAuth 2.1 - require PKCE?

Hello!

We would like to have PKCE be a MUST in OAuth 2.1 code flows. This is best practice for OAuth 2.0. It is not common in OpenID Connect servers as the nonce solves some of the issues that PKCE protects against. We think that most OpenID Connect implementations also support OAuth 2.0, and hence have support for PKCE if following best practices.

The advantages or requiring PKCE are:

- a simpler programming model across all OAuth applications and profiles as they all use PKCE

- reduced attack surface when using  S256 as a fingerprint of the verifier is sent through the browser instead of the clear text value

- enforcement by AS not client - makes it easier to handle for client developers and AS can ensure the check is conducted

What are disadvantages besides the potential impact to OpenID Connect deployments? How significant is that impact?

Dick, Aaron, and Torsten

[https://mailfoogae..appspot.com/t?sender=aZGljay5oYXJkdEBnbWFpbC5jb20%3D&type=zerocontent&guid=452438ba-d429-4656-ace9-b284744bc171]ᐧ
_______________________________________________
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


--
Vennlig hilsen

Steinar Noem
Partner Udelt AS
Systemutvikler

| steinar@udelt.no<mailto:steinar@udelt.no> | hei@udelt.no<mailto:hei@udelt.no>  | +47 955 21 620 | www.udelt.no<http://www.udelt.no/> |