Re: Is the invariants draft really standards track?

Martin Duke <martin.h.duke@gmail.com> Fri, 19 June 2020 18:44 UTC

Return-Path: <martin.h.duke@gmail.com>
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 799963A0D8B for <quic@ietfa.amsl.com>; Fri, 19 Jun 2020 11:44:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 jYWfit6w01FN for <quic@ietfa.amsl.com>; Fri, 19 Jun 2020 11:44:04 -0700 (PDT)
Received: from mail-il1-x12c.google.com (mail-il1-x12c.google.com [IPv6:2607:f8b0:4864:20::12c]) (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 5C9B03A0D90 for <quic@ietf.org>; Fri, 19 Jun 2020 11:44:04 -0700 (PDT)
Received: by mail-il1-x12c.google.com with SMTP id z2so10235115ilq.0 for <quic@ietf.org>; Fri, 19 Jun 2020 11:44:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aCZ+8jk9ibscBIzx+sIIo2lrAlyCfv4nnjA8XaXchzs=; b=Cc6aQpD5cfbEYdO10p7pRH65KA/4J7oELjE+gCd2d/houCNJ/VLAInD5iam+uvgvmI BzzZ+kI4IQ96SrxSQkckyArNHQK2jMK1PT14GEUlCmZmBV18MQpQaf82RPkrNcPtowpK hlN/Z/5mkOG1qpo4BmJl7qQwo4u15GPAhgYL34JG470hT/P8BlB5S1qmcerQci6wJG3h GYYmNhXkv8mP6D03kQDOiJre+MOeNauGyw+IyjBL9reXm74WnqvJFA4siD6IzCZRsu6c I3Hq+qGS9iSkVYE2Cy1QVNxKvGedQg1lsPRaMTXeqGZhJ3mDRXe0BRQdu51UFSzbU7Cd NBJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aCZ+8jk9ibscBIzx+sIIo2lrAlyCfv4nnjA8XaXchzs=; b=Xf7TsS6GpE70mQcaJ0+/qKZigXWsPTUPawsXTjXx4b+HhMqQaeDyrU5xvTi2/W0mDS WSfcCFNvl5994jQydBwnvRh5Nh8jF1p4ep+ZmsdWFCNejRmpnB27yTm1S5UAWtiFiPSM DCNaP6jaHfFvw1RfVRJTIop7LvZ3gmiY32TnWlJtRYhRZtr96AQVLeVAemnmNBr5Jzor dUSlQ/lts6GofHZIThT/j589jS7l7NiGqezpePIcag+k0TtNrDYbqdt0xSSl3TZCF3Zj aff/irquZXCfRicfB9qAasNbFdNtH7nGErAe9rBAbhwRXDhG3rUercIU0Dct56llkZ20 gyfA==
X-Gm-Message-State: AOAM533x9IGYopzWuJNRludeisgP5h48v4XIobDc/FabXPETJ8QH4wy/ X3zqy6q4AYCGhZnUOu7oivK9PYvf7S9lw1EzpGI=
X-Google-Smtp-Source: ABdhPJwPlvUhTCDmnu37WiYBQdSwqswYmlgrDVyh4gQWDJBP1K4I0q8Klmucon1M0pMnvxwpSJNu+0a4sV5n4YJli+I=
X-Received: by 2002:a92:de48:: with SMTP id e8mr4839987ilr.249.1592592243529; Fri, 19 Jun 2020 11:44:03 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxQBqfrz24riPQA_VGKcGp_TzW0pqb97KfFMtNdW9pUfDg@mail.gmail.com> <833A693C-62E6-4889-9954-FCE65A839A7C@eggert.org> <CAKcm_gPMO2DtqvKucqVw0zDjSniSOmFD4p1Tp4YLjr9WSWdEUw@mail.gmail.com> <CAJU8_nUN42gGmQof24XD9-EjXedyzcarDyRP8MGe1qW-BZ=+Aw@mail.gmail.com> <9cd91c24-c730-22a4-7aa0-baf61613b3ce@huitema.net> <f4922cdb59014202900de44cc5fea0ff@usma1ex-dag1mb5.msg.corp.akamai.com> <CAM4esxQvwkTvpUcu6-+W5zWo22m-R1jvN7DcCpXfuw8Hb55qsw@mail.gmail.com> <95dd02c92b32472d9cab0dd47b98c637@usma1ex-dag1mb5.msg.corp.akamai.com>
In-Reply-To: <95dd02c92b32472d9cab0dd47b98c637@usma1ex-dag1mb5.msg.corp.akamai.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Fri, 19 Jun 2020 11:43:52 -0700
Message-ID: <CAM4esxQxxXn27rZEY75-AsHD5VF0fqiV1VDyeSrzQ=-sM7JNCg@mail.gmail.com>
Subject: Re: Is the invariants draft really standards track?
To: "Lubashev, Igor" <ilubashe@akamai.com>
Cc: Christian Huitema <huitema@huitema.net>, Kyle Rose <krose@krose.org>, Ian Swett <ianswett=40google.com@dmarc.ietf.org>, Lars Eggert <lars@eggert.org>, IETF QUIC WG <quic@ietf.org>, Jared Mauch <jared@puck.nether.net>
Content-Type: multipart/alternative; boundary="000000000000f29bcc05a874461c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/PhK8bDEte2sX_8zyJQCYAH0qImg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Fri, 19 Jun 2020 18:44:17 -0000

>Unfortunately, Retry system protects only server's memory state and some
CPU cycles spent on crypto.  (Servers still need to decrypt CID to decide
it is invalid, and if the attacker is clever enough to establish one valid
connection and use that CID in a flood, the server will also be decrypting
packets.)

There is no need for servers to decrypt CIDs in QUIC-LB. Presumably the
server has a lookup table for its CIDs.

It is true that Retry Services (and indeed, the Retry concept as a whole)
does nothing to protect network capacity.

On Fri, Jun 19, 2020 at 8:08 AM Lubashev, Igor <ilubashe@akamai.com> wrote:

> It looks like
> https://tools.ietf.org/html/draft-ietf-quic-load-balancers-02#section-5
> is an excellent discussion of Retry mechanics.  It definitely deserves a
> reference from this manageability draft.
>
>
>
> The Retry mechanisms described in LB draft are all cooperating boxes, and
> servers must be aware of them.  Unfortunately, Retry system protects only
> server's memory state and some CPU cycles spent on crypto.  (Servers still
> need to decrypt CID to decide it is invalid, and if the attacker is clever
> enough to establish one valid connection and use that CID in a flood, the
> server will also be decrypting packets.)  Retry does nothing to protect
> network resources.
>
>
>
> The PR I opened (https://github.com/quicwg/ops-drafts/pull/94) is about
> uncooperating devices that try to mitigate volumetric network attacks.
>
>
>
>
>
> *From:* Martin Duke <martin.h.duke@gmail.com>
> *Sent:* Wednesday, June 17, 2020 8:16 PM
>
> Hi Igor, you might want to check out the "Retry Services" bit of the
> QUIC-LB draft. This has something to do with the DDoS use case you discuss.
>
>
>
> On Wed, May 27, 2020 at 9:07 AM Lubashev, Igor <ilubashe@akamai.com>
> wrote:
>
> I’m working on a manageability draft PR for this (how to rate limit UDP to
> reduce disruption to QUIC if you have to rate limit UDP).  ETA end of the
> week (if I do not get pulled into something again).
>
>
>
> The relevant observation is that DDoS with UDP that is indistinguishable
> from QUIC will happen.  UDP is already the most prevalent DDoS vector,
> since it is easy for a compromised non-admin app to send a flood of huge
> UDP packets (with TCP you get throttled by the congestion controller).  So
> there WILL be DDoS protection devices out there to try to mitigate the
> problem, possibly by observing both directions of the flow and deciding
> whether a packet belongs to a valid flow or not.
>
>
>
> Since such middle boxes will be created, the more explicit and normative
> Invariants are about what one can expect, the less such middle boxes may
> decide for themselves.  For example (I did not think long about it), if
> some elements of path validation could land into Invariants (roughly, “no
> more than X packets/bytes can be sent on a new path w/o a return packet”),
> a DDoS middle box may use this fact and active connection migration might
> still have a chance during an attack (NAT rebinding could be linked by DDoS
> boxes to an old connection via unchanged CID).
>
>
>
>    - Igor
>
>
>
>
>
> *From:* Christian Huitema <huitema@huitema.net>
> *Sent:* Wednesday, May 27, 2020 11:34 AM
>
> On 5/27/2020 8:28 AM, Kyle Rose wrote:
>
> On Wed, May 27, 2020 at 10:34 AM Ian Swett <ianswett=
> 40google.com@dmarc.ietf.org> wrote:
>
> I was agreeing with MT, but I'm happy to see some more MUSTs added if
> people feel that'd be helpful.
>
>
>
> Coincidentally, we were just talking about this internally at Akamai
> yesterday. IMO, an invariants document isn't really helpful if it isn't
> normative, and for it to be normative it (or a related practices doc for
> operators) really needs to spell out clear boundaries for operators with
> MUSTs..
>
>
>
> The example that came up yesterday was around operators filtering QUIC in
> the event of a DDoS: one recommendation based on some conversations going
> back at least to Prague 2019 was to hash packets on 4-tuple and filter
> those below a hash value chosen for a desired ingress limit instead of
> doing what most operators do with UDP today, which is to cap UDP throughput
> and just drop packets randomly or tail drop.
>
> Interesting. Did they consider using the CID, or a fraction of it? This
> looks entirely like the scenario for which we developed stateless retry.
>
>
>
> This recommendation certainly imposes some constraints on future protocol
> development that motivate new invariants: for instance, it would preclude
> sharding a connection across multiple source ports (not that there is
> necessarily a reason to do this; it's just an example). But more
> importantly, it goes beyond invariants: it's one among many practices
> compatible with the current set of invariants, some reasonable and some
> terrible.
>
> This would break the "preferred address" redirection. Preferred address
> migration may or may not be spelled out in the invariants.
>
>
>
> Operators are going to do things to QUIC traffic, so it would be good to
> offer them recommendations that are compatible with broad deployability.
>
>
>
> Yes, we do need the invariants for that.
>
> -- Christian Huitema
>
>