Re: [OAUTH-WG] Review of oauth-mtls-07

Justin Richer <jricher@mit.edu> Wed, 28 March 2018 21:57 UTC

Return-Path: <jricher@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 E589D127863 for <oauth@ietfa.amsl.com>; Wed, 28 Mar 2018 14:57:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level:
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 0cKTbs-jugFZ for <oauth@ietfa.amsl.com>; Wed, 28 Mar 2018 14:57:25 -0700 (PDT)
Received: from dmz-mailsec-scanner-6.mit.edu (dmz-mailsec-scanner-6.mit.edu [18.7.68.35]) (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 014EA127775 for <oauth@ietf.org>; Wed, 28 Mar 2018 14:57:24 -0700 (PDT)
X-AuditID: 12074423-627ff70000005664-dc-5abc0fc2f8d7
Received: from mailhub-auth-3.mit.edu ( [18.9.21.43]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-6.mit.edu (Symantec Messaging Gateway) with SMTP id 6C.1E.22116.2CF0CBA5; Wed, 28 Mar 2018 17:57:23 -0400 (EDT)
Received: from outgoing.mit.edu (OUTGOING-AUTH-1.MIT.EDU [18.9.28.11]) by mailhub-auth-3.mit.edu (8.13.8/8.9.2) with ESMTP id w2SLvLVI026165; Wed, 28 Mar 2018 17:57:21 -0400
Received: from [192.168.1.12] (static-71-174-62-56.bstnma.fios.verizon.net [71.174.62.56]) (authenticated bits=0) (User authenticated as jricher@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id w2SLvJqH029549 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 28 Mar 2018 17:57:20 -0400
From: Justin Richer <jricher@mit.edu>
Message-Id: <E4EB053C-173F-4D9C-95B2-630B6044D442@mit.edu>
Content-Type: multipart/alternative; boundary="Apple-Mail=_957F5D66-4870-41D3-A478-C0B3E7869397"
Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\))
Date: Wed, 28 Mar 2018 17:57:18 -0400
In-Reply-To: <CA+k3eCRt6C2F+dFw=zbXLmLgMpNSG=fcJKsJ-EXZJC6q=FwoPQ@mail.gmail.com>
Cc: "<oauth@ietf.org>" <oauth@ietf.org>
To: Brian Campbell <bcampbell@pingidentity.com>
References: <86368D0D-EB6D-4803-8AC3-C587405BAA32@mit.edu> <CA+k3eCRt6C2F+dFw=zbXLmLgMpNSG=fcJKsJ-EXZJC6q=FwoPQ@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.5.20)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIKsWRmVeSWpSXmKPExsUixCmqrXuYf0+UwdJrwhar/99ktDj59hWb A5PHkiU/mTzuHr3IEsAUxWWTkpqTWZZapG+XwJUx785vloK/+RXP5qxiamCcFtfFyMkhIWAi cfbZI+YuRi4OIYHFTBI969+wgSSEBDYySpzc7QaRuM4kseDcKlaQBJuAqsT0NS1MIDavgJXE pdfn2EFsZoEkiYNrf7NAxE0k3r99CFYjLKAvsezlWbChLEC9e3c1AW3j4OAUCJR41sEPYjIL qEu0n3QBqRABqr79dA47xNpGRolrD96yQxyqJDH9+222CYz8s5Bsm4VkG0RcW2LZwtfMELam xP7u5SyY4hoSnd8msi5gZFvFKJuSW6Wbm5iZU5yarFucnJiXl1qka6aXm1mil5pSuokRFNbs Lso7GF/2eR9iFOBgVOLhtVi0O0qINbGsuDL3EKMkB5OSKO/hN0AhvqT8lMqMxOKM+KLSnNTi Q4wSHMxKIrzvNYByvCmJlVWpRfkwKWkOFiVxXg8T7SghgfTEktTs1NSC1CKYrAwHh5IE7ze+ PVFCgkWp6akVaZk5JQhpJg5OkOE8QMOvg9TwFhck5hZnpkPkTzHacxx6P6WHmeMcmJyyZBqQ PHYZSAqx5OXnpUqJ8+4HaRMAacsozYObDEpZ7uvsLF4xigM9Ksy7G6SKB5ju4Ga/AlrLBLR2 W9MOkLUliQgpqQZGI/b0ltiNOzhWLZkZXGvhlnCt/sTZ3LMXPnb9aU5il03zUbzAtKeC/9VC x/IfVz9n9N39nukzzVfl8TuDnswXXArqZ4Oj7RsvtbX9FBL2t3xXUv54C9PZqHWG7mnS8wWf R87X6T0wu5v9y+pIq/0LKztUv1isYVLMsgyqfWTGKP5a7doVpkAlluKMREMt5qLiRAC50nQW NAMAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/7g03ITS8e_reXoaTMjxUMoOkfDM>
Subject: Re: [OAUTH-WG] Review of 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: Wed, 28 Mar 2018 21:57:28 -0000

