Re: [OAUTH-WG] New Version Notification for draft-campbell-oauth-tls-client-auth-00.txt

Samuel Erdtman <samuel@erdtman.se> Thu, 03 November 2016 16:48 UTC

Return-Path: <samuel@erdtman.se>
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 934A4129497 for <oauth@ietfa.amsl.com>; Thu, 3 Nov 2016 09:48:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=erdtman-se.20150623.gappssmtp.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 xqp29MEQsZD6 for <oauth@ietfa.amsl.com>; Thu, 3 Nov 2016 09:48:18 -0700 (PDT)
Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (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 A47521293F3 for <oauth@ietf.org>; Thu, 3 Nov 2016 09:48:17 -0700 (PDT)
Received: by mail-lf0-x230.google.com with SMTP id b14so44177674lfg.2 for <oauth@ietf.org>; Thu, 03 Nov 2016 09:48:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=erdtman-se.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Q8iGafBmmE1eNJMHNwTIi7KaBvuqshdBJPSB7Q/3CKU=; b=AmZeZnCmzXxtftqQj1znB4ZUD9C+pzwuJOvkWofaiyZs+6drRneS5Uc+6HRqnqtJkp yGkYBez/nlXH9+hX9TX0eRlxDmAvdtqIdQA6OkD36vY4768NCVnRkpR4JcLL/VuB3TFn pb0OZypkUX2KhqCXA52J4JAzQdjQc4SoG+uWV9tRSgSQtMsXT47MAT+qaS0ucJaEAbra QTOED7Mx4ERywL4cADvBB9AuvboB4gfXk24i9Jy2XWKXNapVEbCy0ACZTIgU0H6TIWKk 2H9fMUkvsK2c+adtL8Bk1MMgWrlIU2JPos4ainJRLyAKik+gyMQPihNy9pzzQc8jwbrV FJEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Q8iGafBmmE1eNJMHNwTIi7KaBvuqshdBJPSB7Q/3CKU=; b=mY+p/oSiJipbuwZ+H5LzTY+bHWdq1X8Ji57eZ2zkBoBtvRdDvKaRb8dawIa4NK2pz/ 2U47eoO0Pbpnclkm6EaIytHhnke0TflwQZ/M1+a41Z0tTGyrSIfp9YiXJ46IXTWs3xzv 64q3mCBJRQ6HMv9/TPFjD4GC5cJS3UV2gt23gsT/Ofy9ln8WixbU4h8Y3ZXmQ4UsDlyh d5N7CbcnqnXolwlZQbShYT35V3zXSvEEtwAnOyc5fgsnKqQ7pKoCxWajEcuEFkxl2Bim DCUAji0WZq0ZwiXamp6Rs9TlYgc27OKED8jXlED32TPXKnNHKM+SSs3CBqfO6BfyY7dC U3GQ==
X-Gm-Message-State: ABUngvfW5Lg4pvPMQ4igSxUVM/4NRj1GQ1K1L68TnbMpQOvXlMNpYDrrzcHva5IKLh/0Z+NHlkd1uwFZ1iw3Lg==
X-Received: by 10.194.222.202 with SMTP id qo10mr8252077wjc.115.1478191695552; Thu, 03 Nov 2016 09:48:15 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.172.232 with HTTP; Thu, 3 Nov 2016 09:48:14 -0700 (PDT)
In-Reply-To: <67189330-9FC0-4A10-815D-9EA5047BA3EF@mit.edu>
References: <147613227959.31428.2920748721017165266.idtracker@ietfa.amsl.com> <9CDE07EB-E5B4-43B2-B3C1-F12569CAB458@ve7jtb.com> <26838e0e-1aee-04ca-4f7e-f6cff8dcfacf@connect2id.com> <CA+k3eCQaWm+O8VMNGGJG41j=dW2vqa4n6QZgKmVM9=d0HxgnCA@mail.gmail.com> <853d5445-72e4-a1fb-b89c-919864f051f6@connect2id.com> <CAF2hCbYn5_qBTmYkeJVCtJ-0=zWdRcFfu+0cHHb4ygo6as_V6w@mail.gmail.com> <CA+k3eCRXss-4_Cxmi41YAcXHh0VKeHogGT=xNkAo1mU6e5WG1w@mail.gmail.com> <CAF2hCbaEi4ntDwbWpTJ4-7_uwunK5WhpsoVLKds87r_s4K7n1w@mail.gmail.com> <CA+k3eCRq=P=0wqBx7O3C--fJYTEsuP1WH+1of53_oWb=bxfssw@mail.gmail.com> <41668b29-ba11-3bab-c77d-6b98bcb60280@mit.edu> <9D3DD1DC-1432-4CB9-9122-F47CB87ABD58@manicode.com> <55855cf4-e683-95b4-38e0-788f402c8cd2@mit.edu> <B6AF115B-A0FB-47B1-851B-9BC198D3E36A@manicode.com> <67189330-9FC0-4A10-815D-9EA5047BA3EF@mit.edu>
From: Samuel Erdtman <samuel@erdtman.se>
Date: Thu, 03 Nov 2016 17:48:14 +0100
Message-ID: <CAF2hCbY3-JAcDznJJbdRgJcQ79MgbvjiCVXbenv2ibokTVEUow@mail.gmail.com>
To: Justin Richer <jricher@mit.edu>
Content-Type: multipart/alternative; boundary="001a11c3ba62ec7ee90540685294"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/JMMu9iWVmK1yW5a34PeuxV21bdI>
Cc: Nat Sakimura via Openid-specs-fapi <openid-specs-fapi@lists.openid.net>, "<oauth@ietf.org>" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] New Version Notification for draft-campbell-oauth-tls-client-auth-00.txt
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.17
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, 03 Nov 2016 16:48:20 -0000

