Re: [quicwg/base-drafts] simultaneous key update can lead to deadlock (#2214)

Martin Thomson <notifications@github.com> Fri, 21 December 2018 01:01 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 527DD12958B for <quic-issues@ietfa.amsl.com>; Thu, 20 Dec 2018 17:01:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.065
X-Spam-Level:
X-Spam-Status: No, score=-8.065 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, 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 w_oz7ze45U7f for <quic-issues@ietfa.amsl.com>; Thu, 20 Dec 2018 17:01:53 -0800 (PST)
Received: from out-5.smtp.github.com (out-5.smtp.github.com [192.30.252.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D143C1200D7 for <quic-issues@ietf.org>; Thu, 20 Dec 2018 17:01:52 -0800 (PST)
Date: Thu, 20 Dec 2018 17:01:52 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1545354112; bh=qPVnyThiFmuOamFDIjiZhLGLaCml0YgaAy8al7ve9ZA=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=XwpVoNY99IoCLRsbA/0GnWzYrpV9VNXUhub1JF99edvucRQ8n1d8BF/Yyd5EAqRgU FePR75z7OKTimdy8INVwjgcGR4iMPeTWm8FyTZrJkONlyCeo8ouN/vP879eZWej9ft CAC0qWbn5M48IweESCDVtBbcw5G2AaR5QaZxuzDE=
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab54d58c520c321c8c8b2168c1c75f439712b36c7f92cf000000011833fd8092a169ce176cb14d@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2214/449195528@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2214@github.com>
References: <quicwg/base-drafts/issues/2214@github.com>
Subject: Re: [quicwg/base-drafts] simultaneous key update can lead to deadlock (#2214)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c1c3b80b401_3f6a3f90120d45bc13774"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
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/PQKmrW7wgwCTTH5lpH8P0_wyRW0>
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: Fri, 21 Dec 2018 01:01:54 -0000

@kazuho, that's not a fix the problem that @marten-seemann is talking about, but if that's not written down, then that's also a problem.

The problem here is that one endpoint is updating too aggressively, even if it is entirely permissible.  If that coincides with an update on the other end, there is the possibility that one side thinks that no update has occurred, when two updates have happened.

The fix here is - I think - waiting for acknowledgment of a packet with the key phase.  Which means that you don't get to just use the key phase bit to drive this.  The interesting thing here is that when you couple this to acknowledgments you can validate updates.  If someone acknowledges an update with old keys, then you know they are misbehaving.

-- 
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/issues/2214#issuecomment-449195528