Re: [OAUTH-WG] Authorization code reuse and OAuth 2.1

Aaron Parecki <aaron@parecki.com> Wed, 13 October 2021 17:40 UTC

Return-Path: <aaron@parecki.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 E24393A0BB2 for <oauth@ietfa.amsl.com>; Wed, 13 Oct 2021 10:40:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.088
X-Spam-Level:
X-Spam-Status: No, score=-2.088 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, 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=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=parecki.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 vjb51H4i1aZc for <oauth@ietfa.amsl.com>; Wed, 13 Oct 2021 10:40:41 -0700 (PDT)
Received: from mail-il1-x12e.google.com (mail-il1-x12e.google.com [IPv6:2607:f8b0:4864:20::12e]) (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 841563A09EB for <oauth@ietf.org>; Wed, 13 Oct 2021 10:40:37 -0700 (PDT)
Received: by mail-il1-x12e.google.com with SMTP id r9so569659ile.5 for <oauth@ietf.org>; Wed, 13 Oct 2021 10:40:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=parecki.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nqBiLa4XqUNLyt8pAeQtBlVT4z2xV/mtgh7HT1Wdup8=; b=B+qTbR2UGnS3NSjOBiG4PicDiUKnK1/RTzjBRGqKOZWDLij6yZgUCP+ao6IbbrJAcW Edi8sCdTChicE2B78Z4Ob9+/1Vg+euFQJ+cRJYEMnr7GFBFAUlGrSyPydE3hL7fNEF6D YcHdZd/nQ2FsrSTwtoQxMijBsM6/p/mA9Iz4hyLPVBqn1XW5XCNciZu0yQCx0GS7tQz9 SScZ3o1w0tjFSSbEA0xKfUENNfsFFo0L/i9IInisrNQ1ItZU6vQmAuFxQRlDJoksVN7Z cw8LYzyYYg75fbnsDyszTWLt0mNw1AVjtqyR8v6Jt652P//B1I7UoXawVPYdDK4lVRRQ Kd+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nqBiLa4XqUNLyt8pAeQtBlVT4z2xV/mtgh7HT1Wdup8=; b=1PY8W+PBFONJQvCuV5brzFyomLIGUNQMrZZuZafW+a/GBoAt3vdHZ3bscWaKJ/udhy XnZp4Rjih8LY7FYoBwl0Yz3h5PQJh7E/J6LwyhR6+x/U6Op66OUwsVidMD2kgura9HR9 dX1kigtwgZHoeD0wFL/6PqjyJqopK+LRwkVglqY4eJX++61tqx5+wXaYRZ1CFxWql6XH jlADYPBHl6uJDJ7FHsCCZvrYmjyhuRiz5pgFLH622vltdu/F0bIdfo15qO59rm2G4Tgx +7+S5/8Gbq/3stHUPHGborlG+EpOjtbZQujLsQ5sl829OcLSg5pvCzr+Z/njHZqTgwr7 yXIA==
X-Gm-Message-State: AOAM5314EnJFXRkzAjGKBhPnunCLT/WzxG3OpJoUHzdT/G+umhEnPoA7 Bt5aZTQH/FaPE/UKm9DbpK3cROLsgkaK3Q==
X-Google-Smtp-Source: ABdhPJxu4sleIesYpqNP6LVDfbQihTA+ZNQdx/RK+Z3SUJYt7ELZ1eWxlB3Na6QJS3l4ll0k9n73Rw==
X-Received: by 2002:a92:d706:: with SMTP id m6mr293517iln.155.1634146835826; Wed, 13 Oct 2021 10:40:35 -0700 (PDT)
Received: from mail-il1-f169.google.com (mail-il1-f169.google.com. [209.85.166.169]) by smtp.gmail.com with ESMTPSA id d1sm76307ils.25.2021.10.13.10.40.35 for <oauth@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Oct 2021 10:40:35 -0700 (PDT)
Received: by mail-il1-f169.google.com with SMTP id i11so535020ila.12 for <oauth@ietf.org>; Wed, 13 Oct 2021 10:40:35 -0700 (PDT)
X-Received: by 2002:a05:6e02:164e:: with SMTP id v14mr319572ilu.320.1634146834852; Wed, 13 Oct 2021 10:40:34 -0700 (PDT)
MIME-Version: 1.0
References: <SA2PR00MB100244DAAD267EBD2FF51678F5B79@SA2PR00MB1002.namprd00.prod.outlook.com> <CAJot-L1HNvud7-ehODK7Bouv5-KotMy8EtEgLCyCzOXoSZCVCg@mail.gmail.com>
In-Reply-To: <CAJot-L1HNvud7-ehODK7Bouv5-KotMy8EtEgLCyCzOXoSZCVCg@mail.gmail.com>
From: Aaron Parecki <aaron@parecki.com>
Date: Wed, 13 Oct 2021 10:40:23 -0700
X-Gmail-Original-Message-ID: <CAGBSGjpJrM4uUTdVvsEzh5sT0H9ZpEJ0D3yfo-p_1S9w_tdF8g@mail.gmail.com>
Message-ID: <CAGBSGjpJrM4uUTdVvsEzh5sT0H9ZpEJ0D3yfo-p_1S9w_tdF8g@mail.gmail.com>
To: Warren Parad <wparad=40rhosys.ch@dmarc.ietf.org>
Cc: Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org>, "oauth@ietf.org" <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000009a335d05ce3f755d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/jNAPLk70yTF3YqVBlPvHQlGYtHg>
Subject: Re: [OAUTH-WG] Authorization code reuse and OAuth 2.1
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, 13 Oct 2021 17:40:49 -0000

Warren, I didn't see you on the interim call, so you might be missing some
context.

The issue that was discussed is that using PKCE already provides all the
security benefit that is gained by enforcing single-use authorization
codes. Therefore, requiring that they are single-use isn't necessary as it
doesn't provide any additional benefit.

If anyone can think of a possible attack by allowing authorization codes to
be reused *even with a valid PKCE code verifier* then that would warrant
keeping this requirement.

---
Aaron Parecki


On Wed, Oct 13, 2021 at 10:27 AM Warren Parad <wparad=
40rhosys.ch@dmarc.ietf.org> wrote:

> Isn't it better for it to be worded as we want it to be, with the
> implication being that of course it might be difficult to do that, but that
> AS devs will think long and hard about sometimes not denying the request?
> Even with MUST, some AS will still allow reuse of auth codes. Isn't that
> better than flat out saying: *sure, there's a valid reason*
>
> In other words, how do we think about RFCs? Do they exist to be followed
> to the letter or not at all? Or do they exist to stipulate this is the way,
> but acknowledge that not everyone will build a solution that holds them as
> law.
>
> Let's look at *SHOULD*
>
>> This word, or the adjective "RECOMMENDED", mean that there may exist
>> valid reasons in particular circumstances to ignore a particular item, but
>> the full implications must be understood and carefully weighed before
>> choosing a different course.
>
>
> I think *recommended* here is not sufficient nor are there valid reasons.
> "It's too hard" isn't really a valid reason. Isn't it better in this case
> for an AS to not be compliant with the RFC, than it is to relax this to
> SHOULD and have lots of AS thinking reusing auth codes is a viable
> solution, "because they are a special snowflake where SHOULD should apply".
>
> Are we setting the standard or instead attempting to sustain a number of
> "AS that are in compliance with the RFC"?
>
>
> Warren Parad
>
> Founder, CTO
> Secure your user data with IAM authorization as a service. Implement
> Authress <https://authress.io/>.
>
>
> On Wed, Oct 13, 2021 at 7:17 PM Mike Jones <Michael.Jones=
> 40microsoft.com@dmarc.ietf.org> wrote:
>
>> During today’s call, it was asked whether we should drop the OAuth 2.0
>> language that:
>>
>>          The client MUST NOT use the authorization code
>>
>>          more than once.  If an authorization code is used more than
>>
>>          once, the authorization server MUST deny the request and SHOULD
>>
>>          revoke (when possible) all tokens previously issued based on
>>
>>          that authorization code.”
>>
>>
>>
>> The rationale given was that enforcing one-time use is impractical in
>> distributed authorization server deployments.
>>
>>
>>
>> Thinking about this some more, at most, we should relax this to:
>>
>>          The client MUST NOT use the authorization code
>>
>>          more than once.  If an authorization code is used more than
>>
>>          once, the authorization server SHOULD deny the request and
>> SHOULD
>>
>>          revoke (when possible) all tokens previously issued based on
>>
>>          that authorization code.”
>>
>>
>>
>> In short, it should remain illegal for the client to try to reuse the
>> authorization code.  We can relax the MUST to SHOULD in the server
>> requirements in recognition of the difficulty of enforcing the MUST.
>>
>>
>>
>> Code reuse is part of some attack scenarios.  We must not sanction it.
>>
>>
>>
>>                                                           -- Mike
>>
>>
>> _______________________________________________
>> 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
>