I can see your point, maybe the client_id will not be in the certificate.
If I had an AS I would select to trust one or several CAs and then create
certificate mappings between certificate serial number (or some other
unique attribute in the certificate) and client_id. If I were to bind a
specific certificate to a client_id I lose the flexibility of the PKI
(maybe what you want).

I think multiple certificates might not be a uncommon situation especially
if you call ASs from different organizations because they will trust
different CAs.

//Samuel


On Thu, Nov 3, 2016 at 5:32 PM, Justin Richer <jricher@mit.edu> wrote:

> Jim,
>
> In those circumstances, are the clients generally calling multiple
> different services? Or just one? For those that call multiple services, are
> they using multiple (different) client certificates?
>
> I’m not saying the client would issue its own cert in all cases — much
> more common is what I’ve seen, with clients being assigned a certificate
> from a trusted CA, and then services that the client talks to being told to
> trust that CA and also assign the CN/DN of the cert a set of privileges.
> What I *haven’t* seen is a client being issued multiple certificates to
> talk to multiple systems. That latter case is common enough in the OAuth
> world that I wouldn’t want us to paint ourselves in a corner.
>
>  — Justin
>
> On Nov 3, 2016, at 10:31 AM, Jim Manico <jim@manicode.com> wrote:
>
> Thanks Justin. I use several security intel services and they all have
> different cert delivery mechanisms for mutual TLS. It's •rare• for services
> to let clients choose certs, they are usually assigned to users by each
> service from my experience.
>
> Aloha,
> --
> Jim Manico
> @Manicode
> Secure Coding Education
> +1 (808) 652-3805
>
> On Nov 3, 2016, at 8:51 AM, Justin Richer <jricher@mit.edu> wrote:
>
> Yes, I elided the certificate issuance process. The point remains the
> same: you're not going to be submitting a CSR to the same party you're
> getting your client_id from, usually. If the draft assumes that, then it's
> incredibly limiting.
>
>
> Do people really use separate TLS client certs for separate connections in
> the wild? I've personally never seen that. What I've seen is that a piece
> of software gets its certificate that it uses to make whatever connections
> it needs to make.
>
>
>  -- Justin
>
> On 11/3/2016 8:48 AM, Jim Manico wrote:
>
> Just to be clear, the relationship should more like...
>
> AS issues public key to clients, or client sends public key to AS. The
> authorities job is NOT to give the client the public key, but to sign the
> public key for authenticity. It's bad practice to accept the full cert (pub
> key+signature) from an authority. If an authority is creating your public
> key, they are also creating your private key.... bad.
>
> > The client will use the same cert across multiple connections, possibly
> multiple AS's, but the same isn't true of the client_id.
>
> This seems like a bad idea. I suggest a separate key/signature for each
> service.
> --
> Jim Manico
> @Manicode
> Secure Coding Education
> +1 (808) 652-3805
>
> On Nov 3, 2016, at 8:41 AM, Justin Richer <jricher@mit.edu> wrote:
>
> I agree that the client_id is unlikely to be found inside the certificate
> itself. The client_id is issued by the authorization server for the client
> to use at that single AS. The certificate is issued by the CA for the
> client to use on any connection. The AS and CA are not likely to be the
> same system in most deployments. The client will use the same cert across
> multiple connections, possibly multiple AS's, but the same isn't true of
> the client_id.
>
> Additionally, I think we want to allow for a binding of a self-signed
> certificate using dynamic registration, much the way that we already allow
> binding of a client-generated JWK today.
>
> I do think that more examples and guidance are warranted, though, to help
> AS developers.
>
>  -- Justin
>
> On 11/2/2016 5:03 PM, Brian Campbell wrote:
>
>
> On Sun, Oct 30, 2016 at 9:27 AM, Samuel Erdtman <samuel@erdtman.se> wrote:
>
>>
>> I agree it is written so that the connection to the certificate is
>> implicitly required but I think it would be better if it was explicit
>> written since the lack of a connection would result in a potential security
>> hole.
>>
>
> That's fair. I agree it can be made more explicit and that it be good to
> do so.
>
>
>
>> When it comes to the client_id I think subject common name or maybe
>> subject serial numbers will be the common location, and I think an example
>> would be valuable.
>>
>>
>
> In my experience and the way we built support for mutual TLS OAuth client
> auth the client_id value does not appear in the certificate anywhere. I'm
> not saying it can't happen but don't think it's particularly common.
>
> I can look at adding some examples, if there's some consensus that they'd
> be useful and this document moves forward.
>
>
>
>>
>> I´m not saying it is a bad Idea just that I would prefer if it was not a
>> MUST.
>> With very limited addition of code it is just as easy to get the
>> certificate attribute for client id as it is to get it from the HTTP
>> request data (at least in java). I also think that with the requirement to
>> match the incoming certificate in some way one has to read out the
>> certificate that was used to establish the connection to do some kind of
>> matching.
>>
>>
> Getting data out of the certificate isn't a concern. I just believe that
> the constancy of having the client id parameter is worth the potential
> small amount duplicate data in some cases. It's just a -00 draft though and
> if the WG wants to proceed with this document, we seek further input and
> work towards some consensus.
>
>
>
> _______________________________________________
> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>
>
>