Re: [OAUTH-WG] RFC 8705 (oauth-mtls): RS error code for missing client certificate

Dmitry Telegin <dmitryt@backbase.com> Fri, 12 November 2021 13:31 UTC

Return-Path: <dmitryt@backbase.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 2BCDE3A0900 for <oauth@ietfa.amsl.com>; Fri, 12 Nov 2021 05:31:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=backbase.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 BWchej_zDMFD for <oauth@ietfa.amsl.com>; Fri, 12 Nov 2021 05:31:06 -0800 (PST)
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com [IPv6:2a00:1450:4864:20::22d]) (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 84F973A08FE for <oauth@ietf.org>; Fri, 12 Nov 2021 05:31:05 -0800 (PST)
Received: by mail-lj1-x22d.google.com with SMTP id e11so18504891ljo.13 for <oauth@ietf.org>; Fri, 12 Nov 2021 05:31:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=backbase.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3VP4a8yP9xk/blrdcPGsQY1Vtek5wblRpEy2pP92TmE=; b=XL0K+DYHane1DLpUorJexvOSjFIf11xTUng3Ey47E5tRQqpGTPmoWEPKKJ/4aMSqxW F7OyQadPB+SWUCWS6pmOB1oktNF3Wvp7kL+oEreZ/86i9KJ7wI8vwvGO3merUbeIvzGf RDDFe+ImGWYWu5nfbFGNxYn+t/RtEChT4zeUBxJMoDboSyXL3l9nsTao3zNXSdFK2KOK lLBYRBsQ2UNy6VIVru9301epEoVek37Zw4A9PwgbtkWW8hIKoUyhNcxd06NB7quFhbPC jOPP2lgBHiwDpO9yjsR94DxSOBUu1Pt7TkKNzJk1p3VZqoSj3BzYOauaBOwx7xi0Wi9d 7i0Q==
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=3VP4a8yP9xk/blrdcPGsQY1Vtek5wblRpEy2pP92TmE=; b=DEXJeiLr47jytiW21HSJZBsYiyJsCmM+k0IiwVH/fPZOu1bzkHXUwkIM86tuuPVtJW V679Xc/P95Wv1jXjrnUb4wKJVfxvy/2W7AweXYjTHDPnGTbUADycJGi5yjVXqSX3oTI1 zlWOnA8TGx9dCeYPzXwwY4lJlts4pi08bplGbqMZKerB5MkPAtRc4JFUlau3z9AkPdTB HIJONu5IBZHLrplBohiSsGOpxqSHNRtnWuugtFD0r2D2Hjvuic7Gi5QoOZgQuhWfwbTX F1w9zkApkIVpIyfm8ZqLNSNdVtzRDpjjnMkQM2CTwWE/PrmJekLT1ZCiwVGxS6cPJXmP dd/g==
X-Gm-Message-State: AOAM530STmbMGeEDLq4jC7C5F9mlN0xqyWmm3mm34nSRzZKyvIv9ULUX 2aDjnrtgX01rHp8Vd0A7kMWjoP0dAINNZr//Z7sIKg==
X-Google-Smtp-Source: ABdhPJz8Vw073Bzjvdf+rjCk/i1VeASS20wQcqwo0iC1/i2EERn/WDMuJFAmCkgWVkSrc4EmMPh2E6DeHklV48kiLOs=
X-Received: by 2002:a05:651c:98c:: with SMTP id b12mr15568666ljq.481.1636723855665; Fri, 12 Nov 2021 05:30:55 -0800 (PST)
MIME-Version: 1.0
References: <CAOtx8Dk5f9dLT=mF4_G3ytTm4BzjYxohHVbc27R0nikiQxsdsA@mail.gmail.com> <CAOtx8D=6yEjTEVkx7LnaWk_FYrW80+KxhskGjreQs8X0dnVsnA@mail.gmail.com> <F15CE2F2-1B9A-4201-900E-7BD06AFF3E41@mit.edu> <CAOtx8Dka=FowfTD+ApviDq2-dHaE9offkUKFQqssU7spJWLaLg@mail.gmail.com> <05885557846748b085d67aabd360b04f@oc11expo18.exchange.mit.edu>
In-Reply-To: <05885557846748b085d67aabd360b04f@oc11expo18.exchange.mit.edu>
From: Dmitry Telegin <dmitryt@backbase.com>
Date: Fri, 12 Nov 2021 16:30:44 +0300
Message-ID: <CAOtx8DmMiczRTsoQ52YvJZa+j07uRzb-EXu_UO_TYEzZHSe+Tw@mail.gmail.com>
To: Justin Richer <jricher@mit.edu>
Cc: oauth <oauth@ietf.org>, 乗松隆志 / NORIMATSU,TAKASHI <takashi.norimatsu.ws@hitachi.com>
Content-Type: multipart/alternative; boundary="00000000000003517705d097784d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/smY4ARbV5tt7Jyqa5iPyf_v5MKk>
Subject: Re: [OAUTH-WG] RFC 8705 (oauth-mtls): RS error code for missing client certificate
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: Fri, 12 Nov 2021 13:31:11 -0000

Just to make sure I understand the process, is it going to be something
like draft-XXXXXX-oauth-mtls-rfc8705-bis ->
draft-ietf-oauth-mtls-rfc8705-bis -> new RFC that will obsolete the current
one? CCing my colleague Takashi Norimatsu who worked on MTLS holder-of-key
for Keycloak, perhaps he has more ideas for improvements.

As for this stance:

> The MTLS draft also re-uses “Bearer” as a token header, which is also a
> mistake in my opinion.
>

Did you mean the re-use of the "Bearer" scheme for the Authorization header
and WWW-Authenticate challenge? If so, and if we decide to introduce a new
scheme, I think this would imply a new value for the "token_type" token
response attribute as well.

Of particular interest to me is the question whether different binding
mechanisms (DPoP, MTLS) could co-exist, or should they be mutually
exclusive; this deserves a separate thread though.

- Dmitry

On Thu, Nov 11, 2021 at 10:22 AM Justin Richer <jricher@mit.edu> wrote:

> Only if this working group wanted to take up the work of making a new
> revision of the standard, but I haven't seen any indication of desire to do
> that here. One possibility is for you to propose an update as an individual
> draft to the group here.
>
> -Justin
> ________________________________________
> From: Dmitry Telegin [dmitryt@backbase.com]
> Sent: Wednesday, November 10, 2021 1:34 PM
> To: Justin Richer
> Cc: oauth
> Subject: Re: [OAUTH-WG] RFC 8705 (oauth-mtls): RS error code for missing
> client certificate
>
> Thanks for the reply. That makes sense.
>
> Given that MTLS is not a draft but rather a proposed standard (RFC 8705),
> do you think there is a chance the changes you proposed could land in MTLS
> one day?
>
> On Wed, Nov 10, 2021 at 6:24 PM Justin Richer <jricher@mit.edu<mailto:
> jricher@mit.edu>> wrote:
> This is just my interpretation, but this feels more like invalid token,
> because you’re not presenting all of the material required for the token
> itself. The DPoP draft has added “invalid_dpop_proof” as an error code,
> which I think is even better, but the MTLS draft is missing such an element
> and that is arguably a mistake in the document. The MTLS draft also re-uses
> “Bearer” as a token header, which is also a mistake in my opinion.
>
> But given the codes available, “invalid_token” seems to fit better because
> you aren’t messing up the request _to the resource_ itself, you’re messing
> up the token presentation.
>
>  — Justin
>
> On Nov 10, 2021, at 10:17 AM, Dmitry Telegin <dmitryt=
> 40backbase.com@dmarc.ietf.org<mailto:dmitryt=40backbase.com@dmarc.ietf.org>>
> wrote:
>
> Any updates on this one? The missing certificate case looks more like
> "invalid_request" to me:
>
>
> invalid_request
>          The request is missing a required parameter, includes an
>          unsupported parameter or parameter value, repeats the same
>          parameter, uses more than one method for including an access
>          token, or is otherwise malformed.  The resource server SHOULD
>          respond with the HTTP 400 (Bad Request) status code.
>
>
> On Fri, Sep 24, 2021 at 2:23 AM Dmitry Telegin <dmitryt@backbase.com
> <mailto:dmitryt@backbase.com>> wrote:
> From the document:
>
>
>    The protected resource MUST obtain, from its TLS implementation
>    layer, the client certificate used for mutual TLS and MUST verify
>    that the certificate matches the certificate associated with the
>    access token.  If they do not match, the resource access attempt MUST
>    be rejected with an error, per [RFC6750<
> https://datatracker.ietf.org/doc/html/rfc6750>], using an HTTP 401 status
>    code and the "invalid_token" error code.
>
> Should the same error code be used in the case when the resource failed to
> obtain a certificate from the TLS layer? This could happen, for example, if
> the TLS stack has been misconfigured (e.g. verify-client="REQUESTED"
> instead of "REQUIRED" for Undertow), and the user agent provided no
> certificate.
>
> Thanks,
> Dmitry
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org<mailto:OAuth@ietf.org>
> https://www.ietf.org/mailman/listinfo/oauth
>
>