Re: Secdir last call review of draft-ietf-lisp-rfc6830bis-15

Kyle Rose <krose@krose.org> Tue, 28 August 2018 21:48 UTC

Return-Path: <krose@krose.org>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6DD86130E1A for <ietf@ietfa.amsl.com>; Tue, 28 Aug 2018 14:48:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 lZbQJsAaruGW for <ietf@ietfa.amsl.com>; Tue, 28 Aug 2018 14:48:12 -0700 (PDT)
Received: from mail-qt0-x233.google.com (mail-qt0-x233.google.com [IPv6:2607:f8b0:400d:c0d::233]) (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 6E80B130F44 for <ietf@ietf.org>; Tue, 28 Aug 2018 14:48:09 -0700 (PDT)
Received: by mail-qt0-x233.google.com with SMTP id o15-v6so3549932qtk.6 for <ietf@ietf.org>; Tue, 28 Aug 2018 14:48:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=krose.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=1ktxUKMDVPAexMzciEohT5brlZpaBfxgrn7Gmtz+AaA=; b=eqK8bHOM7oVY5Z4kiWh8e9PQki0yoLGUk/RoIZPx7x7fyL4DBlwUbBFbHTY8NIuA9q e5sYa9XEqg3tRkDDokbkr4BdGT0x+Eh5gfyos8PcmTth+xnkgUi8StvwGpiOnKDKG2+z 5MWyskjTp3AUm2TnyN/sjGanGm2Jq/bnSfwiE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=1ktxUKMDVPAexMzciEohT5brlZpaBfxgrn7Gmtz+AaA=; b=CFBV4DAzy5TOUu3CVfZ7t3dMTEsFjWyKRGMdkPZjgckb+Q1tu/zDb8/9gRlEKYHDvM 5P9a5ugnB21IYOgZfy9+v7t16yKmbjp9CAGK17T6+sKtg5nWz3vHS/fjdYsLPVo253xP nQNKHFWIvNuE9lsyVvNxz6qTq/XiM8DVrheSwX/cngvHvik4k4PvS+gY2dfRivPsvZP2 05lhNiC/xnMZxbcNxeOZVFqoJ2iWF1CWHbI6cX7FGmqzSeY26tufnNGj0kZZB/o+yHZW vJmOw8B3rrIIcE1KGZjY/LRTv0HUJF5V5x+VBi0qEAeSISQVWP17Oj+U+GpXEZWPNSBi TSww==
X-Gm-Message-State: APzg51BQ9vwgYtlSUzMJKUECw1YGJUC/08r+H3juAiizhsAFEKQS8tIc EeRBIs7BuX7wUrZ0sV3GTSTd88Xe6iAlyzSgIHrfAkmVS9oaRg==
X-Google-Smtp-Source: ANB0VdZg0eYHlhw7q1ugeGxn/qULEdPeI5kCy40iVKfw9WTIo83anNtP8ECcoUZehuIAYT3BfTCpdb+8p8yDbQXD/iE=
X-Received: by 2002:ac8:2759:: with SMTP id h25-v6mr3856537qth.274.1535492888227; Tue, 28 Aug 2018 14:48:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a0c:f803:0:0:0:0:0 with HTTP; Tue, 28 Aug 2018 14:48:06 -0700 (PDT)
X-Originating-IP: [72.246.0.14]
In-Reply-To: <FDA69FDF-696B-4959-AADB-0999630C723D@gmail.com>
References: <153513922907.22939.10542350679349996082@ietfa.amsl.com> <FDA69FDF-696B-4959-AADB-0999630C723D@gmail.com>
From: Kyle Rose <krose@krose.org>
Date: Tue, 28 Aug 2018 17:48:06 -0400
Message-ID: <CAJU8_nWwHAQYeo4oCVq=dVquRK1VhO-TdUKw5JmvbX1idWa=VA@mail.gmail.com>
Subject: Re: Secdir last call review of draft-ietf-lisp-rfc6830bis-15
To: Dino Farinacci <farinacci@gmail.com>
Cc: IETF SecDir <secdir@ietf.org>, draft-ietf-lisp-rfc6830bis.all@ietf.org, IETF Discussion Mailing List <ietf@ietf.org>, "lisp@ietf.org list" <lisp@ietf.org>, Benjamin Kaduk <kaduk@mit.edu>
Content-Type: multipart/alternative; boundary="000000000000288208057485cc67"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/eMYgbevNXlHYbPKJCvoIhKGOSCY>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Aug 2018 21:48:20 -0000

Hi, Dino. I have additional responses inline.

> For the internet core (DFZ RIB) use-case, LISP proposes replacing BGP
> sessions
> > and global eventually-consistent state sharing with a global control
> plane and
>
> LISP *does not propse to eliminate BGP*, in fact it needs it so RLOC
> reachability across the network is available, or there would be no underlay
> for the LISP overlay.
>

The whole point of LISP is to create a routing overlay for the EID address
space, the RIB of which is managed by a global mapping system, not BGP
sessions. If control plane traffic managed by BGP (or static routes, or
whatever networks use once the DFZ RIB is limited to entities in the core)
continues to flow, that is of small comfort to end users trying to get data
over the data plane. From the perspective of end users, BGP is being
replaced routing of the traffic that matters to them.

Maybe this is just splitting hairs: I certainly don't want to rathole on
this point.


> You are missing pieces of the design and hence why you came to the
> conclusion you did. There are three documents that enhance the security of
> LISP, they are:
>
> (1) RFC 8061 - Locator/ID Separation Protocol (LISP) Data-Plane
> Confidentiality
>

I did not review this document because I was following up on authentication
of control plane messages. If that is covered in a document titled
"Data-Plane Confidentiality", some reorganization may be in order.


> (2) RFC 8111 - Locator/ID Separation Protocol Delegated Database Tree
> (LISP-DDT)
>
(3) draft-farinacci-lisp-ecdsa-auth
>

I take it from the name that this has not even been adopted by the WG yet?
Evaluating something I'm supposed to review for IETF LC should not depend
on an unadopted draft.

That said, I have been trying to make sense of this document for the past
few days. I have a few basic observations:

 * It does not resolve the trust anchor problem. Instead of proposing a
PKI, you seem to be proposing a trusted third party authoritative for the
Hash-EID namespace. (Q.v. section 2, the Hash-EID definition: "Another
entity")

 * 128 bits is already too short for a cryptographic hash, and this
document proposes reducing that to 80 bits for a /48.

 * The entire scheme relies on the integrity of the Hash-EID mappings: if
an attacker can compromise a Hash-EID mapping with a different public key
that hashes to the same truncated hash, they can sign anything for that
space of Crypto-EIDs.

 * The only protection provided by this scheme is for Map-Register and
Map-Request, and not for the response to Map-Request, which (to me) is the
critical gap. The problem I noted in my original review is that the ITR-OTK
only allows the Map-Server to prove that a response is associated with a
Map-Resolver's request, not that the Map-Server is the proper authority for
the response. What the system needs is a global trust network that does not
rely on either universal transitive trust (e.g., I'll just trust whatever
my trusted-but-potentially-mistaken neighbors tell me about the rest of the
world based on what they heard) or n^2 relationships (e.g., symmetric keys
with every other entity).

 * Why a scheme like this for addressing Map-Register? Presumably an ETR
will either be owned by the same entity running the Map-Server
authoritative for its own EID space, or it will contract with one. Either
case is a single, pre-established relationship per ETR, which scales fine.

 * What is the use case for Map-Request authentication? Its only use seems
to be to keep address space -> network topology mapping hidden. From whom?
The end user doesn't need to know, but every entity in the core needs to
have access to a Crypto-EID's associated RLOC or it won't be able to
determine the next hop.

 * My general recommendation for design documents is that the overall
architecture should be clear to a reader with a relevant technical
background without having to first consume a pile of other documents. To
the authentication point specifically, you may wish to include some text
regarding the properties generically offered by an asymmetric
authentication scheme with the appropriate feature set, and reference those
properties in the security considerations section when addressing certain
classes of attacks. You can then use these requirements as input to a
document describing a specific authentication scheme.

 * This document doesn't present a clear description of the problem it's
trying to solve in the introduction. I understand what it's getting at now
that I've read the whole thing, but a better introduction (for the actual
problem you need to solve, I'd add) would say something like, q( The LISP
architecture introduces two address spaces along with a mapping from one to
the other. The integrity of this mapping is critical for achieving the
intended routing of traffic through a LISP network, being directly related
to service availability and end user privacy. This document describes a
mechanism for implementation of strong authentication of this mapping. )
The security considerations should then discuss the
turtles-all-the-way-down problem of BGP hijacking on the underlay (should
BGP be employed for this purpose) so operators are clear on the limitations
of the scheme.


> You find strong asymmetric authenticaiton and authorization in (3). And
> you’ll find authentication of the mapping system nodes in (2). And note
> that (1) can be used and layered under the control-plane to give encrypted
> control-plane flows (or use DTLS as LISP-SEC refers to for the messages it
> requires for its functionality).
>

"TLS" does not appear anywhere in the draft of LISP-SEC I reviewed:

https://tools.ietf.org/html/draft-ietf-lisp-sec-15#ref-I-
D.ietf-lisp-rfc6833bis

> One area of concern, of which I have not been able to find discussion, is
> that
> > of the implications of shared capacity for the control and data planes,
> and how
> > this can allow a volumetric data plane attack to deny a router access to
> the
> > global mapping system, slowly choking off service to uncached portions
> of the
>
> Well yes, this happens with all our IETF protocols. It is a valid concern
> and there are many operational techniques in network infrastructure that
> *help* solve (but not eliminate) these problems.
>

I would like to see a discussion of whether and how the nature and scale of
this problem differs from that of the status quo. BGP sessions and RIB push
have properties that are well-established from decades of experience:
surely LISP does not have exactly the same properties. The security
considerations should make clear, for instance, how a loss of control plane
connectivity differs from the loss of a BGP session, and how this impacts
visibility and behavior of the data plane.

> I would also like clarification on what defines the separation between the
> > control plane and data plane, and whether authentication itself is used
> to
>
> A control-plane obtains information to store in a table. The data-plane
> uses that table. That is the definition in the simpliest form.
>

I mean specific to LISP, not generically. For instance, does "LISP
Control-Plane signaling" include only valid messages, or valid +
inauthentic (and presumably dropped) messages? Traditional attack traffic
(e.g., a DDoS attack against a website) is part of the same data plane as
all legitimate end user traffic; is attack traffic directed at control
plane endpoints considered part of the control plane, or is it a third
category of traffic? If the latter, then what does an operator need to do
to ensure that control plane is always available?

Kyle