Re: Should QUIC have a path-verifiable proof of source address?

Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch> Sat, 03 June 2017 14:22 UTC

Return-Path: <mirja.kuehlewind@tik.ee.ethz.ch>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B9777129B95 for <quic@ietfa.amsl.com>; Sat, 3 Jun 2017 07:22:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 mmjZ4ghviE8e for <quic@ietfa.amsl.com>; Sat, 3 Jun 2017 07:22:49 -0700 (PDT)
Received: from virgo01.ee.ethz.ch (virgo01.ee.ethz.ch [129.132.2.226]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 52BE0129BCE for <quic@ietf.org>; Sat, 3 Jun 2017 07:22:49 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by virgo01.ee.ethz.ch (Postfix) with ESMTP id 3wg3Fg2HTMzMpLw; Sat, 3 Jun 2017 16:22:47 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at virgo01.ee.ethz.ch
Received: from virgo01.ee.ethz.ch ([127.0.0.1]) by localhost (virgo01.ee.ethz.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oafyo0Xka4u8; Sat, 3 Jun 2017 16:22:45 +0200 (CEST)
X-MtScore: NO score=0
Received: from [192.168.178.33] (pD9E11994.dip0.t-ipconnect.de [217.225.25.148]) by virgo01.ee.ethz.ch (Postfix) with ESMTPSA; Sat, 3 Jun 2017 16:22:45 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Should QUIC have a path-verifiable proof of source address?
From: Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>
In-Reply-To: <79aeac00-c1eb-069a-2b21-018a8b393546@huitema.net>
Date: Sat, 03 Jun 2017 16:22:46 +0200
Cc: quic@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <B49EEE9E-A985-4235-A7AF-3BD13159E21D@tik.ee.ethz.ch>
References: <179F2CCB-89DB-4E6E-9175-F850F89B4E5F@trammell.ch> <30eb5292-ac11-9772-b088-03b1f2fe372b@huitema.net> <CABkgnnWEg0N0WYsdMzsPT--MpRSQ7g2ysu2DvwenQ+mQpo6Anw@mail.gmail.com> <40dc8d2a-92ec-e6f1-b2b8-f4c447313cf5@tik.ee.ethz.ch> <2856C4A2-FB68-425D-8B34-043A7EF005E9@trammell.ch> <79aeac00-c1eb-069a-2b21-018a8b393546@huitema.net>
To: Christian Huitema <huitema@huitema.net>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/lAcjuMudbQIDuYT_0Pwq3amYoMY>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Jun 2017 14:22:52 -0000

The whole point here is to do the DDoS defense before the traffic reaches your server to e.g. not overload the network between that DDoS defense system and the server. The idea is that you start blocking traffic from an IP address when you never see the third leg of a 2-way exchange (return-routability check). 

Are you proposing that if you don’t see a reply from the server (leg 2) for a while (whatever a while means), you block the incoming traffic from that IP address. That sounds dangerous to me as a middlebox function.

Mirja


> Am 01.06.2017 um 20:16 schrieb Christian Huitema <huitema@huitema.net>:
> 
> On 6/1/2017 6:41 AM, Brian Trammell (IETF) wrote:
> 
>> Yep. This indicates another way to split this question: how important is it to be able to distinguish spoofed from non-spoofed sources for initial packets in a flow, versus to be able to do so in the middle of a connection?
> 
> OK. Let's tease that apart a bit more.
> 
> QUIC runs over UDP. The UDP flow can be observed both during the initial
> phase and in the middle of the connection. As long as the routing is
> symmetric, the intermediate nodes can see that there are packets flowing
> in both directions. That's something of a baseline.
> 
> I suppose the question is then about assumptions that these intermediate
> nodes can make. For example, a classic example is the need to separate
> legitimate traffic from a DOS attack. We can assume that in a basic DOS
> attack, packets will flow in just one direction, from the attacker to
> the target. So, a firewall that sees packet flowing in just one
> direction might detect an attack, and slow it down or filter it
> completely. It could do that by looking at nothing more than the UDP
> headers. But there may well be some packets coming back from the server,
> such as public reset packets. And then the naive firewall might
> mistakenly think that the traffic is legit, because the server is
> responding.
> 
> At that point, there are two lines of thought. One is to provide
> information from the sever to the intermediate nodes. For example, if a
> smarter firewall would know that this is QUIC traffic, that public reset
> packets are not a sign that the server finds the traffic legit, and that
> the offending traffic should thus be slowed down or cut. But that means
> reliably distinguishing QUIC from other traffic, and letting nodes
> distinguish public reset from other packets. There is a slippery slope
> there, because nodes may also want to understand acknowledgements and
> progress, not just reset packets.
> 
> The other line of thought is to place some of the defense against DOS
> burden on the server, and to ask it to just completely stop responding
> to any traffic that looks like an attack, so that intermediate firewalls
> can react to "absence of response". That is, the server can predict how
> the network will react to blow-back traffic, and thus thinks of
> consequences before sending packets.
> 
> I kind of like the second approach. Servers would depend on some well
> known behavior of intermediate nodes, which would in fact force these
> nodes to be public about their behavior, even to standardize it.
> Something like standardizing AQM. That seems like a good path towards
> sanity.
> 
> -- Christian Huitema
>