Re: [quicwg/base-drafts] forbid key discarding before receiving a packet protected with new keys (#4079)
Mike Bishop <notifications@github.com> Tue, 08 September 2020 20:56 UTC
Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B647D3A11F7 for <quic-issues@ietfa.amsl.com>; Tue, 8 Sep 2020 13:56:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.101
X-Spam-Level:
X-Spam-Status: No, score=-3.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 sdXFQzFGgIVC for <quic-issues@ietfa.amsl.com>; Tue, 8 Sep 2020 13:56:10 -0700 (PDT)
Received: from out-18.smtp.github.com (out-18.smtp.github.com [192.30.252.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2C0BA3A11D8 for <quic-issues@ietf.org>; Tue, 8 Sep 2020 13:56:10 -0700 (PDT)
Received: from github-lowworker-39b4a70.va3-iad.github.net (github-lowworker-39b4a70.va3-iad.github.net [10.48.16.66]) by smtp.github.com (Postfix) with ESMTP id 5F8D434009A for <quic-issues@ietf.org>; Tue, 8 Sep 2020 13:56:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1599598569; bh=ndu/Ge3EYVjGXWsvBXM2btK5XrARBIGLI4FAdne47zo=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=LaDuIbCrkmvlUapX+wDUyNEzBebxEsb8ZzFkSy08qLqB62lxw4PUrUvIP/PweOOct Dxvj1W4bXIozWvhZC/xptkfDs/TNIuanr0kkxJ09eMGzwQ07oLLbb4suKeXLNshkua Lzr87sWEi40VTxX1F6JKGe6Ac3roWktK9Jz9yfmw=
Date: Tue, 08 Sep 2020 13:56:09 -0700
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK66GKTQVEMYC6FVVE55MPIOTEVBNHHCS6GFAM@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/4079/review/484485061@github.com>
In-Reply-To: <quicwg/base-drafts/pull/4079@github.com>
References: <quicwg/base-drafts/pull/4079@github.com>
Subject: Re: [quicwg/base-drafts] forbid key discarding before receiving a packet protected with new keys (#4079)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5f57efe94e900_44cd19f0500b9"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/ypc-eI7LtSvx0hDW1cgAw8_ekGo>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Sep 2020 20:56:12 -0000
@MikeBishop commented on this pull request. I'm a bit uncomfortable tying the trigger to the peer's own key update, even though they're required to update in step. Would it make more sense to say you don't discard until you've received an acknowledgement for a packet sent with the new keys? That already has to be tracked for the maximum frequency of key updates, so it would make sense to hang this mechanism on it as well. If you know the peer has received a packet from you in the new phase, they'll be updating soon enough, but you know they have read keys which is the real issue. > @@ -1617,9 +1619,9 @@ after receiving an acknowledgment that confirms that the previous key update was received. Failing to allow sufficient time could lead to packets being discarded. -An endpoint SHOULD retain old read keys for no more than three times the PTO. -After this period, old read keys and their corresponding secrets SHOULD be -discarded. +An endpoint SHOULD retain old read keys for no more than three times the PTO +afer having received a packet protected using the new keys. After this period, ```suggestion after having received a packet protected using the new keys. After this period, ``` > @@ -1496,10 +1496,11 @@ The endpoint that initiates a key update also updates the keys that it uses for receiving packets. These keys will be needed to process packets the peer sends after updating. -An endpoint SHOULD retain old keys so that packets sent by its peer prior to -receiving the key update can be processed. Discarding old keys too early can -cause delayed packets to be discarded. Discarding packets will be interpreted -as packet loss by the peer and could adversely affect performance. +An endpoint MUST retain old keys until it has successfully unprotected a packet +sent using the new keys. An endpoint SHOULD NOT discard old keys immediately +after unprotecting a packet sent using the new keys. Discarding old keys too +early can cause delayed packets to be discarded. Discarding packets will be +interpreted as packet loss by the peer and could adversely affect performance. It *is* a performance issue provided the peer keeps sending. You just lose some reordered packets and have spurious detection of some extra packet loss. Where the connection hard-fails is when the peer never updates / learns about the update because the initiator stops sending. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/quicwg/base-drafts/pull/4079#pullrequestreview-484485061
- [quicwg/base-drafts] forbid key discarding before… Marten Seemann
- Re: [quicwg/base-drafts] forbid key discarding be… Marten Seemann
- Re: [quicwg/base-drafts] forbid key discarding be… Marten Seemann
- Re: [quicwg/base-drafts] forbid key discarding be… Kazuho Oku
- Re: [quicwg/base-drafts] forbid key discarding be… Mike Bishop
- Re: [quicwg/base-drafts] forbid key discarding be… ianswett
- Re: [quicwg/base-drafts] forbid key discarding be… Kazuho Oku
- Re: [quicwg/base-drafts] forbid key discarding be… Martin Thomson
- Re: [quicwg/base-drafts] forbid key discarding be… Marten Seemann
- Re: [quicwg/base-drafts] forbid key discarding be… Marten Seemann
- Re: [quicwg/base-drafts] forbid key discarding be… Martin Thomson
- Re: [quicwg/base-drafts] forbid key discarding be… Marten Seemann
- Re: [quicwg/base-drafts] forbid key discarding be… Martin Thomson
- Re: [quicwg/base-drafts] forbid key discarding be… ianswett
- Re: [quicwg/base-drafts] forbid key discarding be… Martin Thomson