RE: Client Certificates - re-opening discussion

Mike Bishop <Michael.Bishop@microsoft.com> Mon, 21 September 2015 03:35 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E2BD41A6FFC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 20 Sep 2015 20:35:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.011
X-Spam-Level:
X-Spam-Status: No, score=-7.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 h-ZxzX4CtXtz for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 20 Sep 2015 20:35:38 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0275F1A6FF1 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 20 Sep 2015 20:35:36 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ZdrpE-0003Tc-DB for ietf-http-wg-dist@listhub.w3.org; Mon, 21 Sep 2015 03:31:32 +0000
Resent-Date: Mon, 21 Sep 2015 03:31:32 +0000
Resent-Message-Id: <E1ZdrpE-0003Tc-DB@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <Michael.Bishop@microsoft.com>) id 1Zdrp4-0003SW-Ui for ietf-http-wg@listhub.w3.org; Mon, 21 Sep 2015 03:31:22 +0000
Received: from mail-bn1on0130.outbound.protection.outlook.com ([157.56.110.130] helo=na01-bn1-obe.outbound.protection.outlook.com) by lisa.w3.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from <Michael.Bishop@microsoft.com>) id 1Zdrp1-0006n1-PE for ietf-http-wg@w3.org; Mon, 21 Sep 2015 03:31:22 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=AURjWx5Au7V3+a3vAdmu+H55Uaymnp7zCM7tBlA6WMY=; b=ANAcgQTQEdcRYImuC1V3VKt2BVshrt62rq+IjZDuYMl5D9YgR6YmcuyMzSop2eFQhGvYMxevG6zfk9lEA4vpP8fyplwpVAo+y28gwim6b2jdcjL0JGbArZFUs9NA50L/1UZpy2fzKRIvcE3cqHh1hX44ZUdtNFLW7xkjDR8XzGw=
Received: from CY1PR03MB1374.namprd03.prod.outlook.com (10.163.16.28) by CY1PR03MB1376.namprd03.prod.outlook.com (10.163.16.30) with Microsoft SMTP Server (TLS) id 15.1.274.16; Mon, 21 Sep 2015 03:30:50 +0000
Received: from CY1PR03MB1374.namprd03.prod.outlook.com ([10.163.16.28]) by CY1PR03MB1374.namprd03.prod.outlook.com ([10.163.16.28]) with mapi id 15.01.0274.009; Mon, 21 Sep 2015 03:30:50 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Yoav Nir <ynir.ietf@gmail.com>
CC: Eric Rescorla <ekr@rtfm.com>, Stefan Eissing <stefan.eissing@greenbytes.de>, Ilari Liusvaara <ilari.liusvaara@elisanet.fi>, Mark Nottingham <mnot@mnot.net>, Henry Story <henry.story@co-operating.systems>, HTTP Working Group <ietf-http-wg@w3.org>
Thread-Topic: Client Certificates - re-opening discussion
Thread-Index: AQHQ8ZZXEEnFRnQG4U+imwUG9Fc1t55ChnhKgAA9MwCAAAJwAIAArZ+AgAC4BACAAD7oMIABjocAgABckDA=
Date: Mon, 21 Sep 2015 03:30:50 +0000
Message-ID: <CY1PR03MB1374BE698FEB732EBB9BD96087460@CY1PR03MB1374.namprd03.prod.outlook.com>
References: <63DECDF0-AB59-4AFD-8E48-8C2526FD6047@mnot.net> <42DDF1C6-F516-4F71-BAE0-C801AD13AA01@co-operating.systems> <2F3BD1CB-042D-48AB-8046-BB8506B8E035@mnot.net> <CABcZeBNpjbNdeqxP_cwCDygk6_MVDoNhqcMEDmEvEBxztmonLg@mail.gmail.com> <20150918205734.GA23316@LK-Perkele-VII> <70D2F8CE-D1A2-440F-ADFC-24D0CE0EDCF1@greenbytes.de> <CABcZeBPNxEA6O324tnF3dbUCLD-a7uUvWYYjO1pnYwAm9cN2eA@mail.gmail.com> <CY1PR03MB1374F1CA73EFDA80C7CE44E887580@CY1PR03MB1374.namprd03.prod.outlook.com> <9BD53F44-94BA-4931-891A-BD94B5F440D0@gmail.com>
In-Reply-To: <9BD53F44-94BA-4931-891A-BD94B5F440D0@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com;
x-originating-ip: [2601:600:8300:56c:a1bf:8fe2:56c:cbb7]
x-microsoft-exchange-diagnostics: 1; CY1PR03MB1376; 5:8jWJRvfvf3R24nfULngbBbVLsQAPJYRgS2YPHC3ivs0Qp1I6RBtBUk0GyjkdTw0uapSf7M7nf+XOnB8V5MmJlCoNF+98hW+x31KBoMWOicMWpAlR3FzdZY9i3PSKI+ZIT4Rvuj/glOAC39tWYj0R/Q==; 24:aTUAqPp+iKUzLncKHhP0rrtbYGJ3rxaaM95yMAy9nPIQQ7uDWTzyUOt0UNvkHy+7xs4K87R1hcwbbLvl+MuJJb/YdmQBYXwsZozd91t8uQo=; 20:4x+uC5TbJhIvUDRCJYFrXQNuW5Ur4nm+vH6QMbEZqrUroqp0OcU4ffCA+Ttn59rQmoUtOhvmHtZE0bApWAuQRg==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1376;
x-exchange-antispam-report-cfa: BCL:0; PCL:0; RULEID:; SRVR:CY1PR03MB1376; BCL:0; PCL:0; RULEID:; SRVR:CY1PR03MB1376;
x-forefront-prvs: 07063A0A30
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(55674003)(189002)(377454003)(199003)(24454002)(19580405001)(81156007)(16236675004)(19580395003)(8990500004)(77096005)(5004730100002)(2950100001)(68736005)(10400500002)(15975445007)(102836002)(87936001)(2900100001)(10290500002)(5003600100002)(99286002)(64706001)(4001540100001)(97736004)(11100500001)(5001860100001)(5002640100001)(5005710100001)(5001830100001)(86362001)(93886004)(106356001)(86612001)(106116001)(46102003)(33656002)(105586002)(110136002)(10090500001)(101416001)(76176999)(92566002)(62966003)(40100003)(77156002)(74316001)(76576001)(50986999)(122556002)(19625215002)(19300405004)(54356999)(19609705001)(189998001)(3826002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR03MB1376; H:CY1PR03MB1374.namprd03.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_CY1PR03MB1374BE698FEB732EBB9BD96087460CY1PR03MB1374namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Sep 2015 03:30:50.5633 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1376
Received-SPF: pass client-ip=157.56.110.130; envelope-from=Michael.Bishop@microsoft.com; helo=na01-bn1-obe.outbound.protection.outlook.com
X-W3C-Hub-Spam-Status: No, score=-4.2
X-W3C-Hub-Spam-Report: AWL=-2.749, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_NW=0.5
X-W3C-Scan-Sig: lisa.w3.org 1Zdrp1-0006n1-PE 21191ec23cdd41bfb8985f9dfe2030ce
X-Original-To: ietf-http-wg@w3.org
Subject: RE: Client Certificates - re-opening discussion
Archived-At: <http://www.w3.org/mid/CY1PR03MB1374BE698FEB732EBB9BD96087460@CY1PR03MB1374.namprd03.prod.outlook.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/30240
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Better than renegotiation?  Nothing – which is the point.  Renegotiation worked, and our first step is parity with downlevel.  Renegotiation, however, attempted to bring many functions together, some of which made the TLS WG uncomfortable.  This PR creates a more scoped feature targeted at only the presentation of client credentials to the server, which is the feature we actually need.

It sounds like, in part, we have different understandings of why renegotiation was prohibited in the first place.  You argue it was prohibited because there’s some inherent indeterminacy, particularly if the application layer doesn’t stall.  I’d argue that that indeterminacy can and should be handled by the application that knows what resources care about the client’s identity and which don’t.

If multiple requests cause the server application to query the HTTP layer for the client’s certificate, then all those requests will wait until the client authentication has completed, just as they would have on a non-multiplexed connection.  Where multiplexing adds a new wrinkle is that, under HTTP/1.1, those connections that didn’t require authentication would proceed without interruption until they’re used for a protected request.

Perhaps the fundamental question is, when does the client need to know that the server had seen the certificate prior to generating the response?  In HTTP/1.1 over TLS 1.x, it could know that the server had seen it, but couldn’t know whether the server cared.

From: Yoav Nir [mailto:ynir.ietf@gmail.com]
Sent: Sunday, September 20, 2015 2:49 PM
To: Mike Bishop <Michael.Bishop@microsoft.com>
Cc: Eric Rescorla <ekr@rtfm.com>; Stefan Eissing <stefan.eissing@greenbytes.de>; Ilari Liusvaara <ilari.liusvaara@elisanet.fi>; Mark Nottingham <mnot@mnot.net>; Henry Story <henry.story@co-operating.systems>; HTTP Working Group <ietf-http-wg@w3.org>
Subject: Re: Client Certificates - re-opening discussion

Hi, Mike

On Sep 20, 2015, at 1:10 AM, Mike Bishop <Michael.Bishop@microsoft.com<mailto:Michael.Bishop@microsoft.com>> wrote:

Kind of a non-problem, but it’s also the problem itself.  The HTTP layer will call different APIs in TLS, but the API HTTP exposes (get client certificate) won’t necessarily change.

·       HTTP/1.x + TLS <=1.2 – Client certs work via renegotiation

·       HTTP/x + TLS 1.3 – Client certs work via new TLS feature that isn’t renegotiation

·       HTTP/2 + TLS 1.2 – How do client certs work?

It’s a time-scoped problem, since we hope everyone will eventually be on TLS 1.3, but it’s a nearly-universal problem at the moment.  There are many proposed kludges for HTTP/2 over TLS 1.2 in the meantime, but we need to find something with broader support than any idea currently has.

I’m not sure I see how PR #209 solves the issue.

HTTP/2 prohibited renegotiation because HTTP/2 is non-sequential. A bunch of requests may be in process and it is non-deterministic which responses will be generated before, during and after the client authentication. One resource might trigger the renegotiation, but several others might receive different responses based on whether or not the user is authenticated.

Now suppose we replace renegotiation with the mechanism proposed in PR #209. Some resource triggers the TLS layer, but instead of triggering a re-negotiation by sending a HelloRequest, it triggers client certificate authentication by sending a CertificateRequest. This is different in some senses: there is no change to the master secret; the old channel bindings are still valid; session keys are not replaced. I don’t see what difference this makes. The connection still changes from a state where the client is anonymous to a state where the client is authenticated. Requests sent by the client still may have been responded to before, during or after the change of state.

Maybe I’m missing something, but I don’t see what #209 does that renegotiation did not.

Yoav