Re: [quicwg/base-drafts] Move and consolidate address validation (#1886)

Martin Thomson <notifications@github.com> Tue, 23 October 2018 06:21 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 5A14612F1AC for <quic-issues@ietfa.amsl.com>; Mon, 22 Oct 2018 23:21:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.47
X-Spam-Level:
X-Spam-Status: No, score=-8.47 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.47, 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 M32PPUssYsVK for <quic-issues@ietfa.amsl.com>; Mon, 22 Oct 2018 23:21:25 -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 34361130DF5 for <quic-issues@ietf.org>; Mon, 22 Oct 2018 23:21:25 -0700 (PDT)
Date: Mon, 22 Oct 2018 23:21:24 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1540275684; bh=YBBjCCZ2b6RcVlRjyUjLQTVjxBYXdLu0nlndm2BvSNc=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=TVtIDqEFgM+yGLBasAsZBkwwXKkyGj3a7lwuqTKeHueLyRq2397pwEwtXUo/neekj XctE+VvtBExS23yVobGg187uVHqe0wBYs4Y2d7j6amYM/JRbfNF9OieR8A3ZMB8oKM susrOzfCc95qr271qfNZuxRoyF/IR2fA7t0Ix23I=
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab74f5b85ed53a9a33d28f1dd1dc4afa9fe23c97f292cf0000000117e67fe492a169ce1628c016@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1886/review/167224384@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1886@github.com>
References: <quicwg/base-drafts/pull/1886@github.com>
Subject: Re: [quicwg/base-drafts] Move and consolidate address validation (#1886)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5bcebde4b886_1db63fa01e2d45bc898549"; 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/3Bnp_hBp8Yi2QlbKrt5K0MObPcw>
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, 23 Oct 2018 06:21:29 -0000

martinthomson commented on this pull request.

Thanks for reading Ian.

Clearly the bit on address validation during the handshake was unclear, so I've worked on it some more.  That bit is all new, so read carefully.

Other comments should be addressed.

> +
+Initial[0]: CRYPTO[CH] ->
+
+                                                <- Retry+Token
+
+Initial+Token[0]: CRYPTO[CH] ->
+
+                                 Initial[0]: CRYPTO[SH] ACK[0]
+                       Handshake[0]: CRYPTO[EE, CERT, CV, FIN]
+                                 <- 1-RTT[0]: STREAM[1, "..."]
+~~~~
+{: #fig-retry title="Example Handshake Showing Retry"}
+
+A connection MAY be accepted without address validation - or with only limited
+validation - but a server SHOULD limit the data it sends toward an unvalidated
+address.  Successful completion of the cryptographic handshake implicitly

Removed.  Also, some more rewording above.

>  
+There is no need for a single well-defined format for the token because the
+server that generates the token also consumes it.  A token could include

There isn't any need to encrypt in many cases.  The information you tend to want here is an IP and maybe port, maybe with a timestamp.  All of which is already visible to any observer.  I expect that many implementations will encrypt, just to keep the details of their DoS mitigation secret, but I don't want too much hand-holding, especially when we'd be basing that recommendation on information we can't really describe in any detail.

>  
+There is no need for a single well-defined format for the token because the
+server that generates the token also consumes it.  A token could include
+information about the claimed client address (IP and port), a timestamp, and any
+other supplementary information the server will need to validate the token in
+the future.
+
+An address validation token MUST be difficult to guess.  Including a large

I've moved the first paragraph to the end instead.

> +on its own.
+
+The primary defense against amplification attack is verifying that an endpoint
+is able to receive packets at the transport address that it claims.  Address
+validation is performed both during connection establishment (see
+{{validate-new}}) and during connection migration (see {{migrate-validate}}).
+
+
+## Address Validation During Connection Establishment {#validate-new}
+
+During the initial handshake, QUIC requires that clients send UDP datagrams with
+at least 1200 octets of payload until the server has completed address
+validation. A server can thereby send more data to an unproven address without
+increasing the amplification advantage gained by an attacker.
+
+A server eventually confirms that a client has received its messages when the

Well, this is a very important point.  Namely that address validation is a natural by-product of the handshake completing.

-- 
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/1886#pullrequestreview-167224384