Re: [quicwg/base-drafts] Handling of duplicate packets (#1405)

Magnus Westerlund <notifications@github.com> Mon, 18 June 2018 10:46 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 DDD72130E95 for <quic-issues@ietfa.amsl.com>; Mon, 18 Jun 2018 03:46:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, T_DKIMWL_WL_HIGH=-0.01] 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 1FlPra0oeaEo for <quic-issues@ietfa.amsl.com>; Mon, 18 Jun 2018 03:46:00 -0700 (PDT)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6646E130E8F for <quic-issues@ietf.org>; Mon, 18 Jun 2018 03:46:00 -0700 (PDT)
Date: Mon, 18 Jun 2018 03:45:59 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1529318759; bh=uEA7ymqj8FIv83Y7k5qnue0HgZT9+wjDZrwh2GAjSXs=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=d+ozu/ZnJmHlIe8VjtSVbrZqubFDNwDx34ivuhl+TRYakiwzu+NV9OharLWwZG+B1 hkoOMmNIeuInkvLiR1f9i+mLC1KVE8TOgX8qlvI+/8aQ59UG+sQYEVrt5CkxYQo+Aw D6CYZG194kBBS5wYiwB08XfsrogEhEQ+QjTn1oGw=
From: Magnus Westerlund <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab514258532dc97217681c9d966c879a31ca24defd92cf00000001173f4f6792a169ce138d6870@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1405/398014741@github.com>
In-Reply-To: <quicwg/base-drafts/issues/1405@github.com>
References: <quicwg/base-drafts/issues/1405@github.com>
Subject: Re: [quicwg/base-drafts] Handling of duplicate packets (#1405)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b278d6755928_66be2abc41f76f5c11846f"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: gloinul
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/7ebGnQ0B2QLosGyGWdjaLAa4fTc>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.26
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: Mon, 18 Jun 2018 10:46:12 -0000

In regards to @kazuho comment: 

> As discussed in #1439 (comment), my understanding is that the ECN support in the form proposed in #1372 is the only issue that makes duplicate detection a requirement rather than an option.

So, do I assume correctly, that you will still throw away packets that are several RTTs old, i.e. that have a PN number older than any state? Or do you generate an ACK for that old packet that is so old, and try to find if there is any unconsumed buffers to put any data in?  

You might be right in that all existing frames have a behavior that if one applies it twice it already have the handling rules to suppress the duplicate or not cause any downside of being applied twice. I looked through the frame types and the only ones that I think have some impact are:
* Path_Challenge: A non duplication detecting receiver, will issue two Path_Response frames in response to a single PN. The sender of the Path_Challenge should not react badly to this. 

Also, I haven't considered if there are any new requirements with the handshake packets and the interaction with TLS? 

I would note that AES-GCM do have this weakness (Fergueson  http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/comments/CWC-GCM/Ferguson2.pdf) that if one manage to know that one successfully forged a packet so that it passed the authentication verification, then one learns a number of bits of the authentication key, making the next forgery simpler. If it is possible to run such an attack by sending modified duplicates with forged authentication tags resulting in a response, then this can be exploited (https://link.springer.com/chapter/10.1007/978-3-319-31517-1_7) So QUIC will not use truncated tags, but QUIC connections may be very long lived in certain environments. Thus making it possible to maintain an attack for a sufficient time to possible have any result. Thus, I think for safety reasons packet duplication suppression after decryption should be mandatory to prevent this information leakage and not put that onto the individual frame types to consider if they will result in reveal of a successful forgery of a modified duplicate packet.   

I also noted that when we discussed this at the Interim it appeared that most, if not all except @kazuho was thinking that duplication suppression was expected in the receiver. If this is not required, then think the actual requirements on each frame type individually needs to be very clear. 

It would be good to come to a conclusion on this issue so that we can determine what is needed for the ECN addition (#1372).  

-- 
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/1405#issuecomment-398014741