Re: Consensus Calls for Transport/TLS issues, post-Cupertino

Christian Huitema <huitema@huitema.net> Thu, 31 October 2019 01:32 UTC

Return-Path: <huitema@huitema.net>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5BE6A12006D for <quic@ietfa.amsl.com>; Wed, 30 Oct 2019 18:32:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 rUr9YdQye09D for <quic@ietfa.amsl.com>; Wed, 30 Oct 2019 18:32:33 -0700 (PDT)
Received: from mx36-out10.antispamcloud.com (mx36-out10.antispamcloud.com [209.126.121.30]) (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 7A5C012006B for <quic@ietf.org>; Wed, 30 Oct 2019 18:32:33 -0700 (PDT)
Received: from xse119.mail2web.com ([66.113.196.119] helo=xse.mail2web.com) by mx42.antispamcloud.com with esmtp (Exim 4.89) (envelope-from <huitema@huitema.net>) id 1iPzKB-0000pX-63 for quic@ietf.org; Thu, 31 Oct 2019 02:32:31 +0100
Received: from xsmtp21.mail2web.com (unknown [10.100.68.60]) by xse.mail2web.com (Postfix) with ESMTPS id 473SVh5wsbzDJ0g for <quic@ietf.org>; Wed, 30 Oct 2019 18:32:28 -0700 (PDT)
Received: from [10.5.2.18] (helo=xmail08.myhosting.com) by xsmtp21.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1iPzK8-0005dR-Mz for quic@ietf.org; Wed, 30 Oct 2019 18:32:28 -0700
Received: (qmail 6105 invoked from network); 31 Oct 2019 01:32:28 -0000
Received: from unknown (HELO [192.168.1.101]) (Authenticated-user:_huitema@huitema.net@[172.58.43.199]) (envelope-sender <huitema@huitema.net>) by xmail08.myhosting.com (qmail-ldap-1.03) with ESMTPA for <quic@ietf.org>; 31 Oct 2019 01:32:28 -0000
To: Martin Thomson <mt@lowentropy.net>, quic@ietf.org
References: <4D6397AF-B411-4E67-AFD2-76E8F2AD462C@mnot.net> <CAPDSy+4S06qHBbitdH07Ah6gJYV+ZMY4huYLVGw14Q-n6isCrg@mail.gmail.com> <BN6PR2201MB17008576E4F8400B5DDB696FDA6B0@BN6PR2201MB1700.namprd22.prod.outlook.com> <CACpbDcf+n47NXh8XMEKx6n1fiJPZ+WyuivNmuBy1vKhZYZe6Uw@mail.gmail.com> <CAM4esxQYyTQPpF13v0AT4R=TcFOa9=UCn0nWsiqwMReYFOYDYg@mail.gmail.com> <CABcZeBM2QGC+wx-UUKMkJDqxKscOgJfhqwPhr7QXg3h-GpZwfQ@mail.gmail.com> <4d408d7a-7c50-4ccc-a42b-fb2b71b0c507@www.fastmail.com> <CABcZeBMdQPMeu862uizQYKr451Y9mvwhZ4MT7h_te5ho_Y9DOQ@mail.gmail.com> <98b890c7-d57f-484c-88d5-056e4e607465@www.fastmail.com> <CABcZeBP4BwBsySd8Phhg3fd3kTMoS6E=j5tit3pg7JKe7vrb6Q@mail.gmail.com> <1e5ae15f-56cf-47c5-930a-9f5bae59763b@www.fastmail.com> <CABcZeBP2yHXaaXYtAwYfqshrENwMaMCQsmnOd3KD2DurwGy8dg@mail.gmail.com> <CAN1APdeNFGuZh5gX0MBC-CotdSeHzrHk7jqUtZJKyCcFMc2aew@mail.gmail.com> <CABcZeBO_af+CZZse+-WpjRQWj35UjRpvZMTq0_wCGoMBQE0Z2g@mail.gmail.com> <3d4976da-b03d-469c-9242-4073d88048e3@www.fastmail.com>
From: Christian Huitema <huitema@huitema.net>
Autocrypt: addr=huitema@huitema.net; prefer-encrypt=mutual; keydata= mQENBFIRX8gBCAC26usy/Ya38IqaLBSu33vKD6hP5Yw390XsWLaAZTeQR64OJEkoOdXpvcOS HWfMIlD5s5+oHfLe8jjmErFAXYJ8yytPj1fD2OdSKAe1TccUBiOXT8wdVxSr5d0alExVv/LO I/vA2aU1TwOkVHKSapD7j8/HZBrqIWRrXUSj2f5n9tY2nJzG9KRzSG0giaJWBfUFiGb4lvsy IaCaIU0YpfkDDk6PtK5YYzuCeF0B+O7N9LhDu/foUUc4MNq4K3EKDPb2FL1Hrv0XHpkXeMRZ olpH8SUFUJbmi+zYRuUgcXgMZRmZFL1tu6z9h6gY4/KPyF9aYot6zG28Qk/BFQRtj7V1ABEB AAG0J0NocmlzdGlhbiBIdWl0ZW1hIDxodWl0ZW1hQGh1aXRlbWEubmV0PokBOQQTAQIAIwUC UhFfyAIbLwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEJNDCbJVyA1yhbYH/1ud6x6m VqGIp0JcZUfSQO8w+TjugqxCyGNn+w/6Qb5O/xENxNQ4HaMQ5uSRK9n8WKKDDRSzwZ4syKKf wbkfj05vgFxrjCynVbm1zs2X2aGXh+PxPL/WHUaxzEP7KjYbLtCUZDRzOOrm+0LMktngT/k3 6+EZoLEM52hwwpIAzJoscyEz7QfqMOZtFm6xQnlvDQeIrHx0KUvwo/vgDLK3SuruG1CSHcR0 D24kEEUa044AIUKBS3b0b8AR7f6mP2NcnLpdsibtpabi9BzqAidcY/EjTaoea46HXALk/eJd 6OLkLE6UQe1PPzQC4jB7rErX2BxnSkHDw50xMgLRcl5/b1a5AQ0EUhFfyAEIAKp7Cp8lqKTV CC9QiAf6QTIjW+lie5J44Ad++0k8gRgANZVWubQuCQ71gxDWLtxYfFkEXjG4TXV/MUtnOliG 5rc2E+ih6Dg61Y5PQakm9OwPIsOx+2R+iSW325ngln2UQrVPgloO83QiUoi7mBJPbcHlxkhZ bd3+EjFxSLIQogt29sTcg2oSh4oljUpz5niTt69IOfZx21kf29NfDE+Iw56gfrxI2ywZbu5o G+d0ZSp0lsovygpk4jK04fDTq0vxjEU5HjPcsXC4CSZdq5E2DrF4nOh1UHkHzeaXdYR2Bn1Y wTePfaHBFlvQzI+Li/Q6AD/uxbTM0vIcsUxrv3MNHCUAEQEAAYkCPgQYAQIACQUCUhFfyAIb LgEpCRCTQwmyVcgNcsBdIAQZAQIABgUCUhFfyAAKCRC22tOSFDh1UOlBB/94RsCJepNvmi/c YiNmMnm0mKb6vjv43OsHkqrrCqJSfo95KHyl5Up4JEp8tiJMyYT2mp4IsirZHxz/5lqkw9Az tcGAF3GlFsj++xTyD07DXlNeddwTKlqPRi/b8sppjtWur6Pm+wnAHp0mQ7GidhxHccFCl65w uT7S/ocb1MjrTgnAMiz+x87d48n1UJ7yIdI41Wpg2XFZiA9xPBiDuuoPwFj14/nK0elV5Dvq 4/HVgfurb4+fd74PV/CC/dmd7hg0ZRlgnB5rFUcFO7ywb7/TvICIIaLWcI42OJDSZjZ/MAzz BeXm263lHh+kFxkh2LxEHnQGHCHGpTYyi4Z3dv03HtkH/1SI8joQMQq00Bv+RdEbJXfEExrT u4gtdZAihwvy97OPA2nCdTAHm/phkzryMeOaOztI4PS8u2Ce5lUB6P/HcGtK/038KdX5MYST Fn8KUDt4o29bkv0CUXwDzS3oTzPNtGdryBkRMc9b+yn9+AdwFEH4auhiTQXPMnl0+G3nhKr7 jvzVFJCRif3OAhEm4vmBNDE3uuaXFQnbK56GJrnqVN+KX5Z3M7X3fA8UcVCGOEHXRP/aubiw Ngawj0V9x+43kUapFp+nF69R53UI65YtJ95ec4PTO/Edvap8h1UbdEOc4+TiYwY1TBuIKltY 1cnrjgAWUh/Ucvr++/KbD9tD6C8=
Subject: Re: Consensus Calls for Transport/TLS issues, post-Cupertino
Message-ID: <bfc301c4-8730-aace-6ba8-ae9fd5760105@huitema.net>
Date: Wed, 30 Oct 2019 18:32:27 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0
MIME-Version: 1.0
In-Reply-To: <3d4976da-b03d-469c-9242-4073d88048e3@www.fastmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
X-Originating-IP: 66.113.196.119
X-Spampanel-Domain: xsmtpout.mail2web.com
X-Spampanel-Username: 66.113.196.119/32
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=66.113.196.119/32@xsmtpout.mail2web.com
X-Spampanel-Outgoing-Class: unsure
X-Spampanel-Outgoing-Evidence: Combined (0.15)
X-Recommended-Action: accept
X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0eT2jivapI8P7M2alpZfRhCpSDasLI4SayDByyq9LIhVUZbR67CQ7/vm /hHDJU4RXkTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGDcnqpk5VeF3xR4kF6iVwRtbgN zB/4Jkrw1eDLcif59fsHUAwQyAS6Z16OrymzkVrfU7Tmz6iKnkQL9gqsxD347235Nhqq+/HvroPq 8GSPg+5TET6yHkPghP15YtvjJl4PfOdU2kQFJEzfkq4ITozmM46jSvfpO+1kZkomjtjB6X5Q5Q9f RUeIpTIC2ySfqvnqLwoxlgatmaBb0rBiK9xbkDrUqzcKIief90MVLZY9LbIZh9+IQ1oS9LBn3VIP 95Jz7ujRlJ9wSMlhvaudJXZ9EIBG/qaR+8r9SKFMmPJLf850OvZYsmoVQuOIhwKLK6IKBNB4LZ0v UHHKTzJX7b1JhMjx7v77N42Z/zX3DQBtZa/0j9rMdVQseW3F+doIupqmER9E+btGG8Xk1uugE/FU 4J9TrjYo22Tif+7yfJXbGyN6EipRzMVZ5LqwTx7Vvn9SP+LiFhV9TEgXGI3XmDfDnIICQUXeDwOf eh9dq5sN87Num+bgkQ4H2FNFlS4D2FvpWwfcySviKCNdCicCm/3F75q98CzvL6WklUVeB43D+95U PVcmx1QL+XiKf76y/BgKy6+v15iWes3ERNufthmnDfKY2AXNZGS5G93aGyH8MqMlOQRMVMd0HCeT skOZ5TL8tRsi33jcP56s/k+61AD1KzXg724gFzhHYUe+7aKm0vVLM1yZAmAuF8Lt5QD5O45/Ti+J 2sBvM/O0p+zizleC4va6FPcpDHjXMKZJK8+chiZLiCUk/wm5a/nDs/3HETCT7cTs80/2FnZg/IMs IAdedSzLrjsyfTPCYbMCLdmf5h2vfxw3Qvb2Glio5Cia/9Kfg4kJ0WtAYbrpe3OOAtQNb87OBHCz Hbokiue7PjVB1S6AQRz4SqXhOP5fdiQt7lu5Jm5nk4BSgYHOJJgUtm67rBRli6kULE5BQDZnPvvF VsQ=
X-Report-Abuse-To: spam@quarantine9.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/0ToiX6NK4ChsmLhax1Qm7oYLcaY>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 31 Oct 2019 01:32:35 -0000

On 10/30/2019 5:54 PM, Martin Thomson wrote:
> On Thu, Oct 31, 2019, at 08:21, Eric Rescorla wrote:
>> On Wed, Oct 30, 2019 at 2:06 PM Mikkel Fahnøe Jørgensen 
>> <mikkelfj@gmail.com> wrote:
>>>> I'm going to stop here, because it seems that you're assuming we don't just keep the keys indefinitely. How does that lead to deadlock?
>>> The problem is that having keys indefinitely leads to various problems.
>> I've heard that asserted but I'm not so sure.
> The problems I'm aware of are largely edifices of our own construction.
>
> The primary one I am aware of is that we don't know what to do about sending Handshake packets after a migration.  This is fixable, because it is a definitional problem.  We haven't defined what to do.  The problem is, I think just limited to the use of Source Connection ID on long header packets.  I personally would prefer not to have to fix this one.
>
> If you don't continue sending Handshake packets, that has the same effect as discarding keys for the side that is being starved of acknowledgments.

There is the half-way step of only sending acknowledgements, only upon
receipt of new Handshake packets.

> We could also build, as Mike alludes to, an implicit acknowledgment.  We currently have one for the Initial->Handshake transition and we could build another.  That only reduces this from a symmetric issue to an asymmetric one unless we address the existing problem.

I would assume that implementations, in practice, will consider implicit
acknowledgements. This is fairly obvious on the server side: receiving
the "handshake complete" from the stack means that all required
handshake packets have been received by both parties. The server knows
that there is no point in re-transmitting any of the previous handshake
packets. It can implement the "implicit ack" logic without breaking
anything on the server side. I assume that implementations will just do
that, no matter what the Quic spec says, because it makes the server
stack robust to silly scenario in which the client's acks of handshake
packets get lost. Which means that the Quic spec might just as well say it.

So the problem really is asymmetric. The client is fine, because it
eventually receives an ACK of its final handshake packet can can
consider the handshake confirmed at that point. But the server never
knows whether the ack of the final handshake was properly received.

> If we were able to reduce this to just a client-side problem, then we might also say that clients can't migrate prior to verifying that all Handshake data was transmitted to as to avoid any need for problems.  Then migration becomes proof positive that the client is done transmitting and that can be the signal.

Migration is only initiated by the client in V1, so waiting for the last
handshake ACK on the client side is good enough. But key rotation could
be initiated by the server, and doing that before handshake confirmed is
a bit problematic. Which means that the server needs to know whether the
client's handshake is confirmed, which is where the Handshake Done
signal becomes useful. My preference would be for the server to send
that signal and repeat it until it is acknowledged by the client. When
that ACK is received, the server knows that the handshake is confirmed.

-- Christian Huitema