Re: [OAUTH-WG] New Version Notification for draft-campbell-oauth-tls-client-auth-00.txt
Sergey Beryozkin <sberyozkin@gmail.com> Thu, 10 November 2016 21:57 UTC
Return-Path: <sberyozkin@gmail.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 EFDEC12965A for <oauth@ietfa.amsl.com>; Thu, 10 Nov 2016 13:57:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 aruw7jdWNUYy for <oauth@ietfa.amsl.com>; Thu, 10 Nov 2016 13:57:57 -0800 (PST)
Received: from mail-wm0-x22a.google.com (mail-wm0-x22a.google.com [IPv6:2a00:1450:400c:c09::22a]) (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 1B20A1294C2 for <oauth@ietf.org>; Thu, 10 Nov 2016 13:57:57 -0800 (PST)
Received: by mail-wm0-x22a.google.com with SMTP id f82so58998937wmf.1 for <oauth@ietf.org>; Thu, 10 Nov 2016 13:57:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=85x82nEUmR+556Pf91NWkIZxX6wGXi821LSkDzV5f0I=; b=PmvxvFeTGQo8/oEPdztzBskDGUyQJ4kHjx95oN+5QkpkhidBI3VPu8ASeoTPK9JMIe DQTsbUXkwLLTHIS/+nHd2QlP+aJ+726uMvL5QgfyhEZKoVZKMu02/vwqQ+oFplNVQMt8 12Pkkdoc3xSWpq2TEkgMHbLNC6E5xRGStB9l8BEGSyd6L3Q1H0GuZK06plW17PgCv2EP D/MLQRDXa5OsUuW1lZXyJ1rJWGttEekwSeVRkja4650I1DMHsDpGcq7ZIaT7ZQEvQkOv PG+rb0mqTxNMZyoJwV8+DhWtV/zlHMXe1rCCNVr4A9pQzgvgIiFcub44RyFEasMPQf4R QueA==
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:content-transfer-encoding; bh=85x82nEUmR+556Pf91NWkIZxX6wGXi821LSkDzV5f0I=; b=drUDJHYB1SlSy+MPR0H/9llgjQXqTJIiPv+z8R/cOo3yTlKlBVDfBgLVfKRWQphxkr z7fHU4WHeGfGQh5aRRWNlCxitAqnwu7R4KHTM8/VGEBF0+gS+lzoTyhD4WZkMWbKGmT/ mtWI0GkH5Mo67jLhgIbuSLn7XBmcNNWzbvVnOEljGiC2bKT67JjtBqglRt63AsJ1x49W dISUfPxYVSQfqHIKA+61O02i00s7TW4RjnNQJBze17gV2zWhPNPtYCiaQd8LjJhEGrER 1rho/2hp86KrVbmikuZc/qruOOsUJKJAfywqzliUWThSDpqiiUx/UMhbZQWWBdrA5GQr 1pfA==
X-Gm-Message-State: ABUngve2mzKfnl5fowEQCRG4MWhjlKgaBdXgYebMHmC75u1m2qJYDUycnJUWPsoijfJz8A==
X-Received: by 10.28.229.213 with SMTP id c204mr14353684wmh.72.1478815075346; Thu, 10 Nov 2016 13:57:55 -0800 (PST)
Received: from [192.168.2.7] ([79.97.121.181]) by smtp.googlemail.com with ESMTPSA id c202sm24114023wme.1.2016.11.10.13.57.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 Nov 2016 13:57:54 -0800 (PST)
To: Vladimir Dzhuvinov <vladimir@connect2id.com>
References: <147613227959.31428.2920748721017165266.idtracker@ietfa.amsl.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> <CAF2hCbY3-JAcDznJJbdRgJcQ79MgbvjiCVXbenv2ibokTVEUow@mail.gmail.com> <613701d6-7857-1933-f385-0969b4b0c9ba@gmail.com> <57b45c6b-6ee4-41e6-264b-e557145991e6@connect2id.com> <e713a17b-d26b-beae-984f-8ee466a11e67@gmail.com>
From: Sergey Beryozkin <sberyozkin@gmail.com>
Message-ID: <b6083472-76e6-09e0-45ed-e1608a682bca@gmail.com>
Date: Thu, 10 Nov 2016 21:57:54 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <e713a17b-d26b-beae-984f-8ee466a11e67@gmail.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/Qv8dS2e9tpeo51MxdDNLUDMSYgs>
Cc: "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, 10 Nov 2016 21:58:00 -0000
On 10/11/16 21:57, Sergey Beryozkin wrote: > On 10/11/16 20:10, Vladimir Dzhuvinov wrote: >> >> >> On 03/11/16 19:11, Sergey Beryozkin wrote: >>> Hi >>> >>> In our implementation we support the following scenario: >>> - the client registers its public certificate during the client >>> registration >> >> Did you extend the standard client reg API for this purpose? > No. Should there be an option in the client reg API ? >> >> How does the cert registration actually take place? > The encoded certificate is an optional property of the Client class > which is part of the larger OAuth2 model. The clients are registered out > of band - the assumption that the product integrating our model will let > the admins upload a certificate associated with a given client, > alongside all the other information one would typically allocate at a > client registration time via some UI page. > In a particular integration instance I'm aware of no such option to > upload the certs is offered yet > > Sergey >> >>> >>> - next, mutual/two-way TLS is used, so AccessTokenService tries to >>> figure out the client_id. At the moment it assumes the client_id is >>> (Java) X509Certificate.getSubjectX500Principal().getName(). >>> >>> Next it retrieves a client with this name and compares the TLS >>> client/peer certificate against the pre-registered one. >>> >>> I think it may be interesting to explore further if client_id can >>> become optional based on what Samuel said. >>> >>> For example, indeed I can see how I can update our code to have a >>> mapping between some of client certificate's properties and a client >>> id stored within a Client registration. >>> >>> The question is how to find a given Client registration effectively >>> given only a certificate, without an optional client_id. One would >>> need to have a map between these client certificate attribute and >>> client_id or Clients. >>> >>> Cheers, Sergey >>> >>> >>> >>> On 03/11/16 16:48, Samuel Erdtman wrote: >>>> 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 >>>> <mailto: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 >>>>> <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 <tel:%2B1%20%28808%29%20652-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 <tel:%2B1%20%28808%29%20652-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 <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> >>>>>> >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> OAuth mailing list >>>> OAuth@ietf.org >>>> https://www.ietf.org/mailman/listinfo/oauth >>>> >>> >>> >> >> >> >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org >> https://www.ietf.org/mailman/listinfo/oauth >> > -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/
- [OAUTH-WG] Fwd: New Version Notification for draf… John Bradley
- Re: [OAUTH-WG] [Openid-specs-fapi] Fwd: New Versi… Preibisch, Sascha H
- Re: [OAUTH-WG] Fwd: New Version Notification for … Vladimir Dzhuvinov
- Re: [OAUTH-WG] Fwd: New Version Notification for … Brian Campbell
- Re: [OAUTH-WG] Fwd: New Version Notification for … Vladimir Dzhuvinov
- Re: [OAUTH-WG] Fwd: New Version Notification for … Samuel Erdtman
- Re: [OAUTH-WG] Fwd: New Version Notification for … Brian Campbell
- Re: [OAUTH-WG] Fwd: New Version Notification for … Brian Campbell
- Re: [OAUTH-WG] Fwd: New Version Notification for … Samuel Erdtman
- Re: [OAUTH-WG] Fwd: New Version Notification for … Brian Campbell
- Re: [OAUTH-WG] Fwd: New Version Notification for … Justin Richer
- Re: [OAUTH-WG] Fwd: New Version Notification for … Jim Manico
- Re: [OAUTH-WG] Fwd: New Version Notification for … Justin Richer
- Re: [OAUTH-WG] Fwd: New Version Notification for … Jim Manico
- Re: [OAUTH-WG] New Version Notification for draft… Justin Richer
- Re: [OAUTH-WG] New Version Notification for draft… Jim Manico
- Re: [OAUTH-WG] New Version Notification for draft… Samuel Erdtman
- Re: [OAUTH-WG] New Version Notification for draft… Sergey Beryozkin
- Re: [OAUTH-WG] New Version Notification for draft… Jim Manico
- Re: [OAUTH-WG] Fwd: New Version Notification for … Brian Campbell
- Re: [OAUTH-WG] New Version Notification for draft… John Bradley
- Re: [OAUTH-WG] New Version Notification for draft… Phil Hunt (IDM)
- Re: [OAUTH-WG] New Version Notification for draft… Samuel Erdtman
- Re: [OAUTH-WG] New Version Notification for draft… Phil Hunt (IDM)
- Re: [OAUTH-WG] New Version Notification for draft… Vladimir Dzhuvinov
- Re: [OAUTH-WG] New Version Notification for draft… Sergey Beryozkin
- Re: [OAUTH-WG] Fwd: New Version Notification for … Samuel Erdtman
- Re: [OAUTH-WG] Fwd: New Version Notification for … Brian Campbell
- Re: [OAUTH-WG] Fwd: New Version Notification for … Samuel Erdtman
- Re: [OAUTH-WG] Fwd: New Version Notification for … Samuel Erdtman
- Re: [OAUTH-WG] Fwd: New Version Notification for … Brian Campbell
- Re: [OAUTH-WG] Fwd: New Version Notification for … Torsten Lodderstedt
- Re: [OAUTH-WG] New Version Notification for draft… Justin Richer
- Re: [OAUTH-WG] New Version Notification for draft… Torsten Lodderstedt
- Re: [OAUTH-WG] New Version Notification for draft… Justin Richer
- Re: [OAUTH-WG] New Version Notification for draft… Torsten Lodderstedt
- Re: [OAUTH-WG] New Version Notification for draft… Brian Campbell
- Re: [OAUTH-WG] New Version Notification for draft… Brian Campbell
- Re: [OAUTH-WG] New Version Notification for draft… Justin Richer
- Re: [OAUTH-WG] Fwd: New Version Notification for … Samuel Erdtman
- Re: [OAUTH-WG] New Version Notification for draft… Samuel Erdtman
- Re: [OAUTH-WG] New Version Notification for draft… Brian Campbell
- Re: [OAUTH-WG] New Version Notification for draft… Brian Campbell
- Re: [OAUTH-WG] New Version Notification for draft… Samuel Erdtman
- Re: [OAUTH-WG] New Version Notification for draft… Jim Manico