Thanks for the responses. I’ve cut out places where we seem to agree here and responded to the rest inline below. 

>  
> 
> §2.1¶1: It would be helpful to have a pointer on methods of comparing DNs. In our implementation we serialize them to strings using a canonical format (RFC2253) and doing a string comparison based on that. There are probably other ways, but it would be good to help developers avoid doing something naive like comparing two different serializations as strings. 
> 
> That's really an implementation detail but I can note that some kind of normalization is likely needed in comparing DNs. 

Might be worth pointing to to RFC4514 in a non-normative example here. The thing is, there are equivalent DNs that aren’t exact string copies of each other. We’ll want to avoid developers either doing a naive string comparison (leading to false negatives) or doing their own home-made regexes (leading to probable breakage and potentially security holes).

> 
>  
> §2.1¶1: “configured or registered” is an unnecessary distinction, 6749 calls it “registered” regardless of how it got there
> 
> While I suppose that's true about 6749, I think colloquially 'registered' and 'configured' have come to have more meaning to some/many people about how the client came to be setup at the AS. So it might be strictly unnecessary but I'd prefer to keep the "configured or registered" just to help say that it doesn't matter how the AS came to get the expected DN for client.

That’s a fair assessment, and I’m fine with it as-is in that case.

>       
>  
> §2.1.1¶1: Is it necessary to introduce the registry here instead of just pointing to it? I’m fine with stating that the values are used in both discovery and client registration. 
> 
> I had a hard time describing things concisely here because of the history of how and when the authentication methods registry came to be, it's name, and where it's used.  That text in ¶1 is what I was able to come up with that I thought adequately explained it. It's admittedly not the most elegant prose ever written but it does convey the info and I'm inclined to leave it. However, I would be happy to consider alternative text here, if you've got something specific to propose.

I guess I just don’t think all that history is really needed right here. So I’d replace it with:

For the PKI method of mutual TLS client authentication, this specification
   defines and registers the following authentication method metadata
   value into the "OAuth Token Endpoint Authentication Methods" registry
   [IANA.OAuth.Parameters <https://tools.ietf.org/html/draft-ietf-oauth-mtls-07#ref-IANA.OAuth.Parameters>].
If you feel it needs a reference, you can potentially put it in intro paragraph of the IANA section that sets the values, maybe? (§6.3)

In the end I’m fine if the text stays — it’s not incorrect, I just feel it’s superfluous. Same comments apply to the other sections so I’m not going to copy them here.

>  
> 
> §A¶2: This paragraph reads a bit overly defensive. I understand the need to position the two drafts in relationship to each other, but the tone here could be adjusted significantly without losing the thrust of the main argument.
> 
> The line about Token Binding not having a monopoly on the binding of tokens is admittedly a bit tongue-in-cheek and also a nod to the point you made the other day about running out of names. 
> 
> Honestly though, this text wasn't intended to be defensive and, even when I read it again, it doesn't come off that way to me. As usual, if you've got specific text to propose that you think would be better, I'd be happy to consider it. But I don't feel like the current text is particularly problematic or in need of change. 

I took a crack at rewriting the second paragraph (note that I removed the first sentence entirely), but in the end it’s up to you how you want to present the comparison between the documents:

   Token Binding uses bare keys that are generated on the client, which avoids many of
   the difficulties of creating, distributing, and managing the certificates used in this specification.
   However, Token Binding requires support across different portions of the application
   stack, including TLS and browser implementations. At the time of this writing,
   there is relatively little support for it in available application
   development platforms and tooling.  On the other hand, mutual TLS has been around for some time
   and enjoys widespread support in web servers and development
   platforms. As a consequence, Mutual TLS for OAuth 2.0 can be built and deployed now
   using existing platforms and tools. In the future, the two specifications are likely to be
   deployed in parallel for solving similar problems in different environments.

— Justin