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

Jim Manico <jim@manicode.com> Thu, 03 November 2016 16:40 UTC

Return-Path: <jim@manicode.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 008CE129658 for <oauth@ietfa.amsl.com>; Thu, 3 Nov 2016 09:40:55 -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=manicode-com.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 8hh4v_Dgd4QP for <oauth@ietfa.amsl.com>; Thu, 3 Nov 2016 09:40:50 -0700 (PDT)
Received: from mail-qt0-x235.google.com (mail-qt0-x235.google.com [IPv6:2607:f8b0:400d:c0d::235]) (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 ABA0712949B for <oauth@ietf.org>; Thu, 3 Nov 2016 09:40:49 -0700 (PDT)
Received: by mail-qt0-x235.google.com with SMTP id p16so31822712qta.0 for <oauth@ietf.org>; Thu, 03 Nov 2016 09:40:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=manicode-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to; bh=8oocJq4lC48hOxpXwyfT6pQfNiCqftjT+nbHLtcwAZ4=; b=gHK3RWbbFZ0ILtTF61pXh0TkigVLodKZphhJrv7YxIvam5sZWfV9rMBHLeuotQx5Ex LISNksvKQfhCKKwVgdlr+VTA2oAVbhjRN/aVSKZefgVTybUu91cGhbEP0h4/PX6glr40 66aUJC+563225hyMiJQ3LtKxHWshPIz67Xkfkzr0A1zc94DjbC0Je2tYa0/Hur8WFlm5 4juW1osrSEwnWdTiXUujo0FV/hzaSmRr23yzX1yeSKKcMawR0ATid4VstH5N/mq4AmJ2 ihcks99qXrlfa69exQJcBzWgh+ZWkiuoO7q3fjoDpASAj8ZkK3GHUwMS+EWL+GBSYQlJ nytg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to; bh=8oocJq4lC48hOxpXwyfT6pQfNiCqftjT+nbHLtcwAZ4=; b=TGBlzQeS/zOJHzgxjXrfOowKwrwErszgX2jfS8WdKKpH0oGdRhKH6dvh1jwisB2zeC GNxzn/e+lkwiKT/wbgw8os4+3vANj35yngkIcacyOw1I5rZajcZq0KF78s4hBGoGWQXS 9YmeWFZ+bMJFxe6iDjbzB8GTmtAucgXi+VJo4iFVWEyp2bqmngULD6UFkQWBoySG+BvW 5PDcmUxNS+8C+1fXubEEtTS2p5kOXtQdhazTCBTQ6lV6kD1iF2SsivLY2kHDTHjqHLRe sZwoD6Jus6FHeeTS6/uF7ZCoNvJZTFsqoMVzZAHNCETGLsL0Kuu7VvckAdaWNzMzlJuA 1IHQ==
X-Gm-Message-State: ABUngvdwfyVzAq+ic9rixVy26SA2m4i3PYkdXJAHR9oCZYmz9j8GjeeHUb6MYtIHD9k980rc
X-Received: by 10.200.49.41 with SMTP id g38mr8363306qtb.99.1478191248377; Thu, 03 Nov 2016 09:40:48 -0700 (PDT)
Received: from heembo.local (modemcable085.143-176-173.mc.videotron.ca. [173.176.143.85]) by smtp.googlemail.com with ESMTPSA id b94sm4889518qkb.16.2016.11.03.09.40.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Nov 2016 09:40:47 -0700 (PDT)
To: Justin Richer <jricher@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: Jim Manico <jim@manicode.com>
Message-ID: <282a8209-d597-4724-0bc6-c0c772f2cee0@manicode.com>
Date: Thu, 03 Nov 2016 12:40:46 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <67189330-9FC0-4A10-815D-9EA5047BA3EF@mit.edu>
Content-Type: multipart/alternative; boundary="------------7A2BE04C6AF5F963911E2591"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/KDnyO5QJbLVipndeWhetPK-k15I>
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:40:55 -0000

> 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?

Ah, good point. I hear you now.  I personally like the idea of "one cert
per service" so I can selectively manage each access separately, but I
understand where you are coming from and it makes sense.

Thanks for taking the time to respectfully explain your perspective and
provide me with a little education. :)

ALOHA,

Jim Manico


On 11/3/16 12:32 PM, Justin Richer 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
>> <mailto: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
>> <mailto: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
>>>> <mailto: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 <mailto: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 list
>>>>>> OAuth@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/oauth
>>>>>
>>>>> _______________________________________________
>>>>> OAuth mailing list
>>>>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>>>>> https://www.ietf.org/mailman/listinfo/oauth
>>>
>

-- 
Jim Manico
Manicode Security
https://www.manicode.com