Re: Fwd: New Version Notification for draft-hinden-6man-hbh-processing-01.txt

Tom Herbert <tom@herbertland.com> Thu, 10 June 2021 15:08 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8121B3A4375 for <ipv6@ietfa.amsl.com>; Thu, 10 Jun 2021 08:08:05 -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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.20150623.gappssmtp.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 l_4uD1yGTDzw for <ipv6@ietfa.amsl.com>; Thu, 10 Jun 2021 08:08:03 -0700 (PDT)
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) (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 D91623A436D for <ipv6@ietf.org>; Thu, 10 Jun 2021 08:08:02 -0700 (PDT)
Received: by mail-ej1-x62d.google.com with SMTP id ho18so33726632ejc.8 for <ipv6@ietf.org>; Thu, 10 Jun 2021 08:08:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5/FvrjosZeHwSe4BlRbKC3hhjdrS9yqX/ZXGF+ddcaw=; b=XA0kk7VzdIRBpfwpwYx/zSngDqyM7//U3zs6nbfEoxIE90bA9F0ZTTHZPQxoor5RMJ s49ajv6JRgEtVWI4BcCGiiW+Ltrp/RHQe6oYFiQ6geA5HUz0s0Ulv8n4Ez2qEPY8Dkya hp79929dcmxxzZ1sTa43UT16c7TTs2P2RveFBb6MLpBjNXEfAjHcIrIPxAI234ilqLTG 1YA77lUFP1znpLqoYT3/d+95pvrf0voCpcGiOYPvaOZLf+gC3F6rM/1LodQOQSKEozaZ YryY47ZoFy2vTkllip3tLPRU9Ig6xEZkCj0Un7DRdy6IquJ0SZyzKzCZUrzgbkzR8vwB BKeQ==
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=5/FvrjosZeHwSe4BlRbKC3hhjdrS9yqX/ZXGF+ddcaw=; b=NW9Yb+6z8s7e3lEVZ7uNmIu1gZuyPz2c+DgOcSXRX1VaL8ncKbMLBINKINu4o3ptlX tS6p1L7RJVhIssekTbUre3msHY4BWEJ/XB6w1jKMdK9TrP9RiTTduw6z8k31Z4YRTv41 ZzyVT1Mgok4DEfHgbhFz3TwF7Y1wH8rXiTXnV2qgDg7g8PRoTg7KltJIYfaKCnr+ogL5 blxchusX/PXHJQrKZdU7WsbBj8nMkP7JfatcBJAD1ORijMlA6bbAoU59WO+dXcjt2PxN uLCHjHcZBIxAm2iGi1YwESagOg0m1u3lJJNnuI1Np6FN/Mv098duKHO5fnw3kslgzRfM wRMw==
X-Gm-Message-State: AOAM533VfUX6B5hu0p2sg+z37nPLT4O7bQWwTEvuq+ffL1YjP2aF2Yys Guvw2kt8BaRDvUAUp0I6av6wVoBMUvnFPfYku0xI9w==
X-Google-Smtp-Source: ABdhPJzTi6ndS6ObFuhZKlh+Wo1oqJIKhMU7FypZc1wgqKjkm8f9/25lrwmCMQ+kR11MS5y7bntuhwUUqxMdmkppyhY=
X-Received: by 2002:a17:906:7f8d:: with SMTP id f13mr65208ejr.272.1623337675828; Thu, 10 Jun 2021 08:07:55 -0700 (PDT)
MIME-Version: 1.0
References: <162265842779.4095.2393609365780372735@ietfa.amsl.com> <E5A31CCD-104D-4B92-9730-4FCFBF191F46@gmail.com> <17adf4b21d428d051e390574e976e3f61aee33c0.camel@edgeuno.com>
In-Reply-To: <17adf4b21d428d051e390574e976e3f61aee33c0.camel@edgeuno.com>
From: Tom Herbert <tom@herbertland.com>
Date: Thu, 10 Jun 2021 08:07:44 -0700
Message-ID: <CALx6S368ZavS5Ggv28XB1mW41sZML0Vv=DvBPMooFFhbWdpKUg@mail.gmail.com>
Subject: Re: Fwd: New Version Notification for draft-hinden-6man-hbh-processing-01.txt
To: Fernando Gont <fernando.gont=40edgeuno.com@dmarc.ietf.org>
Cc: "bob.hinden@gmail.com" <bob.hinden@gmail.com>, "ipv6@ietf.org" <ipv6@ietf.org>, "gorry@erg.abdn.ac.uk" <gorry@erg.abdn.ac.uk>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/jhWm4jTm9wfaA0lfZLbOEGMUwfI>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jun 2021 15:08:06 -0000

On Thu, Jun 10, 2021 at 12:41 AM Fernando Gont
<fernando.gont=40edgeuno.com@dmarc.ietf.org> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> Hi, Bob & Gorry,
>
> Some comments:
>
> * Section 4, page 4:
>
> >  The changes meant that an implementation complied with the IPv6
> >  specification even if it did not process hop-by-hop options, and
> > that
> >  it was expected that routers would add configuration information to
> >  control which hop-by-hop options they would process.
>
> The way I interpret RFC8200 is that a router is configured whether it
> needs to process the HbH header in the first place, rather than whether
> to process specific options.
>
>
> * Section 4, page 5:
> >
> >    There has been research that discussed the general problem with
> >    dropping packets containing IPv6 extension headers, including the
> >    Hop-by-Hop Options header.  For example [Hendriks] states that
> >    "dropping all packets with Extension Headers, is a bad practice"
>
> Given the number of vulnerabilities associated with the processing of
> IPv6 EHs, and that it's a feature that is largely unused, the converse
> is probably true.
>
>
> * Section 4, page 5:
>
> This discussion misses an important point/aspect: the lgnth of the IPv6
> header chain. e.g., asking nodes to support a single HbH option if such
> option is, say, 256 bytes, will still be unfeasible.
>
>
> * Section 5.1, page 6:
> > [RFC8200] also requires
> >    that a Hop-by-Hop Options header can only appear once in a packet.
> >
>
> This doesn't seem accurate. RFC8200 states:
>
>    IPv6 nodes must accept and attempt to process extension headers in
>    any order and occurring any number of times in the same packet,
>    except for the Hop-by-Hop Options header, which is restricted to
>    appear immediately after an IPv6 header only.  Nonetheless, it is
>    strongly advised that sources of IPv6 packets adhere to the above
>    recommended order until and unless subsequent specifications revise
>    that recommendation.
>
> i.e., there's a recommendation to send only one HbH, but still required
> to process all received. (cursed by the robustness principle, if you
> wish :-) )
>
>
> * Section 5.2, page 6:
> >
> >    If the node can not process an option in the Fast Path, it MUST
> >    behave as if it does not recognize the Option Type (as described
> > in
> >    the next paragraph).
>
> My take is that a router that wouldn't be able to process options in
> the fast-path wouldn't even bother to parse the contents of the HbH in
> the first place....
>
>
> * Section 5.3, page 8:
>
> >       The Router Alert Option is a problem since it's function is to
> > do
> >       what this specification is proposing to eliminate, that is,
> >       process the packet in the Slow Path.  One approach would be to
> >       deprecate it as it's usage appears to be limited and packets
> >       containing Hop-by-Hop options are frequently dropped.
>
> Nore: This option is employed for MLD packets, which result from ND
> using multicast. In such scenarios (MLD is link-local) packets survive
> - -- cause they don't need to be forwarded in the first place.  Whether
> using RAO for MLD (or whether MLD itself) is a good idea, is a
> different question... ;-)
>
>
> * Section 5.3, page 8:
>
> >
> >    A Fast Path implementation SHOULD verify that a Router Alert
> > contains
> >    a protocol, as indicated by the Value field in the Router Alert
> >    option, that is configured as a protocol of interest to that
> > router.
> >    A verified packet SHOULD be sent on the Slow Path for processing
> >    [RFC6398].
>
> If the device knows it's not using a protocol that may need to rely on
> RAOs, why should the device parse, say, RAOs in the first place?
>
>
> * Section 6, page 9:
> >    Any new IPv6 Hop-by-Hop option designed in the future should be
> >    designed to be processed in the Fast Path.  New options MUST NOT
> > be
> >    defined that require Slow Path processing.  New Hop-by-Hop options
> >    SHOULD have the following characteristics:
> >
> >    *  Straight forward to process.  That is, they should be designed
> > to
> >       keep the time to process low.
> >
> >    *  Fixed size in 8-octet units.  Specifically any new Hop-by-Hop
> >       options should not be variable size that could extend beyond
> > what
> >       can be executed in the Fast Path.
>
> This is missing the overall option length.
>
>
> * Section 8, page 10:
>
> >    Security issues with IPv6 Hop-by-Hop options are well known and
> > have
> >    been documented in several places, including [RFC6398], [RFC6192],
> >    and [I-D.ietf-v6ops-ipv6-ehs-packet-drops].  The main issue, as
> > noted
> >    in Section 4, is that any mechanism that can be used to force
> > packets
> >    into the router's Slow Path can be exploited as a denial of
> > service
> >    attack on a transit router by saturating the resources need for
> >    router management protocols (e.g., routing protocols, network
> >    management protocols, etc.) that may cause the router to
> > fail.  Due
> >    to this it's common for transit routers to drop packets with Hop-
> > by-
> >    Hop options headers.
>
> This discussion missess to note and acknowledge that there is a general
> issue associated with IPv6 extension headers.
>
> HbH has extra problems. But there are other general issues that apply
> to all EHs, and not just HbH.
>
>
> * Section 8, page 10:
> >
> >    *  Limited the default number of Hop-by-Hop options that that can
> > be
> >       in a packet to a single Hop-by-Hop option.
>
> If you are pursuing that path, you should also limite the overall IPv6
> header chain length. That;s probably even more important than limiting
> the number of EHs or number of HbH options.
>
Fernando,

