Re: [OAUTH-WG] WGLC on draft-ietf-oauth-mtls-07

Benjamin Kaduk <kaduk@mit.edu> Thu, 19 April 2018 14:57 UTC

Return-Path: <kaduk@mit.edu>
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 199FE12741D for <oauth@ietfa.amsl.com>; Thu, 19 Apr 2018 07:57:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 iUZf_EwnArbG for <oauth@ietfa.amsl.com>; Thu, 19 Apr 2018 07:57:47 -0700 (PDT)
Received: from dmz-mailsec-scanner-7.mit.edu (dmz-mailsec-scanner-7.mit.edu [18.7.68.36]) (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 3465E126DFF for <oauth@ietf.org>; Thu, 19 Apr 2018 07:57:47 -0700 (PDT)
X-AuditID: 12074424-eb9ff700000039e1-e8-5ad8ae682d3f
Received: from mailhub-auth-1.mit.edu ( [18.9.21.35]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP id 18.7F.14817.86EA8DA5; Thu, 19 Apr 2018 10:57:45 -0400 (EDT)
Received: from outgoing.mit.edu (OUTGOING-AUTH-1.MIT.EDU [18.9.28.11]) by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id w3JEvg2o015595; Thu, 19 Apr 2018 10:57:43 -0400
Received: from kduck.kaduk.org (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id w3JEvdsS021314 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 19 Apr 2018 10:57:41 -0400
Date: Thu, 19 Apr 2018 09:57:39 -0500
From: Benjamin Kaduk <kaduk@mit.edu>
To: Brian Campbell <bcampbell@pingidentity.com>
Cc: Neil Madden <neil.madden@forgerock.com>, oauth <oauth@ietf.org>
Message-ID: <20180419145738.GO54168@kduck.kaduk.org>
References: <CAGL6epK7X-jbO0c8GTxm2cAesYwU19R5_GsFY4tpUYxjW-MF_w@mail.gmail.com> <4D385B9E-AA8F-45B3-8C1D-C7B346FFA649@forgerock.com> <CA+k3eCRRUN0_+dVrRabjCrseV0C15wvKmY3jJQ4-eQqhZ2NUQQ@mail.gmail.com> <5758ae34-1d2d-4946-9190-7a2e2bc184d2@Canary> <CA+k3eCQqmHqRjB8D8h+=iJkLsoXaXeuJfqUQb1Ge_jqVKYe1Zg@mail.gmail.com> <B6C60A6C-0FC5-4865-A1C4-F626C4096800@forgerock.com> <20180417141329.GS54168@kduck.kaduk.org> <CA+k3eCTJV0WrDzWL_FKpO=EFFkqrA8ve1G05u=c+a4+8w1pLbQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CA+k3eCTJV0WrDzWL_FKpO=EFFkqrA8ve1G05u=c+a4+8w1pLbQ@mail.gmail.com>
User-Agent: Mutt/1.9.1 (2017-09-22)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKKsWRmVeSWpSXmKPExsUixCmqrJu57kaUwdcVYhar/99ktJgz7xeb xcm3r9gcmD1utC1g9Fiy5CeTx92jF1kCmKO4bFJSczLLUov07RK4MtpP/2IpaLvCWHHu/HK2 Bsatyxm7GDk5JARMJGYdvcjcxcjFISSwmEmiZ8MWFghnI6NE29FmJgjnKpPE9Y+v2EFaWARU JU6uuwxmswmoSDR0X2YGsUUE9CVuP50DFGfnYBZwluj3B4kKC1hInHr0gwnE5gVadn43RLWQ wDtmiaZXqhBxQYmTM5+wgNjMAuoSf+ZdAqrhALKlJZb/44AIy0s0b50N1sopECix6vgGsPtF BZQl9vYdYp/AKDgLyaRZSCbNQpg0C8mkBYwsqxhlU3KrdHMTM3OKU5N1i5MT8/JSi3TN9XIz S/RSU0o3MYJCnd1FZQdjd4/3IUYBDkYlHt4dgdejhFgTy4orcw8xSnIwKYnyHpt8I0qILyk/ pTIjsTgjvqg0J7X4EKMEB7OSCK93O1CONyWxsiq1KB8mJc3BoiTOu3j/3ighgfTEktTs1NSC 1CKYrAwHh5IEb/FaoEbBotT01Iq0zJwShDQTByfIcB6g4TEgNbzFBYm5xZnpEPlTjJYc05b1 9DBzzHsJIr9t/93DLMSSl5+XKiXOGwvSIADSkFGaBzcTlLoksvfXvGIUB3pRmLcOpIoHmPbg pr4CWsgEtNBABWxhSSJCSqqBsSDIbjHzn+7OW++/Mx94ksO66vq7wytqkhSSGVdtqJILdRAz 2FG/bllsxBeF6zMWzvWZFfZ/40Thvm2n87VOT8lY+Cvnwi3Dw2vOTG5saZqWbxKyZJ1ZgZHz S6HTnIydS8NtPHepX12TqFC89h+LlWmnzaklN27uUzUul3XSOPT85My8F90V/UosxRmJhlrM RcWJAGcBgXU4AwAA
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/twgoVYkEFE2fTpIyaFVznSIFJ5M>
Subject: Re: [OAUTH-WG] WGLC on draft-ietf-oauth-mtls-07
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.22
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, 19 Apr 2018 14:57:51 -0000

I would go ahead and put them in.  The blog post might get some
pushback, but I think there's plenty of precedent for academic
papers.

-Ben

On Wed, Apr 18, 2018 at 09:34:23AM -0600, Brian Campbell wrote:
> Thanks for the text, Neil. And the nit on the text, Ben. I'll include it in
> the next draft.
> 
> Ben, bit of a procedural question for you: can or should I include those
> references (https://www.cryptologie.net/article/374/common-x509-certificate-
> validationcreation-pitfalls/ & http://www.cs.utexas.edu/~
> shmat/shmat_ccs12.pdf) that Neil had with the text in the draft as
> informational? Or? I'm honestly not sure if it's okay to cite a blog post
> or university paper.
> 
> 
> <https://www.cryptologie.net/article/374/common-x509-certificate-validationcreation-pitfalls/>
> 
> 
> 
> 
> On Tue, Apr 17, 2018 at 8:13 AM, Benjamin Kaduk <kaduk@mit.edu> wrote:
> 
> > Picking nits, but maybe "established and well-tested X.509 library
> > (such as one used by an established TLS library)", noting that TLS
> > 1.3 has added a new protocol feature that allows for TLS and X.509
> > library capabilities to be separately indicated (as would be needed
> > if they were organizationally separate).
> >
> > -Ben
> >
> > On Tue, Apr 17, 2018 at 10:48:04AM +0100, Neil Madden wrote:
> > > OK, here’s a stab at a new security considerations section on X.509
> > parsing and validation:
> > >
> > > ---
> > > 5.3 X.509 Certificate Parsing and Validation Complexity
> > >
> > > Parsing and validation of X.509 certificates and certificate chains is
> > complex and implementation mistakes have previously exposed security
> > vulnerabilities. Complexities of validation include (but are not limited
> > to) [1][2][3]:
> > > - checking of Basic Constraints, basic and extended Key Usage
> > constraints, validity periods, and critical extensions;
> > > - handling of null-terminator bytes and non-canonical string
> > representations in subject names;
> > > - handling of wildcard patterns in subject names;
> > > - recursive verification of certificate chains and checking certificate
> > revocation.
> > > For these reasons, implementors SHOULD use an established and
> > well-tested TLS library for validation of X.509 certificate chains and
> > SHOULD NOT attempt to write their own X.509 certificate validation
> > procedures.
> > >
> > > [1] https://www.cryptologie.net/article/374/common-x509-certificate-
> > validationcreation-pitfalls/ <https://www.cryptologie.net/
> > article/374/common-x509-certificate-validationcreation-pitfalls/>
> > > [2] http://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf <
> > http://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf>
> > > [3] https://tools.ietf.org/html/rfc5280 <https://tools.ietf.org/html/
> > rfc5280>
> > >
> > > ---
> > >
> > > NB - this blog post [1] is the best concise summary of attacks I could
> > find. Most of these attacks have been published as Black Hat talks and I
> > can’t seem to find definitive references or good survey papers (beyond [2],
> > which is a little older).
> > >
> > > Let me know what you think,
> > >
> > > Neil
> > >
> > >
> > > > On 12 Apr 2018, at 20:42, Brian Campbell <bcampbell@pingidentity.com>
> > wrote:
> > > >
> > > > Thanks Neil.
> > > >
> > > > Other than the potential metadata changes, which I'd like more WG
> > input on and may raise in a new thread, I think I've got enough to make
> > updates addressing your comments.  But please do send text for that
> > Security Considerations bit, if you come up with something.
> > > >
> > > > On Thu, Apr 12, 2018 at 3:03 AM, Neil Madden <
> > neil.madden@forgerock.com <mailto:neil.madden@forgerock.com>> wrote:
> > > > Hi Brian,
> > > >
> > > > Thanks for the detailed responses. Comments in line below (marked with
> > ***).
> > > >
> > > > Neil
> > > >
> > > > On Wednesday, Apr 11, 2018 at 9:47 pm, Brian Campbell <
> > bcampbell@pingidentity.com <mailto:bcampbell@pingidentity.com>> wrote:
> > > > Thanks for the review and feedback, Neil. I apologize for my being
> > slow to respond. As I said to Justin recently <
> > https://mailarchive.ietf.org/arch/msg/oauth/cNmk8fSuxp37L-z8Rvr6_EnyCug>,
> > I've been away from things for a while. Also there's a lot here to get
> > through so took me some time.
> > > >
> > > > It looks like John touched on some of your comments but not all. I'll
> > try and reply to them as best I can inline below.
> > > >
> > > >
> > > > On Thu, Mar 29, 2018 at 9:18 AM, Neil Madden <
> > neil.madden@forgerock.com <mailto:neil.madden@forgerock.com>> wrote:
> > > > Hi,
> > > >
> > > > I have reviewed this draft and have a number of comments, below.
> > ForgeRock have not yet implemented this draft, but there is interest in
> > implementing it at some point. (Disclaimer: We have no firm commitments on
> > this at the moment, I do not speak for ForgeRock, etc).
> > > >
> > > > 1. https://tools.ietf.org/html/draft-ietf-oauth-mtls-07#section-3.1 <
> > https://tools.ietf.org/html/draft-ietf-oauth-mtls-07#section-3.1> defines
> > a new confirmation method “x5t#S256”. However, there is already a
> > confirmation method “jwk” that can contain a JSON Web Key, which itself can
> > contain a “x5t#S526” claim with exactly the same syntax and semantics. The
> > draft proposes:
> > > >
> > > >         { “cnf”: { “x5t#S256”: “…” } }
> > > >
> > > > but you can already do:
> > > >
> > > >         { “cnf”: { “jwk”: { … , “x5t#S256”: “…” } } }
> > > >
> > > > If the intent is just to save some space and avoid the mandatory
> > fields of the existing JWK types, maybe this would be better addressed by
> > defining a new JWK type which only has a thumbprint? e.g., { “kty”: “x5t”,
> > “x5t#S256”: “…” }.
> > > >
> > > > The intent of the x5t#S256 confirmation method was to be space
> > efficient and straightforward while utilizing the framework and registry
> > that RFC 7800 gives.  Even a new JWK type like that would still use more
> > space. And I'd argue that the new confirmation method is considerably more
> > straightforward than registering a new JWK type (and the implications that
> > would have on JWK implementations in general) in order to use the existing
> > "jwk" confirmation method.
> > > >
> > > > ***
> > > > OK, that is reasonable. Given that the draft says SHOULD rather than
> > MUST for using this confirmation key method, I think it is currently
> > allowed to use either representation.
> > > >
> > > >
> > > >
> > > > 2. I find the naming “mutual TLS” and “mTLS” a bit of a misnomer: it’s
> > really only the client authentication that we are interested here, and the
> > fact that the server also authenticates with a certificate is not hugely
> > relevant to this particular spec (although it is to the overall security of
> > OAuth). Also, TLS defines non-certificate based authentication mechanisms
> > (e.g. TLS-SRP extension for password authenticated key exchange, PSK for
> > pre-shared key authentication) and even non-X.509 certificate types (
> > https://www.iana.org/assignments/tls-extensiontype-
> > values/tls-extensiontype-values.xhtml#tls-extensiontype-values-3 <
> > https://www.iana.org/assignments/tls-extensiontype-
> > values/tls-extensiontype-values.xhtml#tls-extensiontype-values-3>). I’d
> > prefer that the draft explicitly referred to “X.509 Client Certificate
> > Authentication” rather than mutual TLS, and changed identifiers like
> > ‘tls_client_auth’ (https://tools.ietf.org/html/draft-ietf-oauth-mtls-07#
> > section-2.1.1 <https://tools.ietf.org/html/draft-ietf-oauth-mtls-07#
> > section-2.1.1>) to something more explicit like
> > ‘tls_x509_pki_client_auth’.
> > > >
> > > > This is especially confusing in section 3 on sender constrained access
> > tokens, as there are two different servers involved: the AS and the
> > protected resource server, but there is no “mutual” authentication between
> > them, only between each of them and the client.
> > > >
> > > > Choosing names and terminology is difficult and the "right" wording is
> > often subjective. I believe that the current wording sufficiently conveys
> > what is going on in the draft to most readers. Most readers thus far seem
> > to agree. There is some text now that does say that the mutual auth in the
> > draft is in fact X.509 client cert authn but, in the next revision, I'll
> > look for other opportunities where it could be stated more clearly.
> > > >
> > > > *** Thanks.
> > > >
> > > >
> > > >
> > > > 3. The draft links to the TLS 1.2 RFC, while the original OAuth 2.0
> > RFC only specifies TLS 1.0. Is the intention that TLS 1.2+ is required? The
> > wording in Section 5.1 doesn’t seem clear if this could also be used with
> > TLS 1.0 or 1.1, or whether it is only referring to future TLS versions.
> > > >
> > > > The reference to BCP 195 (which unfortunately the original OAuth 2.0
> > RFC doesn't have because it didn't exist then) is meant to account for
> > changing versions and recommendations around TLS. Currently that BCP says
> > TLS 1.2 is a must and suggests against 1.1 & 1.0 but doesn't outright
> > prohibit them.
> > > >
> > > > *** OK, that seems good to me.
> > > >
> > > >
> > > >
> > > > 4. It might be useful to have a discussion for implementors of whether
> > TLS session resumption (and PSK in TLS 1.3) and/or renegotiation impact the
> > use of client certificates, if at all?
> > > >
> > > > That might well be useful but I don't myself know what it would say.
> > I've (maybe naively) figured those are deployment details that will just
> > work out. Perhaps you could propose some text around such a discussion that
> > the WG could consider?
> > > >
> > > >  ***
> > > > To be honest, when I raised this it was because I didn’t really know
> > what the implications were. I’ve done some reading around and I think it
> > should all just work - both session resumption and PSK-based resumption
> > preserve the original client and server authentication context so we can
> > assume that any presented client cert is still valid for the resumed
> > session. So I think we can leave out any discussion of this and assume it
> > works as expected.
> > > >
> > > >
> > > >
> > > > 5. Section 3 defines sender-constrained access tokens in terms of the
> > confirmation key claims (e.g., RFC 7800 for JWT). However, the OAuth 2.0
> > Pop Architecture draft defines sender constraint and key confirmation as
> > different things (https://tools.ietf.org/html/draft-ietf-oauth-pop-
> > architecture-08#section-6.2 <https://tools.ietf.org/html/
> > draft-ietf-oauth-pop-architecture-08#section-6.2>). The draft should
> > decide which of those it is implementing and if sender constraint is
> > intended, then reusing the confirmation key claims seems misleading. (I
> > think this mTLS draft is doing key confirmation so should drop the language
> > about sender constrained tokens).
> > > >
> > > > I will say again that choosing names and terminology is difficult...
> > > >
> > > > Although I must admit that I started using "sender constrained"
> > somewhat indiscriminately at first and it's just sort of stuck. At the time
> > I was trying to incorporate bits of draft-sakimura-oauth-jpop in a way that
> > might help bring on and keep the authors of that draft onboard with this
> > mtls draft. In retrospect it looks like I did that part wrong anyway. But
> > that was the thinking at the time and the history, for whatever it's worth.
> > More recently, Nat was requesting that "sender constrained" be included in
> > the title. So there's that too.
> > > >
> > > > In defense of my mistake, however, if there's a line between "sender
> > constrained" and "key confirmation" tokens, it's a bit of a fuzzy line. And
> > I'd argue that what this draft is doing pretty close to the line.
> > > >
> > > > But ultimately I think you are right that what this mtls draft is
> > doing with access tokens is more accurately described with the key
> > confirmation term.
> > > >
> > > > So, yes, the draft should probably drop (or at least minimize) the
> > language about sender constrained. I'll do that in the next draft version,
> > barring big objections from the WG.
> > > >
> > > > The tricky thing with making that change is that there a client and
> > server metadata parameters with the name "mutual_tls_sender_constrained_access_tokens"
> > that should probably also change. But that would be a breaking change (of
> > sorts anyway), which shouldn't be taken lightly at this stage. I feel that
> > some explicit okays from the WG are needed before doing so (rough consensus
> > stye) . Any WG members want to weigh in here and help get a "sense of the
> > group" concerning changing those metadata names?
> > > >
> > > > *** Thanks. I agree this might cause compatibility issues. It is not a
> > big issue for us, but might cause some confusion.
> > > >
> > > >
> > > >
> > > > 6. The OAuth 2.0 PoP Architecture draft says (
> > https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-08#section-5
> > <https://tools.ietf.org/html/draft-ietf-oauth-pop-
> > architecture-08#section-5>):
> > > >
> > > >          Strong, fresh session keys:
> > > >
> > > >                 Session keys MUST be strong and fresh.  Each session
> > deserves an
> > > >                 independent session key, i.e., one that is generated
> > specifically
> > > >                 for the intended use.  In context of OAuth this means
> > that keying
> > > >                 material is created in such a way that can only be
> > used by the
> > > >                 combination of a client instance, protected resource,
> > and
> > > >                 authorization scope.
> > > >
> > > >
> > > > However, the mTLS draft section 3 (https://tools.ietf.org/html/
> > draft-ietf-oauth-mtls-07#section-3 <https://tools.ietf.org/html/
> > draft-ietf-oauth-mtls-07#section-3>) says:
> > > >
> > > >         The client makes protected resource requests as described in
> > > >         [RFC6750], however, those requests MUST be made over a mutually
> > > >         authenticated TLS connection using the same certificate that
> > was used
> > > >         for mutual TLS at the token endpoint.
> > > >
> > > > These two statements are contradictory: the OAuth 2.0 PoP architecture
> > effectively requires a fresh key-pair to be used for every access token
> > request, whereas this draft proposes reusing the same long-lived client
> > certificate for every single access token and every resource server.
> > > >
> > > > In the self-signed case (and even in the CA case, with a bit of work -
> > e.g., https://www.vaultproject.io/docs/secrets/pki/index.html <
> > https://www.vaultproject.io/docs/secrets/pki/index.html>) it is perfectly
> > possible for the client to generate a fresh key-pair for each access token
> > and include the certificate on the token request (e.g., as per
> > https://tools.ietf.org/html/draft-ietf-oauth-pop-key-
> > distribution-03#section-5.1 <https://tools.ietf.org/html/
> > draft-ietf-oauth-pop-key-distribution-03#section-5.1> - in which case an
> > appropriate “alg” value should probably be described). This should probably
> > at least be an option.
> > > >
> > > > This draft doesn't necessarily seek to align with the (long expired)
> > PoP architecture draft.  Rather it is aiming to provide a pragmatic
> > solution for PoP style access tokens and OAuth client auth using mTLS
> > client certificates.
> > > >
> > > > That said, with the current draft, it's certainly possible for a
> > client to update its cert more frequently, even so far as using a new one
> > for each access token. The details of how that would work will vary some
> > based on the token endpoint authentication method. But it's not precluded.
> > > >
> > > > *** You are right, the text doesn’t preclude that. I am happy with
> > that solution. I suspect most people will deploy and be happy with reusing
> > a long-lived cert for every access token, so this may not matter in
> > practice.
> > > >
> > > >
> > > > 7. The use of a single client certificate with every resource server
> > (RS) should be called out in a Privacy Considerations section, as it allows
> > correlation of activity.
> > > >
> > > > Practically speaking the access tokens being presented likely already
> > have correlatable info in them about the client as well as the user. I
> > don't know that there's much of a (new) concern in reality. If you feel
> > this concern is unique and import enough though, perhaps there's some text
> > you'd like to propose for a Privacy Considerations section that the WG
> > could consider? I mean, I guess it doesn't hurt to mention it but I would
> > like to avoid overstating the issue.
> > > >
> > > > *** On reflection, I am going to withdraw this comment. As you say
> > there are other ways to correlate clients. The privacy issue would mainly
> > arise in the context of dynamic client registration e.g., a pattern I’ve
> > seen described where every instance of a mobile app does dynamic client
> > registration to avoid including credentials directly in the app bundle.
> > This would make clients one-to-one with users. But (a) those apps are
> > fairly unlikely to be using TLS certs, and (b) that is more of a privacy
> > consideration for dynamic client registration rather than this draft.
> > > >
> > > >
> > > >
> > > > 8. This is maybe a more general point, but RFC 6750 defines the
> > Authorization: Bearer scheme (https://tools.ietf.org/html/
> > rfc6750#section-2 <https://tools.ietf.org/html/rfc6750#section-2>) for a
> > client to communicate it’s access token to the RS in a standard way. As
> > sender-constrained access tokens are not strictly bearer tokens any more,
> > should this draft also register a new scheme for that? Should there be a
> > generic PoP scheme?
> > > >
> > > > The thinking and general consensus (in this draft as well as the OAuth
> > token binding work) has been that continuing to use the RFC 6750 scheme
> > while putting the "not strictly bearer" stuff in (or referenced by) the
> > token itself will be easier on deployment and implementation. And better
> > for adoption as a result. I believe some early implementation work has
> > borne that out too.
> > > >
> > > >  *** OK.
> > > >
> > > >
> > > > 9. The Security Considerations should really make some mention of the
> > long history of attacks against X.509 certificate chain validation, e.g.
> > failure to check the “CA” bit in the basic constraints, errors in parsing
> > DNs, etc. It should be strongly suggested to use an existing TLS library to
> > perform these checks rather than implementing your own checks. This relates
> > to Justin’s comments around DN parsing and normalisation.
> > > >
> > > > Suggesting to use an existing TLS library is certainly sound advice
> > and I sort of felt is implied in the draft. But saying so more
> > strongly/explicitly might be worthwhile.  And pointing to historical
> > reasons to do so would probably be good too.  Could you propose a new
> > Security Considerations section or maybe augmentation of §5.2 with that
> > content?
> > > >
> > > > *** I’ll try and come up with some text.
> > > >
> > > >
> > > >
> > > > 10. The PKI client authentication method (https://tools.ietf.org/html/
> > draft-ietf-oauth-mtls-07#section-2.1 <https://tools.ietf.org/html/
> > draft-ietf-oauth-mtls-07#section-2.1>) makes no mention at all of
> > certificate revocation and how to handle checking for that (CRLs, OCSP -
> > with stapling?). Neither does the Security Considerations. If this is a
> > detail to be agreed between then AS and the CA (or just left up to the AS
> > TLS stack) then that should perhaps be made explicit. Again, there are
> > privacy considerations with some of these mechanisms, as OCSP requests are
> > typically sent in the clear (plain HTTP) and so allow an observer to see
> > which clients are connecting to which AS.
> > > >
> > > > I didn't think that a TLS client could do OCSP stapling?
> > > >
> > > > *** I think you are right about this. I always assumed it was
> > symmetric (and I think it technically could work), but the spec only talks
> > about stapling in the server-side of the handshake.
> > > >
> > > > That aside, revocation checking (how and even if) is something that's
> > at the discretion of the AS. I can add something in §2.1 to say that more
> > explicitly.
> > > >
> > > > *** Thanks.
> > > >
> > > >
> > > >
> > > > 11. The same comment applies to how the protected resource checks for
> > revocation of the certificate presented during sender constrained access
> > token usage. Should the RS make its own revocation checks based on the
> > information in the certificate presented, or should it trust the
> > certificate while the access token is still valid? If the latter case, is
> > the AS responsible for revoking any access tokens whose certificate have
> > been revoked (if so, should it be doing an OCSP call on every token
> > introspection request, and should the RS be passing on the
> > certificate/serial number on that request)? If the Client request uses OCSP
> > Stapling (https://en.wikipedia.org/wiki/OCSP_stapling <
> > https://en.wikipedia.org/wiki/OCSP_stapling>) how can the RS verify the
> > signature on that if it does not have a separate trust relationship with
> > the CA already?
> > > >
> > > > The draft effectively uses cert mtls at the RS as a
> > proof-of-possession method only and not as authentication. So revocation
> > checking isn't really applicable. In specific deployment situations, I
> > suppose an RS could check revocation. But that'd be a deployment decision
> > for the RS that's beyond the scope of this draft.
> > > >
> > > > *** OK, that is an interesting observation. If either the client or AS
> > suspect the key has been compromised they can revoke the access token(s)
> > instead.
> > > >
> > > >
> > > >
> > > > 12. The use of only SHA-256 fingerprints means that the security
> > strength of the sender-constrained access tokens is limited by the
> > collision resistance of SHA-256 - roughly “128-bit security" - without a
> > new specification for a new thumbprint algorithm. An implication of this is
> > that is is fairly pointless for the protected resource TLS stack to ever
> > negotiate cipher suites/keys with a higher level of security. In more
> > crystal ball territory, if a practical quantum computer becomes a
> > possibility within the lifetime of this spec, then the expected collision
> > resistance of SHA-256 would drop quadratically, allowing an attacker to
> > find a colliding certificate in ~2^64 effort. If we are going to pick just
> > one thumbprint hash algorithm, I would prefer we pick SHA-512.
> > > >
> > > > The idea behind haveing just one thumbprint hash algorithm was to keep
> > things simple. And SHA-256 seems good enough for the reasonably foreseeable
> > future (and space aware). Also a new little spec to register a different
> > hash algorithm, should the need arise, didn't seem particularity onerous.
> > > >
> > > > That was the thinking anyway. Maybe it is too short sighted though?
> > > >
> > > > I do think SHA-256 should stay regardless.
> > > >
> > > > But the draft could also define SHA-512 (and maybe others). What do
> > you and WG folks think about that?
> > > >
> > > > *** Yes please.
> > > >
> > > > It would probably then be useful for the metadata in §3.3 and §3.4 to
> > change from just boolean values to something to convey what hash alg/cnf
> > method the client expects and the list of what the server supports. That's
> > maybe something that should be done anyway. That'd be a breaking change to
> > the metadata. But there's already another potential breaking change
> > identified earlier in this message. So maybe it's worth doing...
> > > >
> > > > How do folks feel about making this kind of change?
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Cheers,
> > > >
> > > > Neil
> > > >
> > > >
> > > > > On 19 Mar 2018, at 22:34, Rifaat Shekh-Yusef <rifaat.ietf@gmail.com
> > <mailto:rifaat.ietf@gmail.com>> wrote:
> > > > >
> > > > > All,
> > > > >
> > > > > As discussed during the meeting today, we are starting a WGLC on the
> > MTLS document:
> > > > > https://tools.ietf.org/html/draft-ietf-oauth-mtls-07 <
> > https://tools.ietf.org/html/draft-ietf-oauth-mtls-07>
> > > > >
> > > > > Please, review the document and provide feedback on any issues you
> > see with the document.
> > > > >
> > > > > The WGLC will end in two weeks, on April 2, 2018.
> > > > >
> > > > > Regards,
> > > > >  Rifaat and Hannes
> > > > >
> > > > > _______________________________________________
> > > > > OAuth mailing list
> > > > > OAuth@ietf.org <mailto:OAuth@ietf.org>
> > > > > https://www.ietf.org/mailman/listinfo/oauth <
> > https://www.ietf.org/mailman/listinfo/oauth>
> > > >
> > > >
> > > > _______________________________________________
> > > > OAuth mailing list
> > > > OAuth@ietf.org <mailto:OAuth@ietf.org>
> > > > https://www.ietf.org/mailman/listinfo/oauth <
> > https://www.ietf.org/mailman/listinfo/oauth>
> > > >
> > > >
> > > >
> > > > CONFIDENTIALITY NOTICE: This email may contain confidential and
> > privileged material for the sole use of the intended recipient(s). Any
> > review, use, distribution or disclosure by others is strictly prohibited.
> > If you have received this communication in error, please notify the sender
> > immediately by e-mail and delete the message and any file attachments from
> > your computer. Thank you.
> > > >
> > > >
> > > > CONFIDENTIALITY NOTICE: This email may contain confidential and
> > privileged material for the sole use of the intended recipient(s). Any
> > review, use, distribution or disclosure by others is strictly prohibited.
> > If you have received this communication in error, please notify the sender
> > immediately by e-mail and delete the message and any file attachments from
> > your computer. Thank you.
> > >
> >
> > > _______________________________________________
> > > OAuth mailing list
> > > OAuth@ietf.org
> > > https://www.ietf.org/mailman/listinfo/oauth
> >
> >
> 
> -- 
> _CONFIDENTIALITY NOTICE: This email may contain confidential and privileged 
> material for the sole use of the intended recipient(s). Any review, use, 
> distribution or disclosure by others is strictly prohibited.  If you have 
> received this communication in error, please notify the sender immediately 
> by e-mail and delete the message and any file attachments from your 
> computer. Thank you._