Re: [secdir] [Last-Call] Secdir last call review of draft-ietf-opsawg-finding-geofeeds-06

Kyle Rose <krose@krose.org> Mon, 03 May 2021 14:28 UTC

Return-Path: <krose@krose.org>
X-Original-To: secdir@ietfa.amsl.com
Delivered-To: secdir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8AEBD3A1600 for <secdir@ietfa.amsl.com>; Mon, 3 May 2021 07:28:07 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=krose.org
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 lzacebalz5Rw for <secdir@ietfa.amsl.com>; Mon, 3 May 2021 07:28:02 -0700 (PDT)
Received: from mail-yb1-xb30.google.com (mail-yb1-xb30.google.com [IPv6:2607:f8b0:4864:20::b30]) (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 A9C943A1606 for <secdir@ietf.org>; Mon, 3 May 2021 07:28:02 -0700 (PDT)
Received: by mail-yb1-xb30.google.com with SMTP id t94so7769422ybi.3 for <secdir@ietf.org>; Mon, 03 May 2021 07:28:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=krose.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=MKcJA1VOP18o+/XnWjpyB4AX4/R9tVAt6YYgvMO+YVE=; b=FU4arIgIDLCLJ/2V/KWtUDOKjC3h5KLI9NGpXVRlEsZ70b4C++MxZlBzx11SsX6PPN E/IFsbPrz7GHNSXAXqvz29zipLes6hyv3OVoh1ASBjj0tFaDRnLF4PNHz9YdQs1YaMIg /zdvF5WGB/lMCU418QS80IMm5Mu6l1DzSTzR0=
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=MKcJA1VOP18o+/XnWjpyB4AX4/R9tVAt6YYgvMO+YVE=; b=VQNe9hylP8wFl4EokR/QrF54zP84F959mtEGuQR/TDF7QTRJ9SdYbNsAnMYCKvZdpQ BHpB4TGuqCa0iIBbsctWgHlOKnyLnkTREPsqNsX2x5+xceFoBYc+0w/0n6QLDVtDnQYQ eQp+uypIBchh3pcAq1dxfe8zV1wPeBomoZqW1H+n4aXZKKvFfRSmCfY0WPt3PROAm6ld vBUWb9VAcqc98u65k6eONU7PAgUCUYtvv8/f0fFmA/4eTxXy9Pw2fzYq1o0MwB6xJQ3D XiQuDSTCm6A7Ntz03SLuY3F7TG6GuMt/UjzBbdo61XSKZhYAlsnwf4fClwYKtMnKItzo 6l8w==
X-Gm-Message-State: AOAM530K+Hno/9WFJ4+Q4QcgHkmw7CPsooquoPdffyyG3M6UbM6RbWC5 0/6L+u4Ku7pioIkEXZR4sxZf4tmUeZk8shmc+Tu55LuY7z4JBA==
X-Google-Smtp-Source: ABdhPJy2RLe0tOFEXqR0XXhlXn2V81mkDsSEowt41O3Vgq50dQoTDQ5RMooYMDWu0c9s9tF6LyWN4JMaclbNNJ7pwxQ=
X-Received: by 2002:a25:af06:: with SMTP id a6mr15926695ybh.364.1620052080206; Mon, 03 May 2021 07:28:00 -0700 (PDT)
MIME-Version: 1.0
References: <161969840202.30267.8231145700644479792@ietfa.amsl.com> <m21rasx3tc.wl-randy@psg.com>
In-Reply-To: <m21rasx3tc.wl-randy@psg.com>
From: Kyle Rose <krose@krose.org>
Date: Mon, 03 May 2021 10:27:49 -0400
Message-ID: <CAJU8_nW2aA1SFjeAwzK+CYHPyQqJHLKYu3J9H91NpYfqhTYBWA@mail.gmail.com>
To: Randy Bush <randy@psg.com>
Cc: Kyle Rose via Datatracker <noreply@ietf.org>, last-call@ietf.org, opsawg@ietf.org, draft-ietf-opsawg-finding-geofeeds.all@ietf.org, IETF SecDir <secdir@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c244f405c16dc46f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/secdir/CKwJ_kKI7_7oniG5wkvoFP51tlA>
Subject: Re: [secdir] [Last-Call] Secdir last call review of draft-ietf-opsawg-finding-geofeeds-06
X-BeenThere: secdir@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Security Area Directorate <secdir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/secdir>, <mailto:secdir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/secdir/>
List-Post: <mailto:secdir@ietf.org>
List-Help: <mailto:secdir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/secdir>, <mailto:secdir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 03 May 2021 14:28:08 -0000

On Thu, Apr 29, 2021 at 3:56 PM Randy Bush <randy@psg.com> wrote:

> > The nits include a need for a thorough editorial pass prior to
> submission to
> > the RFC editor. For example:
> >
> >  * The abstract should probably give the uninformed reader a bit more
> >  information about the overall geofeed ecosystem. * "utterly awesome",
> "or
> >  whatever", "It would be polite"
>
> aha!  the style directorate.  we'll see how far it gets.  maybe even
> rfced still has a twinkle in their eye. :)
>

