Re: [Int-area] Adam Roach's Discuss on draft-ietf-intarea-provisioning-domains-10: (with DISCUSS and COMMENT)

Warren Kumari <warren@kumari.net> Wed, 22 January 2020 14:55 UTC

Return-Path: <warren@kumari.net>
X-Original-To: int-area@ietfa.amsl.com
Delivered-To: int-area@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCBDB1200FB for <int-area@ietfa.amsl.com>; Wed, 22 Jan 2020 06:55:03 -0800 (PST)
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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=kumari-net.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 Rc0QYzuq6EkK for <int-area@ietfa.amsl.com>; Wed, 22 Jan 2020 06:55:00 -0800 (PST)
Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) (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 8C3A61200E9 for <int-area@ietf.org>; Wed, 22 Jan 2020 06:55:00 -0800 (PST)
Received: by mail-qk1-x736.google.com with SMTP id q15so5899698qke.9 for <int-area@ietf.org>; Wed, 22 Jan 2020 06:55:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kumari-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=CfmoDuOVW9E+0+zzDuf7b8mGyt99YKNqx2sEL/u+YNM=; b=myFhd8itjaZqMJda/VNt9ybN/6IR6+QJ5OayPxgeDjMZxH+i44L4VQE2eREjakVSu8 NS+90koXgZBRXLV0tSWpFtbHB4Tk9Ovah4vzvH0V9zX5iC5RAD9hcAGKxoej8skmTq7N JOhct2vSYPXMefQ3/c7GdQPi/lj6kttqxi3JcGJPwpsz35xT7t8xQDKTgPFNeaRDg8n4 r20G+nG5JowqlfUMmrNHmz9B5jemSRYcAdRuDyIfUtRm+ooblrXvVrclUGyVHf+epFlJ 1dtpsgsCxh8Aem1QCjTiwnUSoK5+PjY08rcYcUb/XeBA97hqdFADb8DsDOc1Njg6l1Qj 0w6A==
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:content-transfer-encoding; bh=CfmoDuOVW9E+0+zzDuf7b8mGyt99YKNqx2sEL/u+YNM=; b=p/psO9nSNn5t8+423vnlMfEKsPs3LsbxGbHLUZRMpIvk5/oeuWS1+Hsqmhn/xE3Viw C5hxIeFm3Y9ZyOdq42RuIjCYuxq+Y2FmeVwyEvn6Y4pgzIkdEUosK+S9ZBbYIZZElESp iSGzArRgBNpJ/W/hnh0TjMfvvfLLSIH1dvIVNq3AU+NGlmhifvWWTj1bIIBjGQbP46Jx YQD+IZMDkx4PYbWmuYQYroLI3CnKz6QYZD3GIyKe0tMG2u0wEIwi4hE1aJFq8JpcG8ns szWrXrjtdaAtFbRAKr2OIKePKLqL6nW3T8ZE9xTrURj5LqFqYUBLlQiG+UO/BUIqk7dG J7Zg==
X-Gm-Message-State: APjAAAV0gbvPIieWcbWGBPb77M6VJ7dJd9ZmZt+v3DTQd7Go3hP6FIf6 jgA2DLme18x1ON2EvLd5BUbMXiGzvDXTbLneaZzGcqRC
X-Google-Smtp-Source: APXvYqxflNGLaRBWyfXetHsEL8gGcay8EBrTtwL3YgxT+qi/hcCMAQOlDafNFQ9iJjCiuqsU/YyTfbnfjP21bLtAbcY=
X-Received: by 2002:ae9:f819:: with SMTP id x25mr10413579qkh.192.1579704899280; Wed, 22 Jan 2020 06:54:59 -0800 (PST)
MIME-Version: 1.0
References: <157967080772.28909.16443816599872682093.idtracker@ietfa.amsl.com>
In-Reply-To: <157967080772.28909.16443816599872682093.idtracker@ietfa.amsl.com>
From: Warren Kumari <warren@kumari.net>
Date: Wed, 22 Jan 2020 09:54:23 -0500
Message-ID: <CAHw9_iJM3+PGYJTOKR_RYpughCB5OOHfCjEQrt3wWn0L-Aguug@mail.gmail.com>
To: Adam Roach <adam@nostrum.com>
Cc: The IESG <iesg@ietf.org>, Erik Kline <ek@loon.com>, draft-ietf-intarea-provisioning-domains@ietf.org, Internet Area <int-area@ietf.org>, intarea-chairs <intarea-chairs@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-area/ieOfILNNYn8TGHTlfIDey2KdhNs>
Subject: Re: [Int-area] Adam Roach's Discuss on draft-ietf-intarea-provisioning-domains-10: (with DISCUSS and COMMENT)
X-BeenThere: int-area@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF Internet Area Mailing List <int-area.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/int-area>, <mailto:int-area-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/int-area/>
List-Post: <mailto:int-area@ietf.org>
List-Help: <mailto:int-area-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-area>, <mailto:int-area-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 22 Jan 2020 14:55:04 -0000

On Wed, Jan 22, 2020 at 12:26 AM Adam Roach via Datatracker
<noreply@ietf.org> wrote:
>
> Adam Roach has entered the following ballot position for
> draft-ietf-intarea-provisioning-domains-10: Discuss
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-intarea-provisioning-domains/
>
>
>
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
>
> Thanks to the authors and working group for their work on this document.  I
> have one major concern about the ability for this mechanism to be abused to
> form DDoS attacks, described below. Unfortunately, while I have identified the
> attack, I don't have an easy solution to propose that mitigates it satisfactorily.
>
> I also have a handful of mostly editorial comments on the document.
>
> ---------------------------------------------------------------------------
>
> §6:
>
> I was expecting to see a discussion of the DDoS attack that may result from a
> large network (or a rogue host on such a network) sending out a PvD ID
> containing the hostname of a victim machine, and setting the "H" flag.
>
> Since the messages used to trigger these HTTP connections are extremely
> lightweight, unauthenticated UDP messages, and the resulting HTTP connections
> require the exchange of a significant number of packets in addition to a
> number of cryptographic operations, this is a very high ratio amplification
> attack, both in terms of network and CPU resources.
>
> Given that the delay setting comes from the network instead of being
> independently computed by the host, such an attack could be honed to be
> particularly devastating.  Although it isn't a complete mitigation, one
> approach to consider would be moving computation of the delay upper bound to
> the host, or specifying a minimum upper bound of several minutes (where a
> smaller value will cause the host to use this minimum upper bound).
>

Doh!

Yes, unless we are missing something, this *does* sound like an issue
-- I like your minimum upper bound idea... but I'm also picturing
something where the victim sends back some bad PvD info which makes
the clients fall off the network, thereby stopping the attack :-P

> Regardless of how this is ultimately handled, I think this is a pretty severe
> risk that needs addressing in the document prior to publication.

Yah.
W

>
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> >  This document also introduces a mechanism for hosts to retrieve
> >  optional additional information related to a specific PvD by means of
> >  an HTTP over TLS query using an URI derived from the PvD ID.
>
> Nit: "...a URI..."
>
> ---------------------------------------------------------------------------
>
> §3.4.1:
>
> >  This is intended to
> >  resolve backward compatibility issues with rare deployments choosing
> >  to assign addresses with DHCPv6 while not sending any matching PIO.
>
> It seems that this set of circumstances could also arise due to a
> misconfiguration of DHCPv6. If this is expected to be only rarely
> intended, perhaps some oprationational/implementation guidance to log
> a warning or otherwise alert the operator would be helpful.
>
> ---------------------------------------------------------------------------
>
> §4.1:
>
> >  HTTP requests and responses for PvD additional information use the
> >  "application/pvd+json" media type (see Section 8).  Clients SHOULD
> >  include this media type as an Accept header in their GET requests,
>
> Nit: "...Accept header field..."
>
> ---------------------------------------------------------------------------
>
> §4.1:
>
> >  If the HTTP
> >  status of the answer is between 200 and 299, inclusive, the host MAY
> >  get a file containing a single JSON object.
>
> This is very confusing phrasing. The sentence -- and the use of a normative
> "MAY" in particular -- indicates that the host is given permission to take
> some additional action that "gets" a JSON object from somewhere. I think it's
> intending to say that a 200-class HTTP response will contain such an object.
>
> Consider rephrasing.
>
> ---------------------------------------------------------------------------
>
> §4.3:
>
> >  Private-use or experimental keys MAY be used in the JSON dictionary.
> >  In order to avoid such keys colliding with IANA registry keys,
> >  implementers or vendors defining private-use or experimental keys
> >  MUST create sub-dictionaries, where the sub-dictionary is added into
> >  the top-level JSON dictionary with a key of the format "vendor-*"
> >  where the "*" is replaced by the implementer's or vendor's
> >  identifier.  For example, keys specific to the FooBar organization
> >  could use "vendor-foobar".  Upon receiving such a sub-dictionary,
> >  host MUST ignore this sub-dictionary if it is unknown.  When the
> >  vendor or implementer is part of an IANA URN namespace [URN], the URN
> >  namespace SHOULD be used rather than the "vendor-*" format.
>
> This is kind of a minor nit, but this paragraph is a bit confusing.  It
> starts off with a less-preferred convention ("vendor-*") and discusses
> it as if it were the only way to do things; and then it throws in a
> SHOULD-strength different encoding at the end as a surprise twist.
> I would suggest reworking the paragraph so that the preferred encoding
> (URNs) are mentioned first, as a SHOULD-strength statement, followed by
> the less-preferred "vendor-*" as a fallback.
>
> ---------------------------------------------------------------------------
>
> §4.3:
>
> >  +------------+-----------------+-----------+------------------------+
> >  | JSON key   | Description     | Type      | Example                |
> >  +------------+-----------------+-----------+------------------------+
> >  | identifier | PvD ID FQDN     | String    | "pvd.example.com."     |
>
> ....
>
> >  {
> >    "identifier": "cafe.example.com",
> >    "expires": "2017-07-23T06:00:00Z",
> >    "prefixes": ["2001:db8:1::/48", "2001:db8:4::/48"],
> >  }
>
> I'm concerned about the variation in the identifier field alternately
> containing and not containing the terminal dot of the FQDN. If the
> intention that these are to be equivalent, it would probably head off
> some implementation incompatibilities if the document were to say so
> explicitly.
>
> ---------------------------------------------------------------------------
>
> §7:
>
> >  without leaking identity information, SHOULD make use of an IPv6
> >  Privacy Address and SHOULD NOT include any privacy sensitive data,
> >  such as User Agent header or HTTP cookie, while performing the HTTP
>
> Nit: "...User-Agent header field..."
>              ^             ^^^^^
>
>


-- 
I don't think the execution is relevant when it was obviously a bad
idea in the first place.
This is like putting rabid weasels in your pants, and later expressing
regret at having chosen those particular rabid weasels and that pair
of pants.
   ---maf