Re: HTTP/2 and TLS 1.3 post-handshake authenication

"Martin Thomson" <mt@lowentropy.net> Tue, 02 April 2019 13:36 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 (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1709F120113 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 2 Apr 2019 06:36:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.999
X-Spam-Level:
X-Spam-Status: No, score=-2.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=GB9pYP4V; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=XRYkbvrL
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 lIZKmhfz5UQQ for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 2 Apr 2019 06:36:02 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (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 E28B61200DB for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 2 Apr 2019 06:36:01 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1hBJXY-00030F-5I for ietf-http-wg-dist@listhub.w3.org; Tue, 02 Apr 2019 13:33:24 +0000
Resent-Date: Tue, 02 Apr 2019 13:33:24 +0000
Resent-Message-Id: <E1hBJXY-00030F-5I@frink.w3.org>
Received: from titan.w3.org ([2603:400a:ffff:804:801e:34:0:4c]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <mt@lowentropy.net>) id 1hBJXW-0002zX-Ns for ietf-http-wg@listhub.w3.org; Tue, 02 Apr 2019 13:33:22 +0000
Received: from out2-smtp.messagingengine.com ([66.111.4.26]) by titan.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <mt@lowentropy.net>) id 1hBJXS-00054G-75 for ietf-http-wg@w3.org; Tue, 02 Apr 2019 13:33:22 +0000
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 391A421FF3 for <ietf-http-wg@w3.org>; Tue, 2 Apr 2019 09:32:57 -0400 (EDT)
Received: from imap2 ([10.202.2.52]) by compute1.internal (MEProxy); Tue, 02 Apr 2019 09:32:57 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:in-reply-to:references:date:from:to :subject:content-type; s=fm1; bh=mjIwmblPlgjyLHLZkgZId9S6ecvQvEk bxLo/spzRy+M=; b=GB9pYP4V5HfG8dCroi1xvIHh+baUTM9xKBBcQ3hVuFdabRh IUAGgvfBaW/7vagINe/1RoRuFt67lPsl5rfJaSU3sQqrZT31XVh8HcVbzD5+FHi2 4L7+sVoMBmk3psJg5xmJa3cGuAKVk5T+y3bOv6faSr0FMN5hXAkIlJjazTWQqcFA gILL/VfJReawZSPNS6v/ZqVqPTC9KpCz6Yf/4DS38eGBqhLLX3OmZOyIdwUkHvm2 FYwXZ1i+1LkFSji1Y7/vc/TyJBVPghDS1J5gWSR4a01n1IziinXj/S3WL07aIQGP 5ehaIu6G7TDjDLZTWmk8M7qGF5Bgw1oumhOhAGg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=mjIwmb lPlgjyLHLZkgZId9S6ecvQvEkbxLo/spzRy+M=; b=XRYkbvrLCMONbqKoGdQuFW 1uhfBpeDlXjlyYTSGsQ2l2XhqYCQ2WdWZdBJra3EXZs8aBezgj/k9W+358IGoZb/ CDq1WP2YXjlMWzhgIFcNllXnu7BsWrSBUJmdhEBh/rB0ThJcYjld9LlD/iNC4sOj zTjTl75+PwIZTe0l+pLNr6A8R8UhnsQ1vQ1gfxUVdELfaVq8Cg36XbpTQtHKt/Jy c4lcFO2ySnta4fsOAYfZC2fKUMCrKG0MJiYPFhB0A+Rzam117QCYR4ePcWbl5nZF +y/UYsolXZJ5AnGmAfm18OIT3A6ffZdJFgRG3b7T5AylJcwT0a/aUteL65w2mq0A ==
X-ME-Sender: <xms:iGSjXEzl6BG50cWTaGCdFCGeJHDNRxs2fsGxm-xM_xZDTFTfDQCa7A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrtddtgdegieculddtuddrgedutddrtddtmd cutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurhepofgfgg fkjghffffhvffutgesthdtredtreertdenucfhrhhomhepfdforghrthhinhcuvfhhohhm shhonhdfuceomhhtsehlohifvghnthhrohhphidrnhgvtheqnecuffhomhgrihhnpehoph gvnhhsshhlrdhorhhgpdhivghtfhdrohhrghenucfrrghrrghmpehmrghilhhfrhhomhep mhhtsehlohifvghnthhrohhphidrnhgvthenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:iGSjXLMHPTggPQPvsuBz0EzgUsttvErPgELDohP7rVeA4PRx_cW5eg> <xmx:iGSjXOhts3YNpmivjyjGULmUBoIaRWCUYUKkcx_VH32u4yaw-AK05g> <xmx:iGSjXBXg_d1i-QLtr4ihQeokNJayQo8wHaPP85o4WYAUzo9HlKquPg> <xmx:iWSjXN7kmc8feNfzc22hK2e992hwwEokBYgFwabBmqCJPt2n79JWmA>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id BD8817C1B9; Tue, 2 Apr 2019 09:32:56 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.6-329-gf4aae99-fmstable-20190329v1
Mime-Version: 1.0
X-Me-Personality: 92534000
Message-Id: <36b4ac76-05b2-4ec6-a35c-db6a5057d798@www.fastmail.com>
In-Reply-To: <CAF8qwaCB6jsa03jtL+9W06s+Aqh1+ftwZaM+PH-b=5Omq5KG_w@mail.gmail.com>
References: <CAF8qwaCB6jsa03jtL+9W06s+Aqh1+ftwZaM+PH-b=5Omq5KG_w@mail.gmail.com>
Date: Tue, 02 Apr 2019 09:32:54 -0400
From: Martin Thomson <mt@lowentropy.net>
To: ietf-http-wg@w3.org
Content-Type: text/plain
Received-SPF: pass client-ip=66.111.4.26; envelope-from=mt@lowentropy.net; helo=out2-smtp.messagingengine.com
X-W3C-Hub-Spam-Status: No, score=-3.6
X-W3C-Hub-Spam-Report: AWL=2.240, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1hBJXS-00054G-75 40536f7fb33c264c3b3acd4395365f1c
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP/2 and TLS 1.3 post-handshake authenication
Archived-At: <https://www.w3.org/mid/36b4ac76-05b2-4ec6-a35c-db6a5057d798@www.fastmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/36496
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: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

LGTM.  A simple fix for a known problem that no one really got around to documenting.  This was always the intent, but it never got written down.  Thanks for doing that.

Nit:

The use of "this" in "incompatible with this" is a little unclear.

On Tue, Apr 2, 2019, at 01:23, David Benjamin wrote:
> Hi all,
> 
> HTTP/2 and TLS 1.3 have a minor incompatibility around post-handshake 
> authentication. Mike Bishop suggested that, rather than add some text 
> in the secondary certs draft, it would better to make a separate 
> document that actually updates HTTP/2. I've done so and uploaded a 
> draft.
> https://tools.ietf.org/html/draft-davidben-http2-tls13-00
> https://www.ietf.org/id/draft-davidben-http2-tls13-00.txt
> 
> HTTP/2 was specified against TLS 1.2, which had a renegotiation 
> mechanism to rekey the connection. It additionally changed parameters, 
> so in HTTP/1.1, this is often used in a hack to implement reactive 
> client auth 
> <https://tools.ietf.org/html/draft-ietf-httpbis-http2-secondary-certs-03#section-1.2.1>. This hack doesn't work in a multiplexed protocol like HTTP/2, because the client cannot tell which request triggered the authentication request. Thus, HTTP/2 forbids renegotiation <https://tools.ietf.org/html/rfc7540#section-9.2.1>.
> 
> TLS 1.3 removed renegotiation and replaced it with two features: a 
> lightweight key update, and post-handshake client authentication. The 
> former is meant to be transparent and is compatible with HTTP/2. The 
> latter reintroduces renegotiation's multiplexing problems. There is no 
> spec text which says how to interpret HTTP/2's existing renegotiation 
> ban in TLS 1.3.
> 
> The draft fixes it by documenting the status quo. KeyUpdate is fine. It 
> is internal to the TLS stack and works just fine in existing 
> servers[*]. Post-handshake auth is forbidden. No existing servers 
> request it because they already do not request renegotiation, and no 
> existing clients accept it because they cannot usefully interpret it. 
> Instead, the reactive client auth use case for HTTP/2 is instead being 
> covered by draft-ietf-httpbis-http2-secondary-certs.
> 
> Note it's not sufficient to lean on the TLS 1.3 post_handshake_auth 
> extension because that extension is not correlated with ALPN. A client 
> may wish to support post-handshake auth with HTTP/1.1, for continuity 
> with the TLS 1.2 renego hack, while still supporting HTTP/2.
> 
> David
> 
> [*] Aside from an OpenSSL bug 
> <https://mailarchive.ietf.org/arch/msg/tls/Aw1WY5gBAifAZXowgx5Ym82RIKI> 
> which, pertinently, made some applications misinterpret it as a 
> renegotiation to be blocked. That bug has been fixed in OpenSSL 1.1.1b 
> <https://www.openssl.org/news/changelog.html#x1>.