Re: [OAUTH-WG] [EXTERNAL] Re: dpop_jkt Authorization Request Parameter

Pieter Kasselman <pieter.kasselman@microsoft.com> Thu, 02 December 2021 15:41 UTC

Return-Path: <pieter.kasselman@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 1259A3A1191 for <oauth@ietfa.amsl.com>; Thu, 2 Dec 2021 07:41:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.701, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_MSPIKE_H2=-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 YWU_Bb2G617u for <oauth@ietfa.amsl.com>; Thu, 2 Dec 2021 07:41:51 -0800 (PST)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2054.outbound.protection.outlook.com [104.47.14.54]) (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 9FB483A0652 for <oauth@ietf.org>; Thu, 2 Dec 2021 07:41:50 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MpqBJKc1uhd1Wsbt0cuRive9m985Bz7Yk38PLnqqnh2xbu0AvfoVTz+dEqWZ1qw6ulfPPdoiRxcHCMJ2TkizInHOebADzctQqSUzgV4YlAvEFpQ71KnCkAzMONHP5GnGhfUqqEM856AZbVytLTWYPVDXsP4bfJmGFME9EHbX8QU6cTC9+qTjiu62JPMrrYppVp8lZ0/a5aXKuryMNR9cn8mmkGb1YwnnZx/JO4ZRYSdQNi5WummGkknSMcUWB/LT/bbCp1yFw+VpaYmakKGNqYjzxExDIMs5g4Fxi01GYXg9vbL4o843WZTKbIr2PCE/ez0ejnqljRupSiT36Z5XaQ==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6isgAraQWqG66KI6PobajJ0y5D6ym/ie8NMMTOyDAbU=; b=EDHv+LQQIvm9l6ixeqPVeS3SYlxOAkvQnNYNeshxUzxce8AjDFqTDpecTfzv+MIHYl7QAu2CobISFpaMRDxWXmCNO60tpuI/U/4aZh6FVpBAusFhg4aS8ySbf4LA2PASgTOwh/LcA+/tLJGrj4Krm2hCOK+pBjBfdPqn13Pe7NALG8yP3/Bi0sUkNMWkitTK36xITXNZt1+zf/iCaxrBVFobBhPXtuY8NnIIQ7E63AsE/b+q5BxWjyRYYxhhU/p5KFQ9L0tWxthYjG0YbvJKB+693nj8XB0cg/AlK82wMt2FoojHLyVFYAbGIi2yzgbHuhl6eFFySeO9omjreCUjLA==
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=6isgAraQWqG66KI6PobajJ0y5D6ym/ie8NMMTOyDAbU=; b=ejQ4cAhFooJK/xsDpNN08LhI55lRFHTsi7o64BuMXy5jiDj3qFmgfC7pU+jii+P25eIb01S21ysp8zEFz+IgwIhTAatZChLtJMKocL/B1aIT9igOnJUKpuaNQZss5eJza3q/JSyQ7MgJFxWHx4IUUM7I5ZAkHH7/8juvuSDnvsU=
Received: from AM7PR83MB0452.EURPRD83.prod.outlook.com (2603:10a6:20b:1b6::10) by AM6PR83MB0296.EURPRD83.prod.outlook.com (2603:10a6:209:6f::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.1; Thu, 2 Dec 2021 15:41:46 +0000
Received: from AM7PR83MB0452.EURPRD83.prod.outlook.com ([fe80::3993:dd36:4660:fe6e]) by AM7PR83MB0452.EURPRD83.prod.outlook.com ([fe80::3993:dd36:4660:fe6e%6]) with mapi id 15.20.4778.001; Thu, 2 Dec 2021 15:41:46 +0000
From: Pieter Kasselman <pieter.kasselman@microsoft.com>
To: Warren Parad <wparad=40rhosys.ch@dmarc.ietf.org>, Pieter Kasselman <pieter.kasselman=40microsoft.com@dmarc.ietf.org>
CC: Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org>, "oauth@ietf.org" <oauth@ietf.org>
Thread-Topic: [OAUTH-WG] [EXTERNAL] Re: dpop_jkt Authorization Request Parameter
Thread-Index: AQHX5shEdGhaevvvSkuYWgOgh+XuTKwfOm1w
Date: Thu, 02 Dec 2021 15:41:45 +0000
Message-ID: <AM7PR83MB0452184E6C67477BF073FB6591699@AM7PR83MB0452.EURPRD83.prod.outlook.com>
References: <PH0PR00MB09979174CD87DF0DB226D334F5679@PH0PR00MB0997.namprd00.prod.outlook.com> <DBABEEFF-3FD5-4048-A90A-C16D0E695E07@forgerock.com> <CAGBSGjr8WE2i3wDe_fQmoBbhwWBPwouJViNGSyBjRh4hR4pCZQ@mail.gmail.com> <AM7PR83MB0452688B1FCB18070639291F91689@AM7PR83MB0452.EURPRD83.prod.outlook.com> <CAJot-L3Gf0Ok1AoQAAgaG_G4QQxa5CrKh+N-HVZwRQDJtdc2+w@mail.gmail.com>
In-Reply-To: <CAJot-L3Gf0Ok1AoQAAgaG_G4QQxa5CrKh+N-HVZwRQDJtdc2+w@mail.gmail.com>
Accept-Language: en-IE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-12-02T15:41:33Z; 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_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=3d0513a0-0ecf-4f5d-8dbb-b8d6b0ebc177; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: dc91a991-a95d-4333-133c-08d9b5aa3f55
x-ms-traffictypediagnostic: AM6PR83MB0296:EE_
x-microsoft-antispam-prvs: <AM6PR83MB0296A5ACE12808E16D7F42B891699@AM6PR83MB0296.EURPRD83.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: VkF97v5Y3OoJLvpcXj+/0y/eJcLMnkReEs3OkFbXvyoNqWQxP9zUOxIJB2FhE6uVj/LwQHXCGz7nuUgOWOWJPiNV9Ox09o6aXdyqZAc1dtfrR63Zp5bbDfo6vK4u00F8U3zV9uFGPAiB8h+Ol6An55hbGfAAxSLZ8WXTbHyYIhH+BG/hMs/0AYDwOdroUXL75KzgyART7k8EBtXuUeICjgUTxj5vncxOYCbdMncW/r87YpgcRoZYboZeiWdTVxwLcPIGNL1t6v70QQntRIw7vmD6P+82U86OZGAdFO//vVu+uvap1IF9Kj58VRciskyO2U4DtapIPQ7cvtnyvydYKwk6Bo7uY32JVMXOFTWwKR0Qspqe/2XwO/U45WaoMATuB7y1oNrusru6fADpzmaP+75IRMQDLeC4UbIXgvIejoI6tsGgtO9GN6Gzhqt4u733tpqZ9RSjcAZcmaVGoG/RyPGWTzQVwC246lhxsnjvazrmdJfzI0ynBRPQUTZiJaYJmrWDz+q5hqFC0aiSE9YSQqskzcEohPa6zVJq1IBnFD03Wbqll0BIAWXPcFwKlAeeeYo8y5p3VqtRleKw6E1JGkvENp8jyzMyHqwrrgJ0vpdh9fZSxSx328YdYvLXkb2v6UXseHF2jrj3O5d2Ec3UWIkG+2sgUmAOBMUPpU8GqrbxDIA62mZdHOZ7pogz3wSDAZAM3aZLomqPnsWnQMZqA1PTq4kspiUAOmzBypNFhxbKTuFzGdMYCPQrIVEr6s8alEP+wU0Z6tdoqi9g4/HneI2boHoNp/0IkLRY6MpDA5pPSxRxMcFJbF3/95cePKUf2wYP2td2gLqSbXSScZNWGW+WRWG5EJVEHL0VWHqgRvWoB3mlCU25Qe2PlgzdBAIo
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR83MB0452.EURPRD83.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(66556008)(55016003)(66476007)(64756008)(38070700005)(82960400001)(52536014)(2906002)(66446008)(53546011)(86362001)(76116006)(110136005)(8676002)(7696005)(66946007)(8936002)(166002)(71200400001)(9686003)(122000001)(38100700002)(44832011)(10290500003)(83380400001)(316002)(966005)(186003)(33656002)(6506007)(5660300002)(54906003)(4326008)(508600001)(8990500004)(82950400001)(20210929001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: oO91Ph+Wc6mMkO8HpQoHurZEHs+SNNO1tq8/5yeB28u5x0akgnqQFwr+m2qb54HwdVwA5nj+A/GJOIOvk30r6U1W9ws6Ii9PztbUH2ruwTTtHX0hhXpnMZLg4+6MnVSK0YQ5qc7etrQm5RW4YZw7LRHAXJed/TJq+vVATuyXcE+gbNGdbEUOe9opNKdksIPYvJZDUw0hutJhJyGA9oK7XHiVUc6GFQAT8NAcMOVOvU6fAo/sVc6dxR/REAQpwKK0NS7e4E8QyTHwMh4drn7R8n59GFOA+ViNGmSLuXoWAcaY7aZOgTdAerFukolRMy8hmj1FGORrSWwU3u9JozBmBELgBa4IaoERH9ZYPumqyIeZFBGKTKXzvm4BgfPZBgZmpdCILEf0jZM1SxvulBVBFYs39RQYmTbFqBrJqWdHVXAb40F0ooj8JAU9e3fD2FbKpyMWcsCImAOFecyax+dyf8q0f422SR9PNebadncxDNpYU0ysOfL7OwAN8LDDKFv5FiPQyseHJT/wixEi0V8EAo3EBhviclvF7/EEZN6a0ETPoiyIiPTWvUw60AWFpsN0SmbwAcg2/WDO9SSofdE5LOAMXMZuMsMM7ESmAdQOhmbNN/+WEJiNTRIt7d4jwcSxW5y2T3iA3yPBq9GJmNmDUe30+3cUl+hroQKYOT5IUgoFS/R7OHvzVThPDFaEZI8Ihha2fPrU9BBJxHEuOtHRM1jMxTtk7nb4TyesKAHtmiXI0ZVJuPL5yy0jcXTDQAsVg+dtcpecEaFdb/1w/5ts3E5SChQWSFtaoSyoorbcqaLZ4KU06qFkCWe9q67JNjlOkW5wZGWFaQ1p3EIR6qi/Pe9+Deq2ya5Toz2+nY2Y8mKwZE55PxFjPOK+RCVWUfqwxje9FG5kx3sttTMB2trOd1hC5JTbYzhi7qW4iE69ch9iXRT/Sw1SNBAJcfp6s4TSfY4gG5kWCvjcZz3p4zIQxXCrYgGL4AxBa8T9j4TmVVXSDeu8qd5CbCVW7HnCRlqbcNczxwTeyfTzvdYuXD6CyZntlc9FoXFRMCzrG4h4R38I1J3CwXKAqC1edYdXaHFj/nt9+OAQlkdJhjHt2jd2rSbCSgk69dc7Cj3eINebFZfuBAhyOkDWhg8/8s20OzFtGeZqE3z9X7dfg68xKkpawJKTtbPuDi/HGGRoHqgRWIy85ZfNfyMDlPRta5BrKK2XWnPtWr9bPFX9rTzEoeSu/LjcacMrJUE7S/Vnsy8k256gQ4wI5GGI08Kdf3VquY9aqQnl/mf9X+GajKzyo4KYZom5KQH61r6KcKy+CAWGh7+st/lQCZzJJ8WjDADhlTVzkK45PIKEeoVlQjC2ruvEFU4FghwBBIyUcAMFstN3NPG1gX4k4f1PtA7iLphuGxVqzH1C4E9Vhogr7uQqkTdUb0t71vez9moZ7EphU6wU5B8pccpXlkt6M9O12E5+EXhxcXoq+bvIpGGj0R4e+UXRWQPGjHM2yQVrAOQ9Io0n2ayrShibn70Qy846sd/+5C4ggM+ocu5WapqawSOAPJ+xAdEJPYxMFHs+MZDN9BUW/Fxf1q+WsssXubsq+ZQbwdUPiYYvGubjk/FX426egFFzYpcr7cyF5EhsKMZRQKfrzdZ6pC338/71v6nd89zcAg2rDMD4pXzwBlXjRAbsYNuX8Q==
Content-Type: multipart/alternative; boundary="_000_AM7PR83MB0452184E6C67477BF073FB6591699AM7PR83MB0452EURP_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR83MB0452.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dc91a991-a95d-4333-133c-08d9b5aa3f55
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2021 15:41:45.9844 (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: x7TnkCyaW4TfvgNUq7y6YPvO0yd2Y5qkHnqFAzTRP4lRnuONO0krOeCK8075XGs3RuL0fDR+4iXwVY4BHzgmKYhsvynkNXVTa3+iX8R+r+U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR83MB0296
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/z10aJwn-SEeCtqLZcIPddrLTMVY>
Subject: Re: [OAUTH-WG] [EXTERNAL] Re: dpop_jkt Authorization Request Parameter
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, 02 Dec 2021 15:41:57 -0000

Thanks for the comments and engagement Warren.

The attacks we described and the ideas on mitigations are born out of attack vectors we are observing in the wild. They are not negligible. We are seeing a new class of very sophisticated attackers, and if you're interested, this article provides good context on capability and sophistication of the attackers Brad Smith: Inside Microsoft during the SolarWinds hack (fastcompany.com)<https://www.fastcompany.com/90672384/microsoft-president-brad-smith-solarwinds-exclusive>. We are sharing this with the hope that the industry will benefit from our experiences and incorporate it into standards and products. Attacks that seemed impossibly complex are not only possible, but have become probable.

The proposed changes for DPoP are not meant to replace the need for one-time use tokens (single use tokens are preferable and we should continue to expect them), but instead address the limitations around implementing one-time use, especially at scale. The 60s window you mention below is sufficiently long to be exploited by these sophisticated attackers.

Cheers

Pieter

From: OAuth <oauth-bounces@ietf.org> On Behalf Of Warren Parad
Sent: Wednesday 1 December 2021 15:29
To: Pieter Kasselman <pieter.kasselman=40microsoft.com@dmarc.ietf.org>
Cc: Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org>; oauth@ietf.org
Subject: Re: [OAUTH-WG] [EXTERNAL] Re: dpop_jkt Authorization Request Parameter

(e.g. one-time use in a certain timeframe etc).

Sure but couldn't we just reduce the lifetime? Even if the token isn't one time use, surely the reuse time is trivially short which would prevent against exfiltration of the necessary security tokens to issue the attack?

I feel like the simpler solution will always win, which in this case is one-time use tokens, then the problem is moot, right? So this only comes into play if you want to allow token reuse in a time window. The previously suggested max allowed time window from OAuth 2.1 was 60s for auth codes. So we are saying that the attack surface is still too large, for the .01% of implementations that have multi-use tokens, and the .01% of implementations that use the maximum 60s reuse, and then the subset of those that aren't correctly scrubing their logs, and then the subset of those that have a vulnerability which allows for exfiltration of both those logged tokens and the logged PKCE verifier?

Why are we making this more complicated for a majority of cases, which:

  *   Only have single use tokens
  *   Or Only have a very short lifetime
  *   Or Are already correctly sanitizing their logs
  *   Or Have defense in depth for their deployments.
If the implementation is so insecure that none of those are happening, wouldn't the implementation for this functionality also be suspect for an opportunity for attack?

I feel like we are justifying here that multi-use tokens are wrong, but still want a solution to use them. Once we've proven that an deployment is not okay with using multi-use tokens, then the conclusion should be "don't have multi-use tokens", not: "let's still have multi-use tokens, but come up with a complex way to prevent their multi-use from accidentally being abused".

Or am I missing something that would actually make this a non-negligible attack vector?

- Warren


[https://lh6.googleusercontent.com/DNiDx1QGIrSqMPKDN1oKevxYuyVRXsqhXdfZOsW56Rf2A74mUKbAPtrJSNw4qynkSjoltWkPYdBhaZJg1BO45YOc1xs6r9KJ1fYsNHogY-nh6hjuIm9GCeBRRzrSc8kWcUSNtuA]

Warren Parad

Founder, CTO
Secure your user data with IAM authorization as a service. Implement Authress<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fauthress.io%2F&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cb5c71bfcbfbb48fd641508d9b4df5fcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637739693847580905%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=%2FBkvuWZ3FVTcdTtfe%2FoLurIGxcsJHCz6zXmW1PROTSc%3D&reserved=0>.


On Wed, Dec 1, 2021 at 4:14 PM Pieter Kasselman <pieter.kasselman=40microsoft.com@dmarc.ietf.org<mailto:40microsoft.com@dmarc.ietf.org>> wrote:
Hi Aaron, Neil

Thanks for the questions.

We agree that ideally authorization codes and PKCE proofs would never end up in log files and one-time use would be perfectly implemented.

However, in practice these artefacts do find their way into log files in various places and one-time use may not always be practical (e.g. one-time use in a certain timeframe etc).

The addition of these mitigations is not meant to replace the need for one-time use or good logging hygiene. Instead they provide pragmatic defence in depth against real attacks rather than assuming perfect implementations. We are deploying these mitigations and are sharing them for inclusion in DPoP to enable others to do the same.

Regarding the question about interrupting/intercepting the HTTPS connection, the attacker don't need to intercept the HTTPS connection or modify the content in the TLS tunnel, rather they just need to prevent the authorization code from being presented to the Authorization Server. It may even happen due to a poor network connection. The poor connection may be engineered by an attacker, or they may opportunistically benefit from it. The networks are not perfect either.

Cheers

Pieter


From: OAuth <oauth-bounces@ietf.org<mailto:oauth-bounces@ietf.org>> On Behalf Of Aaron Parecki
Sent: Wednesday 1 December 2021 00:05
To: Neil Madden <neil.madden@forgerock.com<mailto:neil.madden@forgerock.com>>
Cc: Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org<mailto:40microsoft.com@dmarc.ietf.org>>; oauth@ietf.org<mailto:oauth@ietf.org>
Subject: [EXTERNAL] Re: [OAUTH-WG] dpop_jkt Authorization Request Parameter

I tend to agree with Neil here. I'm struggling to see the relevance of this attack.

It seems like the PDF writeup describes two possible reasons an attacker could get access to the authorization code and PKCE code verifier.

1. The attacker has access to the logs of the token endpoint.
2. The attacker can intercept HTTPS connections between the client and AS (VPN, corporate network proxy, etc)

For 1, the solution is to stop logging the contents of the POST body, and secure your infrastructure. I don't think making the client jump through extra hoops is a good solution if you are already logging more than you should be or you don't trust the people who have access to the infrastructure. If this really is a concern, I suspect there are a lot more places in the flow that would need to be patched up if you don't trust your own token endpoint.

For 2, if the attacker can intercept the HTTPS connection, then the proposed solution doesn't add anything because the attacker could modify the requests before it hits the authorization server anyway, and change which DPoP key the token gets bound to in the first place. Plus, the attacker would also have access to anything else the client is sending to the AS, such as the user's password when they authenticate at the AS.

Are there other attack vectors I'm missing that might actually be solved by this mechanism?

Aaron


On Tue, Nov 30, 2021 at 12:40 PM Neil Madden <neil.madden@forgerock.com<mailto:neil.madden@forgerock.com>> wrote:
Sadly I couldn't make the DPoP session, but I'm not convinced the attack described in the earlier message really needs to be prevented at all. The attack largely hinges on auth codes not being one-time use, which is not a good idea, or otherwise on poor network security on the token endpoint. I'm not convinced DPoP needs to protect against these things. Is there more to this?

The proposed solutions also seem susceptible to the same problems they attempt to solve - if an attacker is somehow able to interrupt the client's (TLS-protected) token request, why are they somehow not able to interrupt/modify the (far less protected) redirect to the authorization endpoint?

- Neil

On 30 Nov 2021, at 20:15, Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org<mailto:Michael.Jones=40microsoft.com@dmarc.ietf.org>> wrote:

As described during the OAuth Security Workshop session on DPoP, I created a pull request adding the dpop_jkt authorization request parameter to use for binding the authorization code to the client's DPoP key.  Seehttps://github.com/danielfett/draft-dpop/pull/89<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdanielfett%2Fdraft-dpop%2Fpull%2F89&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cb5c71bfcbfbb48fd641508d9b4df5fcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637739693847580905%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ASCRFFPMA7qIItkxpVTrVaJtC53R2niWOzB0l0GQKrw%3D&reserved=0>.

This is an alternative to https://github.com/danielfett/draft-dpop/pull/86<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdanielfett%2Fdraft-dpop%2Fpull%2F86&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cb5c71bfcbfbb48fd641508d9b4df5fcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637739693847580905%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=lgb9WmnOwWVtNIFsZ1mQG4jSBQYLZv%2BETe6HIKFeerg%3D&reserved=0>, which achieved this binding using a new DPoP PKCE method.  Using this alternative allows PKCE implementations to be unmodified, while adding DPoP in new code, which may be an advantage in some deployments.

Please review and comment.  Note that I plan to add more of the attack description written by Pieter Kasselman to the security considerations in a future commit.  This attack description was sent by Pieter yesterday in a message with the subject "Authorization Code Log File Attack (was DPoP Interim Meeting Minutes)".

                                                       -- Mike

_______________________________________________
OAuth mailing list
OAuth@ietf.org<mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Foauth&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cb5c71bfcbfbb48fd641508d9b4df5fcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637739693847580905%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=vuBY0pdcSiMXQF213ZVLm4yNMFhRqM1jWlrWSzn%2FS%2FE%3D&reserved=0>

_______________________________________________
OAuth mailing list
OAuth@ietf.org<mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Foauth&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cb5c71bfcbfbb48fd641508d9b4df5fcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637739693847580905%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=vuBY0pdcSiMXQF213ZVLm4yNMFhRqM1jWlrWSzn%2FS%2FE%3D&reserved=0>
_______________________________________________
OAuth mailing list
OAuth@ietf.org<mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Foauth&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cb5c71bfcbfbb48fd641508d9b4df5fcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637739693847580905%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=vuBY0pdcSiMXQF213ZVLm4yNMFhRqM1jWlrWSzn%2FS%2FE%3D&reserved=0>