KEYS_READY

Martin Thomson <mt@lowentropy.net> Wed, 13 February 2019 01:45 UTC

Return-Path: <mt@lowentropy.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 3812F130EE1 for <quic@ietfa.amsl.com>; Tue, 12 Feb 2019 17:45:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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=lowentropy.net header.b=g2SxsaUf; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=mE3OwLbh
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 ABybL0Ns1kGg for <quic@ietfa.amsl.com>; Tue, 12 Feb 2019 17:45:56 -0800 (PST)
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A7C1C130DE4 for <quic@ietf.org>; Tue, 12 Feb 2019 17:45:56 -0800 (PST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id B32982202A for <quic@ietf.org>; Tue, 12 Feb 2019 20:45:55 -0500 (EST)
Received: from web3 ([10.202.2.213]) by compute1.internal (MEProxy); Tue, 12 Feb 2019 20:45:55 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=message-id:from:to:mime-version:content-transfer-encoding :content-type:subject:date; s=fm1; bh=CW9lLa3t9eAEs98rh6utWl3iKj f+6xRArvDdecWnCiM=; b=g2SxsaUffBPGVuGYnMldTYMUJeVsqB7Yt8xpSPXP39 NaAG/mbpqiA8iY2JxnMOgA9DBmoOo/UQWMvdQaVDfXdmWr0v9/cuY19oeGChOqDC zvN15JnOr+Pjoh6n12SYkYwAaY19NWCPoZ2ap0DBSv//F0jRw9MZFdp1MqbpAIN6 d9WycckldNIGNqGjUlsAUoYesThuAwFz/ES01Cecup5li2ctLm6RZOTKLMd6g92E UnlIofpiLRSk7po69XnzZ1Q2nZwfNHteozKs4j247hkl8t1j93CJLSJCeYI7KEeD NwH3osVOIVpRwl1AimSeb4058BKSSdCiTD33HSJl3u9Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=CW9lLa 3t9eAEs98rh6utWl3iKjf+6xRArvDdecWnCiM=; b=mE3OwLbhcjoV6Ag3uWA08T TPdDKmG6ja7KCdceUfmkILOXbxbgQAg2K4Df65MyQI7rNHYqbgTm7lycnXrFqe5j 8JuNcowz+XWFfNkqe73IMTOYgjH+JwoqoySFHko6BvpHNis4bu1Kbg/GbjRgPWQi RUAb9BeFl+GAqnlemVvHPA2dfKd0CY9wVxe+msUbo3kkI1Sv9rM6v1MCLzORP6v+ T5EKl35XhL4cIAxUddvXEeOvmySsas6a/UqcXanSSJx1FCEL/DJlgrVkZpUPAu8Q 6O8fnQbtUkYO/oN2I+pOCt+qo5B5N1SVglov49vL6a4VISuztlPBPTShZhK0HiRw ==
X-ME-Sender: <xms:03ZjXK2099Ualz-qm0KAQPT8gOqduLQA57oP6ljT2UO4Nx8OiSI9Wg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtledruddtvddgfeelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecuogetfeejfedqtdegucdlhedtmdenucfjughrpefkhffvggfgtgfoufffsehtje ertdertdejnecuhfhrohhmpeforghrthhinhcuvfhhohhmshhonhcuoehmtheslhhofigv nhhtrhhophihrdhnvghtqeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecurfgrrh grmhepmhgrihhlfhhrohhmpehmtheslhhofigvnhhtrhhophihrdhnvghtnecuvehluhhs thgvrhfuihiivgeptd
X-ME-Proxy: <xmx:03ZjXCdvMsSmCPBdIuVzIFx546EYs_Di_QXA7Ttj5oCifhMPrakAiw> <xmx:03ZjXDFEdz4pgZReQu0ry1n0Ke-wi2Bq8emKtmF--NHDsMtQeI9hgA> <xmx:03ZjXL2hSr6_zWzywx26Q9hODbIO6bm6fDyDUA82PnXa7WOYyEAvkg> <xmx:03ZjXEnrRy-UI__ln0KBEkw837TnFc8IYJcTbVQl7_j7Psbx4T2jZQ>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 6CFBB9E539; Tue, 12 Feb 2019 20:45:55 -0500 (EST)
Message-Id: <1550022355.557617.1656828112.4DD1CEE6@webmail.messagingengine.com>
From: Martin Thomson <mt@lowentropy.net>
To: quic@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="utf-8"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-e97eb308
Subject: KEYS_READY
Date: Wed, 13 Feb 2019 12:45:55 +1100
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/CFDbJetfvaBeg4mmr-kym416Zho>
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: Wed, 13 Feb 2019 01:45:59 -0000

https://github.com/quicwg/base-drafts/pull/2237 has been updated to include the discussed new frame.

This allows us to remove the implicit-ish acknowledgment of Initial packets, fix the problem Marten identified with discarding Handshake keys, and the problem Kazuho found with multiple and simultaneous key updates.

There were two designs that were valid here, and I want to ensure that people think about the choice:

The one I chose to write up uses a design like ACK.  The keys used to protect the packet determine how the frame is interpreted.  That is, KEYS_READY in a packet implies that the corresponding keys are in use.  The cost here is that you have to purge any potential retransmissions of KEYS_READY when you update keys or you risk creating a false signal.

The alternative involves more explicit signaling, and requires us to label each set of keys unambiguously.  For that we could borrow the DTLS epoch convention, though that is inconveniently out of phase with the Key Phase we use; not a major issue, but a little hard to reason about.  This doesn't have a retransmission problem, but in addition to the need to document the counting system, we would need to decide whether a mismatch between frame and packet is OK, or something that can produce a connection error.

Obviously, I have a preference for the former, but if people feel differently, this is a good place to register your reasons.

Editorial concerns should be directed toward the pull request.