Re: [quicwg/base-drafts] Stateless reset oracle defense (#1554)

ianswett <notifications@github.com> Thu, 12 July 2018 18:25 UTC

Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.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 56EBB131197 for <quic-issues@ietfa.amsl.com>; Thu, 12 Jul 2018 11:25:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.009
X-Spam-Level:
X-Spam-Status: No, score=-3.009 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_NONE=-0.0001, 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 vviSxgyWnAWS for <quic-issues@ietfa.amsl.com>; Thu, 12 Jul 2018 11:25:30 -0700 (PDT)
Received: from o6.sgmail.github.com (o6.sgmail.github.com [192.254.113.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2738131172 for <quic-issues@ietf.org>; Thu, 12 Jul 2018 11:25:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=Vr4Uuzks/esFiL5TQFQ30Nn9Dp4=; b=t4L8P+Y2J1QSzSUa H/BkseM1jjsHmQbBnV4WmvNZxlZNTI/+D6cc2obfju32udi08gvwvCQ7viy4dNxp zSHqJMuHk+iLif+yIJachXYKZO5bb0iGMZ9R+FT2SqP4ZwfFku0Oopl4jAbazlnH /kzEuFLHK6duqT0AdiTcOnBjaIU=
Received: by filter0420p1iad2.sendgrid.net with SMTP id filter0420p1iad2-14444-5B479D18-1C 2018-07-12 18:25:28.788006766 +0000 UTC
Received: from github-lowworker-89d05ac.cp1-iad.github.net (unknown [192.30.252.35]) by ismtpd0003p1iad1.sendgrid.net (SG) with ESMTP id 5-HpRZDfS_69d8zOyqhGIg for <quic-issues@ietf.org>; Thu, 12 Jul 2018 18:25:28.742 +0000 (UTC)
Received: from github.com (localhost [127.0.0.1]) by github-lowworker-89d05ac.cp1-iad.github.net (Postfix) with ESMTP id B2B20AE026A for <quic-issues@ietf.org>; Thu, 12 Jul 2018 11:25:28 -0700 (PDT)
Date: Thu, 12 Jul 2018 18:25:28 +0000
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab1479914d9ee749ae5bb2bfe714c4503d657254c492cf00000001175f5f1892a169ce144b974b@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1554/review/136771824@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1554@github.com>
References: <quicwg/base-drafts/pull/1554@github.com>
Subject: Re: [quicwg/base-drafts] Stateless reset oracle defense (#1554)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b479d18b049e_3292ade3c480f54512e8"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak0gy4M/edRYMHDKHk5e1zwGgdZqPXid77lhgS 8+gHuAx0XgUb8D6Z7QECBljuHtYO4fCXt+nFg2tMn5XqjOiyT6mrpDGxUm+NCXcvLMI7RJUUcmLEa6 yg8KGQaPDQ0kMVlFhzChxWNzowEH1FI7Cfu4NP4QG/iZlwi7QIAKz7hgh1rvc/qAMJkkoJS4Q22S31 M=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/OxR7r8umPKsubUPyr37hZHyXrBY>
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: Thu, 12 Jul 2018 18:25:39 -0000

ianswett commented on this pull request.

Looks good, some small suggestions.

> @@ -4722,6 +4719,37 @@ receiver, an off-path attacker will need to race the duplicate packet against
 the original to be successful in this attack.  Therefore, QUIC receivers ignore
 ECN codepoints set in duplicate packets (see {{using-ecn}}).
 
+## Stateless Reset Oracle {#reset-oracle}
+
+An attacker that can cause a server to emit a stateless reset token can cause
+any connection that uses the same connection ID and method of producing the
+token to be destroyed.  This creates a possible denial of service attack on

nit: destroyed?  Closed? Reset?

> +An attacker that can cause a server to emit a stateless reset token can cause
+any connection that uses the same connection ID and method of producing the
+token to be destroyed.  This creates a possible denial of service attack on
+existing connections if the attacker is able to cause a stateless reset token to
+be generated for a connection with a selected connection ID.  That is, an attack
+is possible if an attacker can alter packet routing so that a packet is received
+by an instance that uses the same stateless reset key, but no connection state
+for the connection ID.
+
+The only viable defense against this style of denial of service is to ensure
+that routing configuration for a cluster guarantees consistent routing of
+packets for a given connection ID.  That is, the routing needs to ensure that a
+stateless reset is not generated unless the associated connection (as identified
+by the connection ID) cannot proceed.
+
+For endpoints that operate in clusters, instances that share a static key for

This paragraph is largely an easier to read version of the paragraph that precedes it.  Can you combine them?  Maybe:

"To defend against this style of denial of service attack, endpoints in clusters that share a static stateless reset key (see {{reset-token}}) MUST be arranged..."

-- 
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/1554#pullrequestreview-136771824