That limit and other pertinent ones are defined in RFC8504 section 5.3
and RFC8883. The limits in RFC8504 are specified for hosts, but it
would be straightforward to apply them to routers  where the behavior
when a limit is exceeded would be different-- end hosts should drop
packets that exceed the limit, intermediate nodes should stop parsing
and forward the packet. If a node decides to drop the packet then it
can send an RFC8883 ICMP error to inform the sender what the exceeded
limit was. Recommended defaults can be provided for limits; e.g. in
RFC8504 the limit of HBH or DestOpts is eight meaning that receivers
should support up to eight options and senders should be able to send
up to eight options with reasonable confidence their packets won't be
dropped. A similar default could be established for length of IP
header chain (for hosts this isn't immediately necessary since hosts,
unlike routers, usually don't have a concept of fixed sized parsing
buffer holding headers, although with hardware acceleration that limit
might be more applicable to set in the host).

Tom

>
> Thanks!
>
> Regards,
> - --
> Fernando Gont
> Director of Information Security
> EdgeUno, Inc.
> PGP Fingerprint: DFBD 63E3 B248 AE79 C598 AF23 EBAE DA03 0644 1531
>
>
>
>
> -----BEGIN PGP SIGNATURE-----
>
> iQFOBAEBCgA4FiEE371j47JIrnnFmK8j667aAwZEFTEFAmDBwgcaHGZlcm5hbmRv
> LmdvbnRAZWRnZXVuby5jb20ACgkQ667aAwZEFTH/qAf/Su1CoIjSBl6GeEIl0jn5
> JoW+H8uqAS49aP0pjFDsOXT2La5vGlT4DNDicextT5ca9xpI7BBBxxf8VDP1pdS6
> jgh/k2mp5qwGFG0UyJSIm46+hxW1+N6VbQ1RV19oKUFPk2iIcsPtimQuHIE/fa8I
> 1BD49ljp6WbZTR4DrqZFuKpbV8Zx5AxaOTGUuxzWEDzfOrylnmacPrT9IspbgU+R
> VIW6wMtHNK75LHs9ILSUjTGlv4056KrMkk9b/1Ot01wO7dgzFG6MXEQznVO1FUHX
> 8K9Y3+dB9yOg6cUenzDsCEqRgcnLPIXkbQhwySHQW9dAs0VkLwE8c+aKt9O5283W
> cQ==
> =u+vn
> -----END PGP SIGNATURE-----
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> ipv6@ietf.org
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------