Re: [tsvwg] Remaining issues for draft-ietf-tsvwg-udp-options-22

Erik Auerswald <auerswal@unix-ag.uni-kl.de> Sun, 02 July 2023 21:15 UTC

Return-Path: <auerswal@unix-ag.uni-kl.de>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E38BFC14F75F for <tsvwg@ietfa.amsl.com>; Sun, 2 Jul 2023 14:15:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1vaXceUPSBy9 for <tsvwg@ietfa.amsl.com>; Sun, 2 Jul 2023 14:15:53 -0700 (PDT)
Received: from mailgw1.uni-kl.de (mailgw1.uni-kl.de [IPv6:2001:638:208:120::220]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 424AFC151087 for <tsvwg@ietf.org>; Sun, 2 Jul 2023 14:15:52 -0700 (PDT)
Received: from sushi.unix-ag.uni-kl.de (sushi.unix-ag.uni-kl.de [IPv6:2001:638:208:ef34:0:ff:fe00:65]) by mailgw1.uni-kl.de (8.14.4/8.14.4/Debian-8+deb8u2) with ESMTP id 362LFjqT061611 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 2 Jul 2023 23:15:45 +0200
Received: from sushi.unix-ag.uni-kl.de (ip6-localhost [IPv6:::1]) by sushi.unix-ag.uni-kl.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id 362LFfuY031513 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sun, 2 Jul 2023 23:15:41 +0200
Received: (from auerswal@localhost) by sushi.unix-ag.uni-kl.de (8.14.4/8.14.4/Submit) id 362LFfOn031512; Sun, 2 Jul 2023 23:15:41 +0200
Date: Sun, 02 Jul 2023 23:15:41 +0200
From: Erik Auerswald <auerswal@unix-ag.uni-kl.de>
To: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Cc: Christian Huitema <huitema@huitema.net>, Sebastian Moeller <moeller0@gmx.de>, Joe Touch <touch@strayalpha.com>, TSVWG <tsvwg@ietf.org>
Message-ID: <20230702211541.GA29683@unix-ag.uni-kl.de>
References: <CACL_3VEw4koyJSX3xA3UJ1Vikg+F9PPw1G030jQPHhZdoOETSA@mail.gmail.com> <d34aa821-207d-78eb-ead2-e2d918939dcf@erg.abdn.ac.uk> <20230629162807.GA8600@unix-ag.uni-kl.de> <20230701204510.GA29872@unix-ag.uni-kl.de> <CACL_3VG_c-+zqoEhufyLvDqCV1ZkUoS9ZoknxJWwvH2RddOD=A@mail.gmail.com> <8a7a4eb6-aaf2-edb6-8684-09d11f172dd0@erg.abdn.ac.uk> <20230702122842.GA20114@unix-ag.uni-kl.de> <08136480-5692-4B97-BA61-17833DE0E8CF@gmx.de> <05954cd8-a062-9b6c-2743-d15145bc2c8e@huitema.net> <92638f8a-2123-6c5f-8456-c41b9b367e3f@erg.abdn.ac.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <92638f8a-2123-6c5f-8456-c41b9b367e3f@erg.abdn.ac.uk>
Author: Erik Auerswald <auerswal@unix-ag.uni-kl.de>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/pPxyIyu06JLPVRrktx95fxGSfa8>
Subject: Re: [tsvwg] Remaining issues for draft-ietf-tsvwg-udp-options-22
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2023 21:15:59 -0000

Hi all,

On Sun, Jul 02, 2023 at 09:49:55PM +0100, Gorry Fairhurst wrote:
> I am unsure I understand this thread: As far as I know, the REQ/RES
> pair is designed to support DPLPMTUD, running over UDP Options.
> 
> On 02/07/2023 20:31, Christian Huitema wrote:
> >
> >On 7/2/2023 6:01 AM, Sebastian Moeller wrote:
> >>    [SM] In which case (no immediate response required) this
> >>thing should not be called an echo, as it neither mimics how a
> >>real echo works nor how ICMP echo requests mostly* operate. I
> >>note that the REQ and RES monikers seem fine as they do not
> >>contain "echo" once expanded, but the paragraph text in the
> >>draft might be changed if "delayed/eventual response" is
> >>expected as the default mode. And I think that:
> >>    "but no options (including ECHO) ever initiate UDP responses
> >>in the absence of user transmission."
> >>pretty much means delayed response is the default.
> >
> >And I hope that it stays the default! UDP option is by default a
> >clear text protocol. It is very easy for third parties to spoof
> >UDP options requests. We would have a pretty major issue if
> >spoofed packets could generate responses!
> 
> UDP Options itself doesn't generate the response, it passes the REQ
> upwards to the protocol that does and that sends the RES option.
> That said, the DLPMTUD for UDP Options ID already has text saying
> that a RES is only generated when DPLPMTUD has been enabled, which
> amongst other things means that the pair of ports has been bound by
> an application, and the application chooses to enable DPLPMTUD, if
> not, there is no response.

IMHO this is not obvious from just reading the draft, therefore I suggest
to add a sentence to the description on REQ and RES to explicitly state
that no RES is generated automatically by a UDP Options implementation.

As far as I understand it now (after re-reading the drafts and the mailing
list discussion), using RES requires activation on a per-socket basis.
This can be done by a DPLPMTUD implementation after an application
activates DPLPMTUD for a "connection".

(I do not have a good suggestion for a formulation.)

> >>    For security considerations I want to ask whether it could
> >>be helpful to note in the draft that the REQ option is
> >>(considerably) larger (as expected e.g. for DPLPMTUD probes)
> >>than the RES response, so this mechanism can not be used with
> >>spoofed addresses to amplify an attack but rather attenuate it
> >>(at least on the byte volume level)
> >
> >That too is a major issue. This is 2023, and we have decade of
> >experience with DDOS amplification. We cannot introduce a protocol
> >that facilitate DDOS amplification!
> 
> What is the major issue? A REQ is a probe packet of specified size;
> a RES is just an Option with no "probe data" - carried in a single
> UDP datagram or included in a a UDP datagram with some other data
> sent by the remote endpoint.  How is that a major issue?

AFAIUI even an activated RES could not be used for amplification, because
it does not echo the REQ packet, but only sends the 4 byte token from
the REQ (without any added padding).

> >I think that if such facility remained in the protocol, we would
> >see firewalls programmed to systematically drop any packet
> >carrying UDP options.
> >
> >-- Christian Huitema
> >
> Why would this require firewalls to drop a UDP datagram?

IMHO the biggest risk is an unclear specification that might result in
implementations that do not follow the idea of UDP Options.  Thus my
asking for clarifications.

Regards,
Erik