Re: [quicwg/base-drafts] Defend against endless Stateless Reset ping-pong (#1627)

Martin Thomson <notifications@github.com> Wed, 01 August 2018 07:31 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 BBEBF12F1A5 for <quic-issues@ietfa.amsl.com>; Wed, 1 Aug 2018 00:31:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.109
X-Spam-Level:
X-Spam-Status: No, score=-6.109 tagged_above=-999 required=5 tests=[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, URIBL_BLOCKED=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 6T0BothqME75 for <quic-issues@ietfa.amsl.com>; Wed, 1 Aug 2018 00:31:02 -0700 (PDT)
Received: from out-7.smtp.github.com (out-7.smtp.github.com [192.30.252.198]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EA2EB1294D7 for <quic-issues@ietf.org>; Wed, 1 Aug 2018 00:31:01 -0700 (PDT)
Date: Wed, 01 Aug 2018 00:31:01 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1533108661; bh=GpJn6Vnw1doEEpupUm2y6kPtstJWDicnVr25C5PfXrM=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=PjIMQyI4qQJPrHxMk06ftIxOH4TyI10NlDUQaIhltPqNn7xpCLHskEBr5EZ/ABsMf 7FbtQ0vGbp5dc7zNMpqUZ/sFB6fgblaUm/zWcPt65ra6jNmfU5KWhPN/6z0c8m4GzC 2onYx7XevoBuWxp9WuF1Qt8AS1jFqOwsaI+ySeR8=
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4aba74f4820335ab9767135e39b13943e31835b54e792cf00000001177923b592a169ce14a6c47a@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1627/review/142256277@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1627@github.com>
References: <quicwg/base-drafts/pull/1627@github.com>
Subject: Re: [quicwg/base-drafts] Defend against endless Stateless Reset ping-pong (#1627)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b6161b5467a5_52113fa6608be624129744"; 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/uEbhBdS3lwNVI3I6jFoUw0bGnNA>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.27
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: Wed, 01 Aug 2018 07:31:06 -0000

martinthomson commented on this pull request.



> +#### Looping {#reset-looping}
+
+The design of a Stateless Reset is such that it is indistinguishable from a
+valid packet.  This means that a Stateless Reset might trigger the sending of a
+Stateless Reset in response, which could lead to infinite exchanges.  An
+endpoint MUST use any one of the following measures to limit the sending of
+Stateless Reset:
+
+* An endpoint can remember the number of Stateless Reset packets that it has
+  sent and stop generating new Stateless Reset packets once a limit is reached.
+  Using separate limits for different remote addresses will ensure that
+  Stateless Reset packets can be used for some peers even when other peers have
+  exhausted limits.
+
+* An endpoint can set the TTL in the IP header to one fewer than the TTL in the
+  packet that it received.  Once the TTL reaches zero, any looping ends.

Yeah, it would also work if the Stateless Reset were the same size as the triggering packet (on the assumption that the peer is applying one of the other techniques), but that's pretty marginal, so I'm going to cut this option.

-- 
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/1627#discussion_r206779601