My point is simply that you should aim to submit the document in a form as
close as possible to immediately publishable. Language that you and I and
everyone else knows a priori is unsuitable for publication should get
changed before submission. No reason to add busywork to the RFC editor's
queue.


> > I would also move the privacy discussion from section 2 "Geofeed
> > Files" to a privacy considerations section, as that is where those
> > concerned will look for that information.
>
> aha.  a privacy section is a new fashion of which i was unaware.  done.
> thanks.
>

I've simply observed it as a best practice to compartmentalize that kind of
analysis in a place that readers expect, rather than sprinkling it
throughout normative parts of the document.


> > This document appears to propose overlapping mechanisms for
> > establishment of trust in geofeed data. As far as I can tell, geofeed
> > data may be authenticated both by:
> >
> >  * RPKI private key signature of a digest of a canonicalized form of the
> >  geofeed data file. * Web PKI via https URL for geofeed data file.
>
> not exactly.
>
> the web pki has no authority over IP address space ownership.


Understood. I'm not suggesting the web PKI be used to authenticate IP
address space ownership. I'm suggesting that the following chain would be
sufficient:

 * RPKI authenticates the routing information, which includes the IP
address space and the https URLs for each geofeed file.
 * Web PKI authenticates the data served at that URL.
 * Client verifies that the IP ranges in the geofeed data are contained
within the (RPKI-authenticated) routing information.

I.e., you are chaining trust from the RPKI explicitly to the (https) URL,
and implicitly to the data served from that URL. The web PKI is used only
to ensure that the data is not modified in transit. It is not used to
authorize IP address space ownership: regardless of the PKI used to
authenticate the geofeed data, the client still needs to cross-check the IP
ranges in the geofeed data against the ownership in the RPKI-authenticated
routing information.

>   it is only used to authenticate a *pointer* to the geofeed file.
On the contrary, the pointer (i.e., the octet sequence making up the URL)
is authenticated by RPKI in all cases. You're basically saying "Trust the
data returned by the server at this URL." Which is a closed authentication
chain if that URL is https by virtue of the corollary "Trust the web PKI to
authenticate this server."


>   and the S in
> https is just because we know folk will whine if the S is not there;
> it's ietf fashion, similar to not working over ipv6 (or privacy
> consideration sections:).


Thanks for illustrating why the security area reviews all documents prior
to publication, and why the security directorate exists: because protocol
security properties are often subtle and not reducible to a checklist.


> >  * There appears to be no way to revoke previously-signed geofeed data
> >  except via rotation of the RPKI key pair. Using the web PKI and https
> >  is a countermeasure here by preventing impersonation of the geofeed
> >  host, but it's unclear what utility RPKI provides if web PKI is
> >  required to guarantee geofeed freshness. Metadata imposing a expiry
> >  on geofeed data authenticated by RPKI would serve the same function,
> >  at the cost of requiring the data to be refreshed regularly.
>
> validation of the signing certificate needs to ensure that it is part of
> the current manifest and that the resources are covered by the RPKI
> certificate.  this handles revocation.
>
> but, if you want to go down the "how does revocation work in the rpki"
> rabbit hole, you have to drink the 3779 validation koolaid, and that of
> the "up-down" protocol, and have a look at manifests.  not that i am
> recommending going down this rabbit hole.
>

I did a bit of digging, and it looks like RPKI does have revocation at the
certificate level, so there is at least a (potentially costly) path to
doing this.


> >  * Is it always the case that RPKI private keys are protected by HSM,
> >  or is that simply a best practice?
>
> not at all.  but, imiho, we should stay neutral on that.  the example
>
>    Identifying the private key associated with the certificate, and
>    getting the department with the Hardware Security Module (HSM) to
>    sign the CMS blob is left as an exercise for the implementor.
>
> was merely a cultural reference to the silos in a large LIR where
> address space ownership, rpki signing, ... are often in a very separate
> fiefdom from geo location folk.
>

I feel like this statement can be made in an implementation-neutral way,
like "Signing workflows will vary and are out of scope for this document."


> >  * Why does the geofeed appendix not accommodate multiple signatures
> >  for distinct address ranges? The requirement that a geofeed file not
> >  be RPKI-signed in order to be shared by multiple INETNUM objects
> >  could be relieved were multiple signatures allowed.
>
> do we really want to start work on RFC5485-bis?  but maybe russ has
> better thoughts on this than i.
>

If signatures were detached, it would be trivial to have multiple. But that
would complicate authentication for resources that are not immutable (e.g.,
inconsistent geofeed and signature files, something quite likely to happen
with cacheable artifacts). So I wouldn't recommend that approach anyway. I
guess my recommendation to simplify this would be twofold:

 * Mandate RPKI for routing information, including the geofeed data URLs
(i.e., the sequence of octets that represents a URL).
 * Mandate the use of https (and therefore web PKI) for geofeed data (i.e.,
all URLs must be https://...)

This eliminates the need for the complexity of RPKI signatures in geofeed
data while ultimately rooting that information in an RPKI trust anchor.
Kyle